├── .DS_Store
├── CellKit
├── Collection View Cell.xctemplate
│ ├── TemplateIcon.png
│ ├── TemplateIcon@2x.png
│ ├── TemplateInfo.plist
│ ├── ___VARIABLE_sourceCellIdentifier___CollectionViewCell.swift
│ ├── ___VARIABLE_sourceCellIdentifier___CollectionViewCell.xib
│ └── ___VARIABLE_sourceCellIdentifier___CollectionViewCellModel.swift
├── Collection View Reusable View.xctemplate
│ ├── TemplateIcon.png
│ ├── TemplateIcon@2x.png
│ ├── TemplateInfo.plist
│ ├── ___VARIABLE_sourceViewIdentifier___CollectionViewReusableView.swift
│ └── ___VARIABLE_sourceViewIdentifier___CollectionViewReusableView.xib
├── Table View Cell.xctemplate
│ ├── TemplateIcon.png
│ ├── TemplateIcon@2x.png
│ ├── TemplateInfo.plist
│ ├── ___VARIABLE_sourceCellIdentifier___TableViewCell.swift
│ ├── ___VARIABLE_sourceCellIdentifier___TableViewCell.xib
│ └── ___VARIABLE_sourceCellIdentifier___TableViewCellModel.swift
└── Table View Header Footer.xctemplate
│ ├── TemplateIcon.png
│ ├── TemplateIcon@2x.png
│ ├── TemplateInfo.plist
│ ├── ___VARIABLE_sourceCellIdentifier___TableViewHeaderFooter.swift
│ ├── ___VARIABLE_sourceCellIdentifier___TableViewHeaderFooter.xib
│ └── ___VARIABLE_sourceCellIdentifier___TableViewHeaderFooterModel.swift
├── FTAPIKit
└── Endpoints.xctemplate
│ ├── Default
│ └── ___VARIABLE_endpointName___Endpoints.swift
│ ├── HasRequest
│ ├── ___VARIABLE_endpointName___Endpoints.swift
│ └── ___VARIABLE_endpointName___Requests.swift
│ ├── HasRequestHasResponse
│ ├── ___VARIABLE_endpointName___Endpoints.swift
│ ├── ___VARIABLE_endpointName___Requests.swift
│ └── ___VARIABLE_endpointName___Responses.swift
│ ├── HasResponse
│ ├── ___VARIABLE_endpointName___Endpoints.swift
│ └── ___VARIABLE_endpointName___Responses.swift
│ ├── TemplateIcon.png
│ ├── TemplateIcon@2x.png
│ └── TemplateInfo.plist
├── KMP
└── KMP Scene.xctemplate
│ ├── TemplateIcon.png
│ ├── TemplateIcon@2x.png
│ ├── TemplateInfo.plist
│ ├── ___VARIABLE_sceneIdentifier___View.swift
│ └── ___VARIABLE_sceneIdentifier___ViewModel.swift
├── LICENSE
├── Logo.svg
├── MVVM-C
├── MVVM-C Modal Scene.xctemplate
│ ├── TemplateIcon.png
│ ├── TemplateIcon@2x.png
│ ├── TemplateInfo.plist
│ ├── ___VARIABLE_sceneIdentifier___.storyboard
│ ├── ___VARIABLE_sceneIdentifier___Coordinator.swift
│ ├── ___VARIABLE_sceneIdentifier___ViewController.swift
│ └── ___VARIABLE_sceneIdentifier___ViewModel.swift
├── MVVM-C Push Scene.xctemplate
│ ├── TemplateIcon.png
│ ├── TemplateIcon@2x.png
│ ├── TemplateInfo.plist
│ ├── ___VARIABLE_sceneIdentifier___.storyboard
│ ├── ___VARIABLE_sceneIdentifier___Coordinator.swift
│ ├── ___VARIABLE_sceneIdentifier___ViewController.swift
│ └── ___VARIABLE_sceneIdentifier___ViewModel.swift
├── MVVM-C Scene.xctemplate
│ ├── TemplateIcon.png
│ ├── TemplateIcon@2x.png
│ ├── TemplateInfo.plist
│ ├── ___VARIABLE_sceneIdentifier___.storyboard
│ ├── ___VARIABLE_sceneIdentifier___Coordinator.swift
│ ├── ___VARIABLE_sceneIdentifier___ViewController.swift
│ └── ___VARIABLE_sceneIdentifier___ViewModel.swift
├── MVVM-C Show Scene.xctemplate
│ ├── TemplateIcon.png
│ ├── TemplateIcon@2x.png
│ ├── TemplateInfo.plist
│ ├── ___VARIABLE_sceneIdentifier___.storyboard
│ ├── ___VARIABLE_sceneIdentifier___Coordinator.swift
│ ├── ___VARIABLE_sceneIdentifier___ViewController.swift
│ └── ___VARIABLE_sceneIdentifier___ViewModel.swift
├── MVVM-C Tab Bar Item Scene.xctemplate
│ ├── TemplateIcon.png
│ ├── TemplateIcon@2x.png
│ ├── TemplateInfo.plist
│ ├── ___VARIABLE_sceneIdentifier___.storyboard
│ ├── ___VARIABLE_sceneIdentifier___Coordinator.swift
│ ├── ___VARIABLE_sceneIdentifier___ViewController.swift
│ └── ___VARIABLE_sceneIdentifier___ViewModel.swift
├── MVVM-C Window Scene.xctemplate
│ ├── TemplateIcon.png
│ ├── TemplateIcon@2x.png
│ ├── TemplateInfo.plist
│ ├── ___VARIABLE_sceneIdentifier___.storyboard
│ ├── ___VARIABLE_sceneIdentifier___Coordinator.swift
│ ├── ___VARIABLE_sceneIdentifier___ViewController.swift
│ └── ___VARIABLE_sceneIdentifier___ViewModel.swift
├── Nibable View.xctemplate
│ ├── TemplateIcon.png
│ ├── TemplateIcon@2x.png
│ ├── TemplateInfo.plist
│ ├── ___VARIABLE_sourceViewIdentifier___View.swift
│ └── ___VARIABLE_sourceViewIdentifier___View.xib
└── Service.xctemplate
│ ├── TemplateIcon.png
│ ├── TemplateIcon@2x.png
│ ├── TemplateInfo.plist
│ └── ___VARIABLE_serviceIdentifier___.swift
├── Makefile
├── README.md
└── SwiftUI
└── Scene.xctemplate
├── .DS_Store
├── TemplateIcon.png
├── TemplateIcon@2x.png
├── TemplateInfo.plist
├── ___VARIABLE_sceneIdentifier___View.swift
└── ___VARIABLE_sceneIdentifier___ViewState.swift
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/.DS_Store
--------------------------------------------------------------------------------
/CellKit/Collection View Cell.xctemplate/TemplateIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/CellKit/Collection View Cell.xctemplate/TemplateIcon.png
--------------------------------------------------------------------------------
/CellKit/Collection View Cell.xctemplate/TemplateIcon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/CellKit/Collection View Cell.xctemplate/TemplateIcon@2x.png
--------------------------------------------------------------------------------
/CellKit/Collection View Cell.xctemplate/TemplateInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | DefaultCompletionName
6 | CellKit Collection View Cell
7 | Summary
8 | This generates a new collection view cell under CellKit.
9 | Description
10 | This generates a new cell.
11 | Kind
12 | Xcode.IDEKit.TextSubstitutionFileTemplateKind
13 | Platforms
14 |
15 | com.apple.platform.iphoneos
16 |
17 | SortOrder
18 | 9
19 | Options
20 |
21 |
22 | Description
23 | The name of the cell to create
24 | Identifier
25 | sourceCellName
26 | Name
27 | New cell name:
28 | NotPersisted
29 |
30 | Required
31 |
32 | Type
33 | text
34 |
35 |
36 | Default
37 | ___VARIABLE_sourceCellName:identifier___
38 | Identifier
39 | sourceCellIdentifier
40 | Type
41 | static
42 |
43 |
44 | Default
45 | ___VARIABLE_sourceCellIdentifier___CollectionViewCell
46 | Description
47 | The XIB name
48 | Identifier
49 | xibName
50 | Name
51 | XIB name:
52 | Required
53 |
54 | Type
55 | static
56 |
57 |
58 | Default
59 | ___VARIABLE_sourceCellIdentifier___CollectionViewCell
60 | Description
61 | The Cell name
62 | Identifier
63 | cellName
64 | Name
65 | Cell name:
66 | Required
67 |
68 | Type
69 | static
70 |
71 |
72 | Default
73 | ___VARIABLE_sourceCellIdentifier___CollectionViewCellModel
74 | Description
75 | The cell model name
76 | Identifier
77 | cellModelName
78 | Name
79 | CellModel name:
80 | Required
81 |
82 | Type
83 | static
84 |
85 |
86 |
87 |
88 |
--------------------------------------------------------------------------------
/CellKit/Collection View Cell.xctemplate/___VARIABLE_sourceCellIdentifier___CollectionViewCell.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___ using CellKit Collection View Cell Template (v1.0).
6 | // Copyright © ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import CellKit
10 |
11 | final class ___VARIABLE_sourceCellIdentifier___CollectionViewCell: UICollectionViewCell {
12 |
13 | }
14 |
15 | extension ___VARIABLE_sourceCellIdentifier___CollectionViewCell: CellConfigurable {
16 | func configure(with model: ___VARIABLE_sourceCellIdentifier___CollectionViewCellModel) {
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/CellKit/Collection View Cell.xctemplate/___VARIABLE_sourceCellIdentifier___CollectionViewCell.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/CellKit/Collection View Cell.xctemplate/___VARIABLE_sourceCellIdentifier___CollectionViewCellModel.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___ using CellKit Collection View Cell Template (v1.0).
6 | // Copyright © ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import CellKit
10 |
11 | struct ___VARIABLE_sourceCellIdentifier___CollectionViewCellModel {
12 |
13 | }
14 |
15 | extension ___VARIABLE_sourceCellIdentifier___CollectionViewCellModel: CellModel, ReusableCellConvertible {
16 | typealias Cell = ___VARIABLE_sourceCellIdentifier___CollectionViewCell
17 | }
18 |
--------------------------------------------------------------------------------
/CellKit/Collection View Reusable View.xctemplate/TemplateIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/CellKit/Collection View Reusable View.xctemplate/TemplateIcon.png
--------------------------------------------------------------------------------
/CellKit/Collection View Reusable View.xctemplate/TemplateIcon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/CellKit/Collection View Reusable View.xctemplate/TemplateIcon@2x.png
--------------------------------------------------------------------------------
/CellKit/Collection View Reusable View.xctemplate/TemplateInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | DefaultCompletionName
6 | CellKit Collection View Reusable View
7 | Summary
8 | This generates a new collection reusable view.
9 | Description
10 | This generates a new cell.
11 | Kind
12 | Xcode.IDEKit.TextSubstitutionFileTemplateKind
13 | Platforms
14 |
15 | com.apple.platform.iphoneos
16 |
17 | SortOrder
18 | 9
19 | Options
20 |
21 |
22 | Description
23 | The name of the view to create
24 | Identifier
25 | sourceViewName
26 | Name
27 | New view name:
28 | NotPersisted
29 |
30 | Required
31 |
32 | Type
33 | text
34 |
35 |
36 | Default
37 | ___VARIABLE_sourceViewName:identifier___
38 | Identifier
39 | sourceViewIdentifier
40 | Type
41 | static
42 |
43 |
44 | Default
45 | ___VARIABLE_sourceViewIdentifier___CollectionViewReusableView
46 | Description
47 | The XIB name
48 | Identifier
49 | xibName
50 | Name
51 | XIB name:
52 | Required
53 |
54 | Type
55 | static
56 |
57 |
58 | Default
59 | ___VARIABLE_sourceViewIdentifier___CollectionViewReusableView
60 | Description
61 | The view name
62 | Identifier
63 | viewName
64 | Name
65 | View name:
66 | Required
67 |
68 | Type
69 | static
70 |
71 |
72 |
73 |
74 |
--------------------------------------------------------------------------------
/CellKit/Collection View Reusable View.xctemplate/___VARIABLE_sourceViewIdentifier___CollectionViewReusableView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___ using Collection Reusable View Template (v1.0).
6 | // Copyright © ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | final class ___VARIABLE_sourceViewIdentifier___CollectionViewReusableView: UICollectionReusableView {
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/CellKit/Collection View Reusable View.xctemplate/___VARIABLE_sourceViewIdentifier___CollectionViewReusableView.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/CellKit/Table View Cell.xctemplate/TemplateIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/CellKit/Table View Cell.xctemplate/TemplateIcon.png
--------------------------------------------------------------------------------
/CellKit/Table View Cell.xctemplate/TemplateIcon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/CellKit/Table View Cell.xctemplate/TemplateIcon@2x.png
--------------------------------------------------------------------------------
/CellKit/Table View Cell.xctemplate/TemplateInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | DefaultCompletionName
6 | CellKit Table View Cell
7 | Summary
8 | This generates a new table view cell for CellKit.
9 | Description
10 | This generates a new cell.
11 | Kind
12 | Xcode.IDEKit.TextSubstitutionFileTemplateKind
13 | Platforms
14 |
15 | com.apple.platform.iphoneos
16 |
17 | SortOrder
18 | 9
19 | Options
20 |
21 |
22 | Description
23 | The name of the cell to create
24 | Identifier
25 | sourceCellName
26 | Name
27 | New cell name:
28 | NotPersisted
29 |
30 | Required
31 |
32 | Type
33 | text
34 |
35 |
36 | Default
37 | ___VARIABLE_sourceCellName:identifier___
38 | Identifier
39 | sourceCellIdentifier
40 | Type
41 | static
42 |
43 |
44 | Default
45 | ___VARIABLE_sourceCellIdentifier___TableViewCell
46 | Description
47 | The XIB name
48 | Identifier
49 | xibName
50 | Name
51 | XIB name:
52 | Required
53 |
54 | Type
55 | static
56 |
57 |
58 | Default
59 | ___VARIABLE_sourceCellIdentifier___TableViewCell
60 | Description
61 | The Cell name
62 | Identifier
63 | cellName
64 | Name
65 | Cell name:
66 | Required
67 |
68 | Type
69 | static
70 |
71 |
72 | Default
73 | ___VARIABLE_sourceCellIdentifier___TableViewCellModel
74 | Description
75 | The cell model name
76 | Identifier
77 | cellModelName
78 | Name
79 | CellModel name:
80 | Required
81 |
82 | Type
83 | static
84 |
85 |
86 |
87 |
88 |
--------------------------------------------------------------------------------
/CellKit/Table View Cell.xctemplate/___VARIABLE_sourceCellIdentifier___TableViewCell.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___ using CellKit Table View Cell Template (v1.0).
6 | // Copyright © ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import CellKit
10 |
11 | final class ___VARIABLE_sourceCellIdentifier___TableViewCell: UITableViewCell {
12 |
13 | }
14 |
15 | extension ___VARIABLE_sourceCellIdentifier___TableViewCell: CellConfigurable {
16 | func configure(with model: ___VARIABLE_sourceCellIdentifier___TableViewCellModel) {
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/CellKit/Table View Cell.xctemplate/___VARIABLE_sourceCellIdentifier___TableViewCell.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/CellKit/Table View Cell.xctemplate/___VARIABLE_sourceCellIdentifier___TableViewCellModel.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___ using CellKit Table View Cell Template (v1.0).
6 | // Copyright © ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import CellKit
10 |
11 | struct ___VARIABLE_sourceCellIdentifier___TableViewCellModel {
12 |
13 | }
14 |
15 | extension ___VARIABLE_sourceCellIdentifier___TableViewCellModel: CellModel, ReusableCellConvertible {
16 | typealias Cell = ___VARIABLE_sourceCellIdentifier___TableViewCell
17 |
18 | var cellHeight: Double {
19 | return .automaticDimension
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/CellKit/Table View Header Footer.xctemplate/TemplateIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/CellKit/Table View Header Footer.xctemplate/TemplateIcon.png
--------------------------------------------------------------------------------
/CellKit/Table View Header Footer.xctemplate/TemplateIcon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/CellKit/Table View Header Footer.xctemplate/TemplateIcon@2x.png
--------------------------------------------------------------------------------
/CellKit/Table View Header Footer.xctemplate/TemplateInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | DefaultCompletionName
6 | CellKit Table View Header Footer View
7 | Summary
8 | This generates a new table view header footer view for CellKit
9 | Description
10 | This generates a new header footer view.
11 | Kind
12 | Xcode.IDEKit.TextSubstitutionFileTemplateKind
13 | Platforms
14 |
15 | com.apple.platform.iphoneos
16 |
17 | SortOrder
18 | 9
19 | Options
20 |
21 |
22 | Description
23 | The name of the header footer view to create
24 | Identifier
25 | sourceCellName
26 | Name
27 | New header footer name:
28 | NotPersisted
29 |
30 | Required
31 |
32 | Type
33 | text
34 |
35 |
36 | Default
37 | ___VARIABLE_sourceCellName:identifier___
38 | Identifier
39 | sourceCellIdentifier
40 | Type
41 | static
42 |
43 |
44 | Default
45 | ___VARIABLE_sourceCellIdentifier___TableViewHeaderFooter
46 | Description
47 | The XIB name
48 | Identifier
49 | xibName
50 | Name
51 | XIB name:
52 | Required
53 |
54 | Type
55 | static
56 |
57 |
58 | Default
59 | ___VARIABLE_sourceCellIdentifier___TableViewHeaderFooter
60 | Description
61 | The Cell name
62 | Identifier
63 | cellName
64 | Name
65 | Cell name:
66 | Required
67 |
68 | Type
69 | static
70 |
71 |
72 | Default
73 | ___VARIABLE_sourceCellIdentifier___TableViewHeaderFooterModel
74 | Description
75 | The cell model name
76 | Identifier
77 | cellModelName
78 | Name
79 | CellModel name:
80 | Required
81 |
82 | Type
83 | static
84 |
85 |
86 |
87 |
88 |
--------------------------------------------------------------------------------
/CellKit/Table View Header Footer.xctemplate/___VARIABLE_sourceCellIdentifier___TableViewHeaderFooter.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___ using CellKit Table View Header Footer Template (v1.0).
6 | // Copyright © ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import CellKit
10 |
11 | final class ___VARIABLE_sourceCellIdentifier___TableViewHeaderFooter: UITableViewHeaderFooterView {
12 |
13 | override func awakeFromNib() {
14 | super.awakeFromNib()
15 | }
16 |
17 | }
18 |
19 | extension ___VARIABLE_sourceCellIdentifier___TableViewHeaderFooter: CellConfigurable {
20 | func configure(with model: ___VARIABLE_sourceCellIdentifier___TableViewHeaderFooterModel) {
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/CellKit/Table View Header Footer.xctemplate/___VARIABLE_sourceCellIdentifier___TableViewHeaderFooter.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/CellKit/Table View Header Footer.xctemplate/___VARIABLE_sourceCellIdentifier___TableViewHeaderFooterModel.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___ using CellKit Table View Header Footer Template (v1.0).
6 | // Copyright © ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import CellKit
10 |
11 | struct ___VARIABLE_sourceCellIdentifier___TableViewHeaderFooterModel {
12 |
13 | }
14 |
15 | extension ___VARIABLE_sourceCellIdentifier___TableViewHeaderFooterModel: SupplementaryViewModel, CellConvertible {
16 | typealias Cell = ___VARIABLE_sourceCellIdentifier___TableViewHeaderFooter
17 |
18 | var cellHeight: Double {
19 | return 45.0
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/FTAPIKit/Endpoints.xctemplate/Default/___VARIABLE_endpointName___Endpoints.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___ using FTAPIKit Endpoint Template (v1.0).
6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import FTAPIKit
10 |
11 | struct ___VARIABLE_templateName___Endpoint: APIEndpoint {
12 |
13 | let path: String = ""
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/FTAPIKit/Endpoints.xctemplate/HasRequest/___VARIABLE_endpointName___Endpoints.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___ using FTAPIKit Request Endpoint Template (v1.0).
6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import FTAPIKit
10 |
11 | struct ___VARIABLE_templateName___Endpoint: APIRequestEndpoint {
12 | typealias Request = ___VARIABLE_templateName___Request
13 |
14 | var body: ___VARIABLE_templateName___Request
15 | var path: String
16 | }
17 |
--------------------------------------------------------------------------------
/FTAPIKit/Endpoints.xctemplate/HasRequest/___VARIABLE_endpointName___Requests.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___ using FTAPIKit Request Endpoint Template (v1.0).
6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | struct ___VARIABLE_templateName___Request: Encodable {}
12 |
--------------------------------------------------------------------------------
/FTAPIKit/Endpoints.xctemplate/HasRequestHasResponse/___VARIABLE_endpointName___Endpoints.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___ using FTAPIKit Request Response Endpoint Template (v1.0).
6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import FTAPIKit
10 |
11 | struct ___VARIABLE_templateName___Endpoint: APIRequestResponseEndpoint {
12 | typealias Response = ___VARIABLE_templateName___Response
13 | typealias Request = ___VARIABLE_templateName___Request
14 |
15 | var body: ___VARIABLE_templateName___Request
16 | let path: String = ""
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/FTAPIKit/Endpoints.xctemplate/HasRequestHasResponse/___VARIABLE_endpointName___Requests.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___ using FTAPIKit Request Response Endpoint Template (v1.0).
6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | struct ___VARIABLE_templateName___Request: Encodable {}
12 |
--------------------------------------------------------------------------------
/FTAPIKit/Endpoints.xctemplate/HasRequestHasResponse/___VARIABLE_endpointName___Responses.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___ using FTAPIKit Request Response Endpoint Template (v1.0).
6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | struct ___VARIABLE_templateName___Response: Decodable {
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/FTAPIKit/Endpoints.xctemplate/HasResponse/___VARIABLE_endpointName___Endpoints.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___ using FTAPIKit Response Endpoint Template (v1.0).
6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import FTAPIKit
10 |
11 | struct ___VARIABLE_templateName___Endpoint: APIResponseEndpoint {
12 | typealias Response = ___VARIABLE_templateName___Response
13 |
14 | let path: String = ""
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/FTAPIKit/Endpoints.xctemplate/HasResponse/___VARIABLE_endpointName___Responses.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___ using FTAPIKit Response Endpoint Template (v1.0).
6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | struct ___VARIABLE_templateName___Response: Decodable {
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/FTAPIKit/Endpoints.xctemplate/TemplateIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/FTAPIKit/Endpoints.xctemplate/TemplateIcon.png
--------------------------------------------------------------------------------
/FTAPIKit/Endpoints.xctemplate/TemplateIcon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/FTAPIKit/Endpoints.xctemplate/TemplateIcon@2x.png
--------------------------------------------------------------------------------
/FTAPIKit/Endpoints.xctemplate/TemplateInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | DefaultCompletionName
6 | Endpoint
7 | Description
8 | This generates a new endpoint for use with the APIAdapter from the FTAPIKit.
9 | Kind
10 | Xcode.IDEKit.TextSubstitutionFileTemplateKind
11 | Options
12 |
13 |
14 | Description
15 | The name of the endpoint
16 | Identifier
17 | endpointName
18 | Name
19 | Endpoint file name:
20 | NotPersisted
21 |
22 | Required
23 |
24 | Type
25 | text
26 |
27 |
28 | Description
29 | The name of template request.
30 | Identifier
31 | templateName
32 | Name
33 | Template endpoint name:
34 | NotPersisted
35 |
36 | Required
37 |
38 | Type
39 | text
40 |
41 |
42 | Identifier
43 | hasRequest
44 | Name
45 | Generate Request file
46 | Description
47 | Check whethe you want to create file containing requests.
48 | Type
49 | checkbox
50 |
51 |
52 | Identifier
53 | hasResponse
54 | Name
55 | Generate Response file
56 | Description
57 | Check whethe you want to create file containing responses.
58 | Type
59 | checkbox
60 |
61 |
62 | Platforms
63 |
64 | com.apple.platform.iphoneos
65 |
66 | SortOrder
67 | 99
68 | Summary
69 | This generates a new service for use with the ServiceHolder (dependency injection) from the FuntastyKit.
70 |
71 |
72 |
--------------------------------------------------------------------------------
/KMP/KMP Scene.xctemplate/TemplateIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/KMP/KMP Scene.xctemplate/TemplateIcon.png
--------------------------------------------------------------------------------
/KMP/KMP Scene.xctemplate/TemplateIcon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/KMP/KMP Scene.xctemplate/TemplateIcon@2x.png
--------------------------------------------------------------------------------
/KMP/KMP Scene.xctemplate/TemplateInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | DefaultCompletionName
6 | KMP Scene
7 | Description
8 | This generates a new KMP SwiftUI scene using Futured architecture. It consists of the view, view model protocol and view model.
9 | Kind
10 | Xcode.IDEKit.TextSubstitutionFileTemplateKind
11 | Options
12 |
13 |
14 | Description
15 | The name of the scene to create
16 | Identifier
17 | sceneName
18 | Name
19 | New Scene Name:
20 | NotPersisted
21 |
22 | Required
23 |
24 | Type
25 | text
26 |
27 |
28 | Description
29 | The name of shared KMP module
30 | Identifier
31 | kmpModuleName
32 | Name
33 | KMP Module Name:
34 | NotPersisted
35 |
36 | Required
37 |
38 | Type
39 | text
40 |
41 |
42 | Default
43 | ___VARIABLE_sceneName:identifier___
44 | Identifier
45 | sceneIdentifier
46 | Type
47 | static
48 |
49 |
50 | Default
51 | ___VARIABLE_sceneIdentifier___View
52 | Description
53 | The view name
54 | Identifier
55 | viewName
56 | Name
57 | View Name:
58 | Required
59 |
60 | Type
61 | static
62 |
63 |
64 | Default
65 | ___VARIABLE_sceneIdentifier___ViewModel
66 | Description
67 | The view model name
68 | Identifier
69 | viewModelName
70 | Name
71 | ViewModel Name:
72 | Required
73 |
74 | Type
75 | static
76 |
77 |
78 | Platforms
79 |
80 | com.apple.platform.iphoneos
81 |
82 | SortOrder
83 | 10
84 | Summary
85 | This generates a new SwiftUI scene using Futured KMP architecture.
86 |
87 |
88 |
--------------------------------------------------------------------------------
/KMP/KMP Scene.xctemplate/___VARIABLE_sceneIdentifier___View.swift:
--------------------------------------------------------------------------------
1 | import ___VARIABLE_kmpModuleName___
2 | import SwiftUI
3 |
4 | struct ___VARIABLE_sceneIdentifier___View: View {
5 | private let viewModel: ViewModel
6 |
7 | init(_ viewModel: ViewModel) {
8 | self.viewModel = viewModel
9 | }
10 |
11 | var body: some View {
12 | Text("___VARIABLE_sceneIdentifier___View")
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/KMP/KMP Scene.xctemplate/___VARIABLE_sceneIdentifier___ViewModel.swift:
--------------------------------------------------------------------------------
1 | import ___VARIABLE_kmpModuleName___
2 | import SwiftUI
3 |
4 | protocol ___VARIABLE_sceneIdentifier___ViewModelProtocol: DynamicProperty {
5 | }
6 |
7 | struct ___VARIABLE_sceneIdentifier___ViewModel {
8 | @StateObject @KotlinStateFlow private var viewState: ___VARIABLE_sceneIdentifier___ViewState
9 | private let actions: ___VARIABLE_sceneIdentifier___ScreenActions
10 | private let events: SkieSwiftFlow<___VARIABLE_sceneIdentifier___Event>
11 |
12 | init(_ screen: ___VARIABLE_sceneIdentifier___Screen) {
13 | self._viewState = .init(screen.viewState)
14 | self.actions = screen.actions
15 | self.events = screen.events
16 | }
17 | }
18 |
19 | extension ___VARIABLE_sceneIdentifier___ViewModel: ___VARIABLE_sceneIdentifier___ViewModelProtocol {}
20 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2020 Futured apps s.r.o.
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/Logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Modal Scene.xctemplate/TemplateIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/MVVM-C/MVVM-C Modal Scene.xctemplate/TemplateIcon.png
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Modal Scene.xctemplate/TemplateIcon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/MVVM-C/MVVM-C Modal Scene.xctemplate/TemplateIcon@2x.png
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Modal Scene.xctemplate/TemplateInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | DefaultCompletionName
6 | Scene
7 | Description
8 | This generates a new modal scene using Futured MVVM-C architecture. It consists of the view controller, view model, coordinator and storyboard.
9 | Kind
10 | Xcode.IDEKit.TextSubstitutionFileTemplateKind
11 | Options
12 |
13 |
14 | Description
15 | The name of the scene to create
16 | Identifier
17 | sceneName
18 | Name
19 | New Scene Name:
20 | NotPersisted
21 |
22 | Required
23 |
24 | Type
25 | text
26 |
27 |
28 | Default
29 | ___VARIABLE_sceneName:identifier___
30 | Identifier
31 | sceneIdentifier
32 | Type
33 | static
34 |
35 |
36 | Default
37 | ___VARIABLE_sceneIdentifier___ViewController
38 | Description
39 | The view controller name
40 | Identifier
41 | viewControllerName
42 | Name
43 | View Controller Name:
44 | Required
45 |
46 | Type
47 | static
48 |
49 |
50 | Default
51 | ___VARIABLE_sceneIdentifier___ViewModel
52 | Description
53 | The view model name
54 | Identifier
55 | viewModelName
56 | Name
57 | ViewModel Name:
58 | Required
59 |
60 | Type
61 | static
62 |
63 |
64 | Default
65 | ___VARIABLE_sceneIdentifier___Coordinator
66 | Description
67 | The coordinator name
68 | Identifier
69 | coordinatorName
70 | Name
71 | Coordinator Name:
72 | Required
73 |
74 | Type
75 | static
76 |
77 |
78 | Default
79 | ___VARIABLE_sceneIdentifier___Storyboard
80 | Description
81 | The storyboard name
82 | Identifier
83 | storyboardName
84 | Name
85 | Storyboard Name:
86 | Required
87 |
88 | Type
89 | static
90 |
91 |
92 | Platforms
93 |
94 | com.apple.platform.iphoneos
95 |
96 | SortOrder
97 | 9
98 | Summary
99 | This generates a new modal scene using Futured MVVM-C architecture.
100 |
101 |
102 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Modal Scene.xctemplate/___VARIABLE_sceneIdentifier___.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Modal Scene.xctemplate/___VARIABLE_sceneIdentifier___Coordinator.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___.
6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import UIKit
10 | import FuntastyKit
11 |
12 | private struct ___VARIABLE_sceneIdentifier___Storyboard: StoryboardType {
13 | static let name = "___VARIABLE_sceneIdentifier___"
14 | static let navigationController = StoryboardReference<___VARIABLE_sceneIdentifier___Storyboard, UINavigationController>(id: "___VARIABLE_sceneIdentifier___NavigationControllerID")
15 | static let viewController = StoryboardReference<___VARIABLE_sceneIdentifier___Storyboard, ___VARIABLE_sceneIdentifier___ViewController>(id: "___VARIABLE_sceneIdentifier___ViewControllerID")
16 | }
17 |
18 | final class ___VARIABLE_sceneIdentifier___Coordinator: ModalCoordinator {
19 | let sourceViewController: UIViewController
20 | weak var destinationNavigationController: UINavigationController?
21 | weak var viewController: ___VARIABLE_sceneIdentifier___ViewController?
22 |
23 | private let serviceHolder: ServiceHolder
24 |
25 | init(sourceViewController: UIViewController, serviceHolder: ServiceHolder) {
26 | self.sourceViewController = sourceViewController
27 | self.serviceHolder = serviceHolder
28 | self.destinationNavigationController = ___VARIABLE_sceneIdentifier___Storyboard.navigationController.instantiate()
29 | self.viewController = destinationNavigationController?.topViewController as? ___VARIABLE_sceneIdentifier___ViewController
30 | }
31 |
32 | func configure(viewController: ___VARIABLE_sceneIdentifier___ViewController) {
33 | viewController.viewModel = ___VARIABLE_sceneIdentifier___ViewModel(coordinator: self, viewController: viewController)
34 | }
35 | }
36 |
37 | extension ___VARIABLE_sceneIdentifier___Coordinator: ___VARIABLE_sceneIdentifier___CoordinatorInput {
38 | }
39 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Modal Scene.xctemplate/___VARIABLE_sceneIdentifier___ViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___.
6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | final class ___VARIABLE_sceneIdentifier___ViewController: UIViewController {
12 | var viewModel: ___VARIABLE_sceneIdentifier___ViewModel!
13 |
14 | // MARK: - View lifecycle
15 |
16 | override func viewDidLoad() {
17 | super.viewDidLoad()
18 | }
19 | }
20 |
21 | extension ___VARIABLE_sceneIdentifier___ViewController: ___VARIABLE_sceneIdentifier___ViewControllerInput {
22 | }
23 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Modal Scene.xctemplate/___VARIABLE_sceneIdentifier___ViewModel.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___.
6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import FuntastyKit
11 |
12 | protocol ___VARIABLE_sceneIdentifier___CoordinatorInput: Coordinator {
13 | }
14 |
15 | protocol ___VARIABLE_sceneIdentifier___ViewControllerInput: AnyObject {
16 | }
17 |
18 | final class ___VARIABLE_sceneIdentifier___ViewModel {
19 | private let coordinator: ___VARIABLE_sceneIdentifier___CoordinatorInput
20 | private weak var viewController: ___VARIABLE_sceneIdentifier___ViewControllerInput?
21 |
22 | init(coordinator: ___VARIABLE_sceneIdentifier___CoordinatorInput, viewController: ___VARIABLE_sceneIdentifier___ViewControllerInput) {
23 | self.coordinator = coordinator
24 | self.viewController = viewController
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Push Scene.xctemplate/TemplateIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/MVVM-C/MVVM-C Push Scene.xctemplate/TemplateIcon.png
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Push Scene.xctemplate/TemplateIcon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/MVVM-C/MVVM-C Push Scene.xctemplate/TemplateIcon@2x.png
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Push Scene.xctemplate/TemplateInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | DefaultCompletionName
6 | Scene
7 | Description
8 | This generates a new push scene using Futured MVVM-C architecture. It consists of the view controller, view model, coordinator and storyboard.
9 | Kind
10 | Xcode.IDEKit.TextSubstitutionFileTemplateKind
11 | Options
12 |
13 |
14 | Description
15 | The name of the scene to create
16 | Identifier
17 | sceneName
18 | Name
19 | New Scene Name:
20 | NotPersisted
21 |
22 | Required
23 |
24 | Type
25 | text
26 |
27 |
28 | Default
29 | ___VARIABLE_sceneName:identifier___
30 | Identifier
31 | sceneIdentifier
32 | Type
33 | static
34 |
35 |
36 | Default
37 | ___VARIABLE_sceneIdentifier___ViewController
38 | Description
39 | The view controller name
40 | Identifier
41 | viewControllerName
42 | Name
43 | View Controller Name:
44 | Required
45 |
46 | Type
47 | static
48 |
49 |
50 | Default
51 | ___VARIABLE_sceneIdentifier___ViewModel
52 | Description
53 | The view model name
54 | Identifier
55 | viewModelName
56 | Name
57 | ViewModel Name:
58 | Required
59 |
60 | Type
61 | static
62 |
63 |
64 | Default
65 | ___VARIABLE_sceneIdentifier___Coordinator
66 | Description
67 | The coordinator name
68 | Identifier
69 | coordinatorName
70 | Name
71 | Coordinator Name:
72 | Required
73 |
74 | Type
75 | static
76 |
77 |
78 | Default
79 | ___VARIABLE_sceneIdentifier___Storyboard
80 | Description
81 | The storyboard name
82 | Identifier
83 | storyboardName
84 | Name
85 | Storyboard Name:
86 | Required
87 |
88 | Type
89 | static
90 |
91 |
92 | Platforms
93 |
94 | com.apple.platform.iphoneos
95 |
96 | SortOrder
97 | 9
98 | Summary
99 | This generates a new push scene using Futured MVVM-C architecture.
100 |
101 |
102 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Push Scene.xctemplate/___VARIABLE_sceneIdentifier___.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Push Scene.xctemplate/___VARIABLE_sceneIdentifier___Coordinator.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___.
6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import UIKit
10 | import FuntastyKit
11 |
12 | private struct ___VARIABLE_sceneIdentifier___Storyboard: StoryboardType {
13 | static let name = "___VARIABLE_sceneIdentifier___"
14 | static let viewController = StoryboardReference<___VARIABLE_sceneIdentifier___Storyboard, ___VARIABLE_sceneIdentifier___ViewController>(id: "___VARIABLE_sceneIdentifier___ViewControllerID")
15 | }
16 |
17 | final class ___VARIABLE_sceneIdentifier___Coordinator: PushCoordinator {
18 | weak var navigationController: UINavigationController?
19 | weak var viewController: ___VARIABLE_sceneIdentifier___ViewController?
20 |
21 | private let serviceHolder: ServiceHolder
22 |
23 | init(navigationController: UINavigationController, serviceHolder: ServiceHolder) {
24 | self.navigationController = navigationController
25 | self.serviceHolder = serviceHolder
26 | self.viewController = ___VARIABLE_sceneIdentifier___Storyboard.viewController.instantiate()
27 | }
28 |
29 | func configure(viewController: ___VARIABLE_sceneIdentifier___ViewController) {
30 | viewController.viewModel = ___VARIABLE_sceneIdentifier___ViewModel(coordinator: self, viewController: viewController)
31 | }
32 | }
33 |
34 | extension ___VARIABLE_sceneIdentifier___Coordinator: ___VARIABLE_sceneIdentifier___CoordinatorInput {
35 | }
36 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Push Scene.xctemplate/___VARIABLE_sceneIdentifier___ViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___.
6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | final class ___VARIABLE_sceneIdentifier___ViewController: UIViewController {
12 | var viewModel: ___VARIABLE_sceneIdentifier___ViewModel!
13 |
14 | // MARK: - View lifecycle
15 |
16 | override func viewDidLoad() {
17 | super.viewDidLoad()
18 | }
19 | }
20 |
21 | extension ___VARIABLE_sceneIdentifier___ViewController: ___VARIABLE_sceneIdentifier___ViewControllerInput {
22 | }
23 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Push Scene.xctemplate/___VARIABLE_sceneIdentifier___ViewModel.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___.
6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import FuntastyKit
11 |
12 | protocol ___VARIABLE_sceneIdentifier___CoordinatorInput: Coordinator {
13 | }
14 |
15 | protocol ___VARIABLE_sceneIdentifier___ViewControllerInput: AnyObject {
16 | }
17 |
18 | final class ___VARIABLE_sceneIdentifier___ViewModel {
19 | private let coordinator: ___VARIABLE_sceneIdentifier___CoordinatorInput
20 | private weak var viewController: ___VARIABLE_sceneIdentifier___ViewControllerInput?
21 |
22 | init(coordinator: ___VARIABLE_sceneIdentifier___CoordinatorInput, viewController: ___VARIABLE_sceneIdentifier___ViewControllerInput) {
23 | self.coordinator = coordinator
24 | self.viewController = viewController
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Scene.xctemplate/TemplateIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/MVVM-C/MVVM-C Scene.xctemplate/TemplateIcon.png
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Scene.xctemplate/TemplateIcon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/MVVM-C/MVVM-C Scene.xctemplate/TemplateIcon@2x.png
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Scene.xctemplate/TemplateInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | DefaultCompletionName
6 | Scene
7 | Description
8 | This generates a new scene using Futured MVVM-C architecture. It consists of the view controller, view model, coordinator and storyboard.
9 | Kind
10 | Xcode.IDEKit.TextSubstitutionFileTemplateKind
11 | Options
12 |
13 |
14 | Description
15 | The name of the scene to create
16 | Identifier
17 | sceneName
18 | Name
19 | New Scene Name:
20 | NotPersisted
21 |
22 | Required
23 |
24 | Type
25 | text
26 |
27 |
28 | Default
29 | ___VARIABLE_sceneName:identifier___
30 | Identifier
31 | sceneIdentifier
32 | Type
33 | static
34 |
35 |
36 | Default
37 | ___VARIABLE_sceneIdentifier___ViewController
38 | Description
39 | The view controller name
40 | Identifier
41 | viewControllerName
42 | Name
43 | View Controller Name:
44 | Required
45 |
46 | Type
47 | static
48 |
49 |
50 | Default
51 | ___VARIABLE_sceneIdentifier___ViewModel
52 | Description
53 | The view model name
54 | Identifier
55 | viewModelName
56 | Name
57 | ViewModel Name:
58 | Required
59 |
60 | Type
61 | static
62 |
63 |
64 | Default
65 | ___VARIABLE_sceneIdentifier___Coordinator
66 | Description
67 | The coordinator name
68 | Identifier
69 | coordinatorName
70 | Name
71 | Coordinator Name:
72 | Required
73 |
74 | Type
75 | static
76 |
77 |
78 | Default
79 | ___VARIABLE_sceneIdentifier___Storyboard
80 | Description
81 | The storyboard name
82 | Identifier
83 | storyboardName
84 | Name
85 | Storyboard Name:
86 | Required
87 |
88 | Type
89 | static
90 |
91 |
92 | Platforms
93 |
94 | com.apple.platform.iphoneos
95 |
96 | SortOrder
97 | 9
98 | Summary
99 | This generates a new scene using Futured MVVM-C architecture.
100 |
101 |
102 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Scene.xctemplate/___VARIABLE_sceneIdentifier___.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Scene.xctemplate/___VARIABLE_sceneIdentifier___Coordinator.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___.
6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import UIKit
10 | import FuntastyKit
11 |
12 | private struct ___VARIABLE_sceneIdentifier___Storyboard: StoryboardType {
13 | static let name = "___VARIABLE_sceneIdentifier___"
14 | static let navigationController = StoryboardReference<___VARIABLE_sceneIdentifier___Storyboard, UINavigationController>(id: "___VARIABLE_sceneIdentifier___NavigationControllerID")
15 | static let viewController = StoryboardReference<___VARIABLE_sceneIdentifier___Storyboard, ___VARIABLE_sceneIdentifier___ViewController>(id: "___VARIABLE_sceneIdentifier___ViewControllerID")
16 | }
17 |
18 | final class ___VARIABLE_sceneIdentifier___Coordinator: DefaultCoordinator {
19 | private let navigationController: UINavigationController
20 | weak var viewController: ___VARIABLE_sceneIdentifier___ViewController?
21 |
22 | private let serviceHolder: ServiceHolder
23 |
24 | init(navigationController: UINavigationController, serviceHolder: ServiceHolder) {
25 | self.navigationController = navigationController
26 | self.viewController = ___VARIABLE_sceneIdentifier___Storyboard.viewController.instantiate()
27 |
28 | self.serviceHolder = serviceHolder
29 | }
30 |
31 | func start() {
32 | guard let viewController = viewController else {
33 | return
34 | }
35 | viewController.viewModel = ___VARIABLE_sceneIdentifier___ViewModel(coordinator: self, viewController: viewController)
36 |
37 | navigationController.pushViewController(viewController, animated: true)
38 | }
39 |
40 | func stop() {
41 | _ = navigationController.popViewController(animated: true)
42 | }
43 | }
44 |
45 | extension ___VARIABLE_sceneIdentifier___Coordinator: ___VARIABLE_sceneIdentifier___CoordinatorInput {
46 | }
47 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Scene.xctemplate/___VARIABLE_sceneIdentifier___ViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___.
6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | final class ___VARIABLE_sceneIdentifier___ViewController: UIViewController {
12 | var viewModel: ___VARIABLE_sceneIdentifier___ViewModel!
13 |
14 | // MARK: - View lifecycle
15 |
16 | override func viewDidLoad() {
17 | super.viewDidLoad()
18 | }
19 | }
20 |
21 | extension ___VARIABLE_sceneIdentifier___ViewController: ___VARIABLE_sceneIdentifier___ViewControllerInput {
22 | }
23 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Scene.xctemplate/___VARIABLE_sceneIdentifier___ViewModel.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___.
6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import FuntastyKit
11 |
12 | protocol ___VARIABLE_sceneIdentifier___CoordinatorInput: Coordinator {
13 | }
14 |
15 | protocol ___VARIABLE_sceneIdentifier___ViewControllerInput: AnyObject {
16 | }
17 |
18 | final class ___VARIABLE_sceneIdentifier___ViewModel {
19 | private let coordinator: ___VARIABLE_sceneIdentifier___CoordinatorInput
20 | private weak var viewController: ___VARIABLE_sceneIdentifier___ViewControllerInput?
21 |
22 | init(coordinator: ___VARIABLE_sceneIdentifier___CoordinatorInput, viewController: ___VARIABLE_sceneIdentifier___ViewControllerInput) {
23 | self.coordinator = coordinator
24 | self.viewController = viewController
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Show Scene.xctemplate/TemplateIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/MVVM-C/MVVM-C Show Scene.xctemplate/TemplateIcon.png
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Show Scene.xctemplate/TemplateIcon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/MVVM-C/MVVM-C Show Scene.xctemplate/TemplateIcon@2x.png
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Show Scene.xctemplate/TemplateInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | DefaultCompletionName
6 | Scene
7 | Description
8 | This generates a new show scene using Futured MVVM-C architecture. It consists of the view controller, view model, coordinator and storyboard.
9 | Kind
10 | Xcode.IDEKit.TextSubstitutionFileTemplateKind
11 | Options
12 |
13 |
14 | Description
15 | The name of the scene to create
16 | Identifier
17 | sceneName
18 | Name
19 | New Scene Name:
20 | NotPersisted
21 |
22 | Required
23 |
24 | Type
25 | text
26 |
27 |
28 | Default
29 | ___VARIABLE_sceneName:identifier___
30 | Identifier
31 | sceneIdentifier
32 | Type
33 | static
34 |
35 |
36 | Default
37 | ___VARIABLE_sceneIdentifier___ViewController
38 | Description
39 | The view controller name
40 | Identifier
41 | viewControllerName
42 | Name
43 | View Controller Name:
44 | Required
45 |
46 | Type
47 | static
48 |
49 |
50 | Default
51 | ___VARIABLE_sceneIdentifier___ViewModel
52 | Description
53 | The view model name
54 | Identifier
55 | viewModelName
56 | Name
57 | ViewModel Name:
58 | Required
59 |
60 | Type
61 | static
62 |
63 |
64 | Default
65 | ___VARIABLE_sceneIdentifier___Coordinator
66 | Description
67 | The coordinator name
68 | Identifier
69 | coordinatorName
70 | Name
71 | Coordinator Name:
72 | Required
73 |
74 | Type
75 | static
76 |
77 |
78 | Default
79 | ___VARIABLE_sceneIdentifier___Storyboard
80 | Description
81 | The storyboard name
82 | Identifier
83 | storyboardName
84 | Name
85 | Storyboard Name:
86 | Required
87 |
88 | Type
89 | static
90 |
91 |
92 | Platforms
93 |
94 | com.apple.platform.iphoneos
95 |
96 | SortOrder
97 | 9
98 | Summary
99 | This generates a new show scene using Futured MVVM-C architecture.
100 |
101 |
102 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Show Scene.xctemplate/___VARIABLE_sceneIdentifier___.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Show Scene.xctemplate/___VARIABLE_sceneIdentifier___Coordinator.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___.
6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import UIKit
10 | import FuntastyKit
11 |
12 | private struct ___VARIABLE_sceneIdentifier___Storyboard: StoryboardType {
13 | static let name = "___VARIABLE_sceneIdentifier___"
14 | static let navigationController = StoryboardReference<___VARIABLE_sceneIdentifier___Storyboard, UINavigationController>(id: "___VARIABLE_sceneIdentifier___NavigationControllerID")
15 | static let viewController = StoryboardReference<___VARIABLE_sceneIdentifier___Storyboard, ___VARIABLE_sceneIdentifier___ViewController>(id: "___VARIABLE_sceneIdentifier___ViewControllerID")
16 | }
17 |
18 | final class ___VARIABLE_sceneIdentifier___Coordinator: ShowCoordinator {
19 | let sourceViewController: UIViewController
20 | weak var destinationNavigationController: UINavigationController?
21 | weak var viewController: ___VARIABLE_sceneIdentifier___ViewController?
22 |
23 | private let serviceHolder: ServiceHolder
24 |
25 | init(sourceViewController: UIViewController, serviceHolder: ServiceHolder) {
26 | self.sourceViewController = sourceViewController
27 | self.serviceHolder = serviceHolder
28 | self.destinationNavigationController = ___VARIABLE_sceneIdentifier___Storyboard.navigationController.instantiate()
29 | self.viewController = destinationNavigationController?.topViewController as? ___VARIABLE_sceneIdentifier___ViewController
30 | }
31 |
32 | func configure(viewController: ___VARIABLE_sceneIdentifier___ViewController) {
33 | viewController.viewModel = ___VARIABLE_sceneIdentifier___ViewModel(coordinator: self, viewController: viewController)
34 | }
35 | }
36 |
37 | extension ___VARIABLE_sceneIdentifier___Coordinator: ___VARIABLE_sceneIdentifier___CoordinatorInput {
38 | }
39 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Show Scene.xctemplate/___VARIABLE_sceneIdentifier___ViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___.
6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | final class ___VARIABLE_sceneIdentifier___ViewController: UIViewController {
12 | var viewModel: ___VARIABLE_sceneIdentifier___ViewModel!
13 |
14 | // MARK: - View lifecycle
15 |
16 | override func viewDidLoad() {
17 | super.viewDidLoad()
18 | }
19 | }
20 |
21 | extension ___VARIABLE_sceneIdentifier___ViewController: ___VARIABLE_sceneIdentifier___ViewControllerInput {
22 | }
23 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Show Scene.xctemplate/___VARIABLE_sceneIdentifier___ViewModel.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___.
6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import FuntastyKit
11 |
12 | protocol ___VARIABLE_sceneIdentifier___CoordinatorInput: Coordinator {
13 | }
14 |
15 | protocol ___VARIABLE_sceneIdentifier___ViewControllerInput: AnyObject {
16 | }
17 |
18 | final class ___VARIABLE_sceneIdentifier___ViewModel {
19 | private let coordinator: ___VARIABLE_sceneIdentifier___CoordinatorInput
20 | private weak var viewController: ___VARIABLE_sceneIdentifier___ViewControllerInput?
21 |
22 | init(coordinator: ___VARIABLE_sceneIdentifier___CoordinatorInput, viewController: ___VARIABLE_sceneIdentifier___ViewControllerInput) {
23 | self.coordinator = coordinator
24 | self.viewController = viewController
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Tab Bar Item Scene.xctemplate/TemplateIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/MVVM-C/MVVM-C Tab Bar Item Scene.xctemplate/TemplateIcon.png
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Tab Bar Item Scene.xctemplate/TemplateIcon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/MVVM-C/MVVM-C Tab Bar Item Scene.xctemplate/TemplateIcon@2x.png
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Tab Bar Item Scene.xctemplate/TemplateInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | DefaultCompletionName
6 | Scene
7 | Description
8 | This generates a new tab bar item scene using Futured MVVM-C architecture. It consists of the view controller, view model, coordinator and storyboard.
9 | Kind
10 | Xcode.IDEKit.TextSubstitutionFileTemplateKind
11 | Options
12 |
13 |
14 | Description
15 | The name of the scene to create
16 | Identifier
17 | sceneName
18 | Name
19 | New Scene Name:
20 | NotPersisted
21 |
22 | Required
23 |
24 | Type
25 | text
26 |
27 |
28 | Default
29 | ___VARIABLE_sceneName:identifier___
30 | Identifier
31 | sceneIdentifier
32 | Type
33 | static
34 |
35 |
36 | Default
37 | ___VARIABLE_sceneIdentifier___ViewController
38 | Description
39 | The view controller name
40 | Identifier
41 | viewControllerName
42 | Name
43 | View Controller Name:
44 | Required
45 |
46 | Type
47 | static
48 |
49 |
50 | Default
51 | ___VARIABLE_sceneIdentifier___ViewModel
52 | Description
53 | The view model name
54 | Identifier
55 | viewModelName
56 | Name
57 | ViewModel Name:
58 | Required
59 |
60 | Type
61 | static
62 |
63 |
64 | Default
65 | ___VARIABLE_sceneIdentifier___Coordinator
66 | Description
67 | The coordinator name
68 | Identifier
69 | coordinatorName
70 | Name
71 | Coordinator Name:
72 | Required
73 |
74 | Type
75 | static
76 |
77 |
78 | Default
79 | ___VARIABLE_sceneIdentifier___Storyboard
80 | Description
81 | The storyboard name
82 | Identifier
83 | storyboardName
84 | Name
85 | Storyboard Name:
86 | Required
87 |
88 | Type
89 | static
90 |
91 |
92 | Platforms
93 |
94 | com.apple.platform.iphoneos
95 |
96 | SortOrder
97 | 9
98 | Summary
99 | This generates a new tab bar item scene using Futured MVVM-C architecture.
100 |
101 |
102 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Tab Bar Item Scene.xctemplate/___VARIABLE_sceneIdentifier___.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Tab Bar Item Scene.xctemplate/___VARIABLE_sceneIdentifier___Coordinator.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___.
6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import UIKit
10 | import FuntastyKit
11 |
12 | private struct ___VARIABLE_sceneIdentifier___Storyboard: StoryboardType {
13 | static let name = "___VARIABLE_sceneIdentifier___"
14 | static let navigationController = StoryboardReference<___VARIABLE_sceneIdentifier___Storyboard, UINavigationController>(id: "___VARIABLE_sceneIdentifier___NavigationControllerID")
15 | static let viewController = StoryboardReference<___VARIABLE_sceneIdentifier___Storyboard, ___VARIABLE_sceneIdentifier___ViewController>(id: "___VARIABLE_sceneIdentifier___ViewControllerID")
16 | }
17 |
18 | final class ___VARIABLE_sceneIdentifier___Coordinator: TabBarItemCoordinator {
19 | weak var tabBarController: UITabBarController?
20 | weak var destinationNavigationController: UINavigationController?
21 | weak var viewController: ___VARIABLE_sceneIdentifier___ViewController?
22 |
23 | private let serviceHolder: ServiceHolder
24 |
25 | init(tabBarController: UITabBarController, serviceHolder: ServiceHolder) {
26 | self.tabBarController = tabBarController
27 | self.serviceHolder = serviceHolder
28 | self.destinationNavigationController = ___VARIABLE_sceneIdentifier___Storyboard.navigationController.instantiate()
29 | self.viewController = destinationNavigationController?.topViewController as? ___VARIABLE_sceneIdentifier___ViewController
30 | }
31 |
32 | func configure(viewController: ___VARIABLE_sceneIdentifier___ViewController) {
33 | viewController.viewModel = ___VARIABLE_sceneIdentifier___ViewModel(coordinator: self, viewController: viewController)
34 | }
35 | }
36 |
37 | extension ___VARIABLE_sceneIdentifier___Coordinator: ___VARIABLE_sceneIdentifier___CoordinatorInput {
38 | }
39 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Tab Bar Item Scene.xctemplate/___VARIABLE_sceneIdentifier___ViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___.
6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | final class ___VARIABLE_sceneIdentifier___ViewController: UIViewController {
12 | var viewModel: ___VARIABLE_sceneIdentifier___ViewModel!
13 |
14 | // MARK: - View lifecycle
15 |
16 | override func viewDidLoad() {
17 | super.viewDidLoad()
18 | }
19 | }
20 |
21 | extension ___VARIABLE_sceneIdentifier___ViewController: ___VARIABLE_sceneIdentifier___ViewControllerInput {
22 | }
23 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Tab Bar Item Scene.xctemplate/___VARIABLE_sceneIdentifier___ViewModel.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___.
6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import FuntastyKit
11 |
12 | protocol ___VARIABLE_sceneIdentifier___CoordinatorInput: Coordinator {
13 | }
14 |
15 | protocol ___VARIABLE_sceneIdentifier___ViewControllerInput: AnyObject {
16 | }
17 |
18 | final class ___VARIABLE_sceneIdentifier___ViewModel {
19 | private let coordinator: ___VARIABLE_sceneIdentifier___CoordinatorInput
20 | private weak var viewController: ___VARIABLE_sceneIdentifier___ViewControllerInput?
21 |
22 | init(coordinator: ___VARIABLE_sceneIdentifier___CoordinatorInput, viewController: ___VARIABLE_sceneIdentifier___ViewControllerInput) {
23 | self.coordinator = coordinator
24 | self.viewController = viewController
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Window Scene.xctemplate/TemplateIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/MVVM-C/MVVM-C Window Scene.xctemplate/TemplateIcon.png
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Window Scene.xctemplate/TemplateIcon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/MVVM-C/MVVM-C Window Scene.xctemplate/TemplateIcon@2x.png
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Window Scene.xctemplate/TemplateInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | DefaultCompletionName
6 | Home
7 | Description
8 | This generates a new root/home scene using Futured MVVM-C architecture. It consists of the view controller, view model, coordinator and storyboard.
9 | Kind
10 | Xcode.IDEKit.TextSubstitutionFileTemplateKind
11 | Options
12 |
13 |
14 | Description
15 | The name of the scene to create
16 | Identifier
17 | sceneName
18 | Name
19 | New Scene Name:
20 | NotPersisted
21 |
22 | Required
23 |
24 | Type
25 | text
26 |
27 |
28 | Default
29 | ___VARIABLE_sceneName:identifier___
30 | Identifier
31 | sceneIdentifier
32 | Type
33 | static
34 |
35 |
36 | Default
37 | ___VARIABLE_sceneIdentifier___ViewController
38 | Description
39 | The view controller name
40 | Identifier
41 | viewControllerName
42 | Name
43 | View Controller Name:
44 | Required
45 |
46 | Type
47 | static
48 |
49 |
50 | Default
51 | ___VARIABLE_sceneIdentifier___ViewModel
52 | Description
53 | The view model name
54 | Identifier
55 | viewModelName
56 | Name
57 | ViewModel Name:
58 | Required
59 |
60 | Type
61 | static
62 |
63 |
64 | Default
65 | ___VARIABLE_sceneIdentifier___Coordinator
66 | Description
67 | The coordinator name
68 | Identifier
69 | coordinatorName
70 | Name
71 | Coordinator Name:
72 | Required
73 |
74 | Type
75 | static
76 |
77 |
78 | Default
79 | ___VARIABLE_sceneIdentifier___Storyboard
80 | Description
81 | The storyboard name
82 | Identifier
83 | storyboardName
84 | Name
85 | Storyboard Name:
86 | Required
87 |
88 | Type
89 | static
90 |
91 |
92 | Platforms
93 |
94 | com.apple.platform.iphoneos
95 |
96 | SortOrder
97 | 9
98 | Summary
99 | This generates a new root/home scene using Futured MVVM-C architecture.
100 |
101 |
102 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Window Scene.xctemplate/___VARIABLE_sceneIdentifier___.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Window Scene.xctemplate/___VARIABLE_sceneIdentifier___Coordinator.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___.
6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import UIKit
10 | import FuntastyKit
11 |
12 | private struct ___VARIABLE_sceneIdentifier___Storyboard: StoryboardType {
13 | static let name = "___VARIABLE_sceneIdentifier___"
14 | static let navigationController = StoryboardReference<___VARIABLE_sceneIdentifier___Storyboard, UINavigationController>(id: "___VARIABLE_sceneIdentifier___NavigationControllerID")
15 | static let viewController = StoryboardReference<___VARIABLE_sceneIdentifier___Storyboard, ___VARIABLE_sceneIdentifier___ViewController>(id: "___VARIABLE_sceneIdentifier___ViewControllerID")
16 | }
17 |
18 | final class ___VARIABLE_sceneIdentifier___Coordinator: DefaultCoordinator {
19 | private let window: UIWindow
20 | private weak var destinationNavigationController: UINavigationController?
21 | weak var viewController: ___VARIABLE_sceneIdentifier___ViewController?
22 |
23 | private let serviceHolder: ServiceHolder
24 |
25 | init(window: UIWindow, serviceHolder: ServiceHolder) {
26 | self.window = window
27 | self.serviceHolder = serviceHolder
28 | self.destinationNavigationController = ___VARIABLE_sceneIdentifier___Storyboard.navigationController.instantiate()
29 | self.viewController = destinationNavigationController?.topViewController as? ___VARIABLE_sceneIdentifier___ViewController
30 | }
31 |
32 | func start() {
33 | guard let viewController = viewController, let destinationNavigationController = destinationNavigationController else {
34 | return
35 | }
36 | viewController.viewModel = ___VARIABLE_sceneIdentifier___ViewModel(coordinator: self, viewController: viewController)
37 | window.rootViewController = destinationNavigationController
38 | }
39 | }
40 |
41 | extension ___VARIABLE_sceneIdentifier___Coordinator: ___VARIABLE_sceneIdentifier___CoordinatorInput {
42 | }
43 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Window Scene.xctemplate/___VARIABLE_sceneIdentifier___ViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___.
6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | final class ___VARIABLE_sceneIdentifier___ViewController: UIViewController {
12 | var viewModel: ___VARIABLE_sceneIdentifier___ViewModel!
13 |
14 | // MARK: - View lifecycle
15 |
16 | override func viewDidLoad() {
17 | super.viewDidLoad()
18 | }
19 | }
20 |
21 | extension ___VARIABLE_sceneIdentifier___ViewController: ___VARIABLE_sceneIdentifier___ViewControllerInput {
22 | }
23 |
--------------------------------------------------------------------------------
/MVVM-C/MVVM-C Window Scene.xctemplate/___VARIABLE_sceneIdentifier___ViewModel.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___.
6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import FuntastyKit
11 |
12 | protocol ___VARIABLE_sceneIdentifier___CoordinatorInput: Coordinator {
13 | }
14 |
15 | protocol ___VARIABLE_sceneIdentifier___ViewControllerInput: AnyObject {
16 | }
17 |
18 | final class ___VARIABLE_sceneIdentifier___ViewModel {
19 | private let coordinator: ___VARIABLE_sceneIdentifier___CoordinatorInput
20 | private weak var viewController: ___VARIABLE_sceneIdentifier___ViewControllerInput?
21 |
22 | init(coordinator: ___VARIABLE_sceneIdentifier___CoordinatorInput, viewController: ___VARIABLE_sceneIdentifier___ViewControllerInput) {
23 | self.coordinator = coordinator
24 | self.viewController = viewController
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/MVVM-C/Nibable View.xctemplate/TemplateIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/MVVM-C/Nibable View.xctemplate/TemplateIcon.png
--------------------------------------------------------------------------------
/MVVM-C/Nibable View.xctemplate/TemplateIcon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/MVVM-C/Nibable View.xctemplate/TemplateIcon@2x.png
--------------------------------------------------------------------------------
/MVVM-C/Nibable View.xctemplate/TemplateInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | DefaultCompletionName
6 | Nibable view.
7 | Summary
8 | This generates a new nibable view under FuntastyKit.
9 | Description
10 | This generates a new view.
11 | Kind
12 | Xcode.IDEKit.TextSubstitutionFileTemplateKind
13 | Platforms
14 |
15 | com.apple.platform.iphoneos
16 |
17 | SortOrder
18 | 9
19 | Options
20 |
21 |
22 | Description
23 | The name of the view to create
24 | Identifier
25 | sourceViewName
26 | Name
27 | New view name:
28 | NotPersisted
29 |
30 | Required
31 |
32 | Type
33 | text
34 |
35 |
36 | Default
37 | ___VARIABLE_sourceViewName:identifier___
38 | Identifier
39 | sourceViewIdentifier
40 | Type
41 | static
42 |
43 |
44 | Default
45 | ___VARIABLE_sourceViewIdentifier___View
46 | Description
47 | The XIB name
48 | Identifier
49 | xibName
50 | Name
51 | XIB name:
52 | Required
53 |
54 | Type
55 | static
56 |
57 |
58 | Default
59 | ___VARIABLE_sourceViewIdentifier___View
60 | Description
61 | The view name
62 | Identifier
63 | viewName
64 | Name
65 | View name:
66 | Required
67 |
68 | Type
69 | static
70 |
71 |
72 |
73 |
74 |
--------------------------------------------------------------------------------
/MVVM-C/Nibable View.xctemplate/___VARIABLE_sourceViewIdentifier___View.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___ using Nibable View Template (v1.0).
6 | // Copyright © ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import UIKit
10 | import FuntastyKit
11 |
12 | final class ___VARIABLE_sourceViewIdentifier___View: UIView, Nibable {
13 |
14 | override func awakeFromNib() {
15 | super.awakeFromNib()
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/MVVM-C/Nibable View.xctemplate/___VARIABLE_sourceViewIdentifier___View.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/MVVM-C/Service.xctemplate/TemplateIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/MVVM-C/Service.xctemplate/TemplateIcon.png
--------------------------------------------------------------------------------
/MVVM-C/Service.xctemplate/TemplateIcon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/MVVM-C/Service.xctemplate/TemplateIcon@2x.png
--------------------------------------------------------------------------------
/MVVM-C/Service.xctemplate/TemplateInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | DefaultCompletionName
6 | Service
7 | Description
8 | This generates a new service for use with the ServiceHolder (dependency injection) from the FuntastyKit.
9 | Kind
10 | Xcode.IDEKit.TextSubstitutionFileTemplateKind
11 | Options
12 |
13 |
14 | Description
15 | The name of the service to create
16 | Identifier
17 | serviceName
18 | Name
19 | Name:
20 | NotPersisted
21 |
22 | Required
23 |
24 | Type
25 | text
26 |
27 |
28 | Default
29 | ___VARIABLE_serviceName:identifier___Service
30 | Description
31 | The service name
32 | Identifier
33 | serviceIdentifier
34 | Name
35 | Service Name:
36 | Required
37 |
38 | Type
39 | static
40 |
41 |
42 | Platforms
43 |
44 | com.apple.platform.iphoneos
45 |
46 | SortOrder
47 | 99
48 | Summary
49 | This generates a new service for use with the ServiceHolder (dependency injection) from the FuntastyKit.
50 |
51 |
52 |
--------------------------------------------------------------------------------
/MVVM-C/Service.xctemplate/___VARIABLE_serviceIdentifier___.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ___FILENAME___
3 | // ___PROJECTNAME___
4 | //
5 | // Created by ___FULLUSERNAME___ on ___DATE___.
6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import FuntastyKit
11 |
12 | protocol ___VARIABLE_serviceIdentifier___: Service {
13 |
14 | }
15 |
16 | final class Production___VARIABLE_serviceIdentifier___: ___VARIABLE_serviceIdentifier___ {
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 |
2 | TEMPLATE_NAMES = 'MVVM-C' 'CellKit' 'FTAPIKit' 'SwiftUI' 'KMP'
3 | TEMPLATE_DIR = $(HOME)/Library/Developer/Xcode/Templates/
4 |
5 | install:
6 | for name in $(TEMPLATE_NAMES) ; do \
7 | mkdir -p $(TEMPLATE_DIR)$$name ; \
8 | cd $$name ; \
9 | cp -R *.xctemplate $(TEMPLATE_DIR)$$name ; \
10 | cd .. ; \
11 | done
12 |
13 | .PHONY = install
14 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # iOS Templates
4 |
5 | iOS templates commonly used in [Futured apps](https://futured.app).
6 |
7 | #### MVVM-C templates
8 | The main template generates a new scene using MVVM-C architecture used to used in [Futured apps](https://futured.app). For more specific navigation cases there are window, modal, show, push and tab bar scene templates.
9 |
10 | #### CellKit templates
11 | Basic templates that make working with the [CellKit](https://github.com/futuredapp/CellKit) easier. A table view cell template with model and XIB is available.
12 |
13 | #### FTAPIKit templates
14 | Basic templates that make working with the [FTAPIKit](https://github.com/futuredapp/FTAPIKit) easier. An API endpoint template is available.
15 |
16 | #### SwiftUI templates
17 | The template generates a new scene in SwiftUI. A scene consists of a View and a ViewState.
18 |
19 | ## Installation
20 |
21 | The templates can be added to Xcode simply by cloning the repo and running `make` in it.
22 |
23 | Also, they could be installed by running some template management tool like [xcman](https://github.com/josefdolezal/xcman):
24 |
25 | ```
26 | xcman templates install --name Futured\ Templates futuredapp/iOS-templates
27 | ```
28 |
29 | ## Contributors
30 |
31 | Current maintainer and main contributor is [Patrik Potoček](https://github.com/Patrez), .
32 |
33 | We want to thank other contributors, namely:
34 |
35 | - [Matěj Kašpar Jirásek](https://github.com/mkj-is)
36 | - [Mikoláš Stuchlík](https://github.com/mikolasstuchlik)
37 | - [Adam Leitgeb](https://github.com/adam-leitgeb)
38 | - [Petr Zvoníček](https://github.com/zvonicek)
39 | - [Michal Simik](https://github.com/michals92)
40 | - [Tomáš Babulák](https://github.com/tomasbabulak)
41 | - [Adam Bezak](https://github.com/michalsrutek)
42 | - [Adam Salih](https://github.com/max9631)
43 | - [Radek Doležal](https://github.com/eRDe33)
44 |
45 | ## License
46 |
47 | `iOS Templates` are available under the MIT license. See the [LICENSE](LICENSE) for more information.
48 |
--------------------------------------------------------------------------------
/SwiftUI/Scene.xctemplate/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/SwiftUI/Scene.xctemplate/.DS_Store
--------------------------------------------------------------------------------
/SwiftUI/Scene.xctemplate/TemplateIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/SwiftUI/Scene.xctemplate/TemplateIcon.png
--------------------------------------------------------------------------------
/SwiftUI/Scene.xctemplate/TemplateIcon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/futuredapp/iOS-templates/714450811cf81e3bbad5e1b284b03443fa6653e5/SwiftUI/Scene.xctemplate/TemplateIcon@2x.png
--------------------------------------------------------------------------------
/SwiftUI/Scene.xctemplate/TemplateInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | DefaultCompletionName
6 | Scene
7 | Description
8 | This generates a new SwiftUI scene using Futured architecture. It consists of the view and view state.
9 | Kind
10 | Xcode.IDEKit.TextSubstitutionFileTemplateKind
11 | Options
12 |
13 |
14 | Description
15 | The name of the scene to create
16 | Identifier
17 | sceneName
18 | Name
19 | New Scene Name:
20 | NotPersisted
21 |
22 | Required
23 |
24 | Type
25 | text
26 |
27 |
28 | Default
29 | ___VARIABLE_sceneName:identifier___
30 | Identifier
31 | sceneIdentifier
32 | Type
33 | static
34 |
35 |
36 | Default
37 | ___VARIABLE_sceneIdentifier___View
38 | Description
39 | The view name
40 | Identifier
41 | viewName
42 | Name
43 | View Name:
44 | Required
45 |
46 | Type
47 | static
48 |
49 |
50 | Default
51 | ___VARIABLE_sceneIdentifier___ViewState
52 | Description
53 | The view state name
54 | Identifier
55 | viewStateName
56 | Name
57 | ViewState Name:
58 | Required
59 |
60 | Type
61 | static
62 |
63 |
64 | Platforms
65 |
66 | com.apple.platform.iphoneos
67 |
68 | SortOrder
69 | 9
70 | Summary
71 | This generates a new SwiftUI scene using Futured architecture.
72 |
73 |
74 |
--------------------------------------------------------------------------------
/SwiftUI/Scene.xctemplate/___VARIABLE_sceneIdentifier___View.swift:
--------------------------------------------------------------------------------
1 | import FTDesignLibrary
2 | import SwiftUI
3 |
4 | struct ___VARIABLE_sceneIdentifier___View: View {
5 | private let state = ___VARIABLE_sceneIdentifier___ViewState()
6 |
7 | var body: some View {
8 | Text("___VARIABLE_sceneIdentifier___View")
9 | }
10 | }
11 |
12 | struct ___VARIABLE_sceneIdentifier___View_Previews: PreviewProvider {
13 | static var previews: some View {
14 | ___VARIABLE_sceneIdentifier___View()
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/SwiftUI/Scene.xctemplate/___VARIABLE_sceneIdentifier___ViewState.swift:
--------------------------------------------------------------------------------
1 | import FuturedKit
2 | import SwiftUI
3 |
4 | struct ___VARIABLE_sceneIdentifier___ViewState: ViewState {
5 | }
6 |
--------------------------------------------------------------------------------