From 50e1a1aa57dbb8d862437a3b5dbf53af467318a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=9A=D1=80=D0=B0?= =?UTF-8?q?=D1=81=D0=B0=D0=B2=D0=B8=D0=BD?= <6nike6@bk.ru> Date: Fri, 30 Aug 2019 19:02:30 +0300 Subject: [PATCH 01/30] - delete storyboard - add manual view controller init in app delegate - rename template --- .../.gitignore | 0 .../.swiftlint.yml | 0 .../TemplateIcon.png | Bin .../TemplateIcon@2x.png | Bin .../TemplateInfo.plist | 170 +++++++++++++++++ .../Main.storyboard | 24 --- .../TemplateInfo.plist | 172 ------------------ install.sh | 4 +- 8 files changed, 172 insertions(+), 198 deletions(-) rename {Single View App With Code Tools.xctemplate => HandsApp iOS App Template.xctemplate}/.gitignore (100%) rename {Single View App With Code Tools.xctemplate => HandsApp iOS App Template.xctemplate}/.swiftlint.yml (100%) rename {Single View App With Code Tools.xctemplate => HandsApp iOS App Template.xctemplate}/TemplateIcon.png (100%) rename {Single View App With Code Tools.xctemplate => HandsApp iOS App Template.xctemplate}/TemplateIcon@2x.png (100%) create mode 100644 HandsApp iOS App Template.xctemplate/TemplateInfo.plist delete mode 100644 Single View App With Code Tools.xctemplate/Main.storyboard delete mode 100644 Single View App With Code Tools.xctemplate/TemplateInfo.plist diff --git a/Single View App With Code Tools.xctemplate/.gitignore b/HandsApp iOS App Template.xctemplate/.gitignore similarity index 100% rename from Single View App With Code Tools.xctemplate/.gitignore rename to HandsApp iOS App Template.xctemplate/.gitignore diff --git a/Single View App With Code Tools.xctemplate/.swiftlint.yml b/HandsApp iOS App Template.xctemplate/.swiftlint.yml similarity index 100% rename from Single View App With Code Tools.xctemplate/.swiftlint.yml rename to HandsApp iOS App Template.xctemplate/.swiftlint.yml diff --git a/Single View App With Code Tools.xctemplate/TemplateIcon.png b/HandsApp iOS App Template.xctemplate/TemplateIcon.png similarity index 100% rename from Single View App With Code Tools.xctemplate/TemplateIcon.png rename to HandsApp iOS App Template.xctemplate/TemplateIcon.png diff --git a/Single View App With Code Tools.xctemplate/TemplateIcon@2x.png b/HandsApp iOS App Template.xctemplate/TemplateIcon@2x.png similarity index 100% rename from Single View App With Code Tools.xctemplate/TemplateIcon@2x.png rename to HandsApp iOS App Template.xctemplate/TemplateIcon@2x.png diff --git a/HandsApp iOS App Template.xctemplate/TemplateInfo.plist b/HandsApp iOS App Template.xctemplate/TemplateInfo.plist new file mode 100644 index 0000000..7422ee6 --- /dev/null +++ b/HandsApp iOS App Template.xctemplate/TemplateInfo.plist @@ -0,0 +1,170 @@ + + + + + Kind + Xcode.Xcode3.ProjectTemplateUnitKind + Identifier + ru.handsapp.dt.unit.singleViewApplicationWithCodeTools + Ancestors + + com.apple.dt.unit.cocoaTouchApplicationBase + com.apple.dt.unit.coreDataCocoaTouchApplication + + Concrete + + Description + This template is a copy of default Single View Application template, but it comes with .gitignore, SwiftLint, SwiftFormat, R.swift and script for bootstraping all this stuff with CocoaPods. + SortOrder + 1 + Options + + + Identifier + languageChoice + Units + + Objective-C + + Definitions + + AppDelegate.m:implementation:methods:applicationdidFinishLaunchingWithOptions:body + // Override point for customization after application launch. +self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; +self.window.backgroundColor = [UIColor cyanColor]; + AppDelegate.m:implementation:methods:applicationdidFinishLaunchingWithOptions:return + self.window.rootViewController = [[UIViewController alloc] init]; +[self.window makeKeyAndVisible]; +return YES; + + + + Swift + + Definitions + + AppDelegate.swift:implementation:methods:applicationdidFinishLaunchingWithOptions:body + // Override point for customization after application launch. +window = UIWindow() +window?.backgroundColor = UIColor.cyan + AppDelegate.swift:implementation:methods:applicationdidFinishLaunchingWithOptions:return + window?.rootViewController = UIViewController() +window?.makeKeyAndVisible() +return true + + + + + + + Definitions + + ../R.generated.swift + + Path + R.generated.swift + SortOrder + 99 + + ../.gitignore + + Path + .gitignore + TargetIndices + + Group + + Non-iOS Resources + + + ../.swiftlint.yml + + Path + .swiftlint.yml + TargetIndices + + Group + + Non-iOS Resources + + + ../Podfile + + TargetIndices + + Beginning + use_frameworks! +inhibit_all_warnings! + +platform :ios, '11.0' + +target '___PACKAGENAME___' do + pod 'R.swift' + pod 'SwiftFormat/CLI' + pod 'SwiftLint' + + End + +end + + Group + + Non-iOS Resources + + + + Nodes + + ../.gitignore + ../.swiftlint.yml + ../Podfile + ../R.generated.swift + + Targets + + + BuildPhases + + + Class + ShellScript + ShellPath + /bin/sh + Name + R.swift + ShellScript + "$PODS_ROOT/R.swift/rswift" generate "$SRCROOT/R.generated.swift" + InputFiles + + $TEMP_DIR/rswift-lastrun + + OutputFiles + + $SRCROOT/R.generated.swift + + + + Class + ShellScript + ShellPath + /bin/sh + Name + SwiftLint + ShellScript + "${PODS_ROOT}/SwiftLint/swiftlint" + + + Class + ShellScript + ShellPath + /bin/sh + Name + SwiftFormat + ShellScript + "${PODS_ROOT}/SwiftFormat/CommandLineTool/swiftformat" "${SRCROOT}/___PACKAGENAME___" --swiftversion "${SWIFT_VERSION}" + + + + + + diff --git a/Single View App With Code Tools.xctemplate/Main.storyboard b/Single View App With Code Tools.xctemplate/Main.storyboard deleted file mode 100644 index 587b971..0000000 --- a/Single View App With Code Tools.xctemplate/Main.storyboard +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Single View App With Code Tools.xctemplate/TemplateInfo.plist b/Single View App With Code Tools.xctemplate/TemplateInfo.plist deleted file mode 100644 index edacd11..0000000 --- a/Single View App With Code Tools.xctemplate/TemplateInfo.plist +++ /dev/null @@ -1,172 +0,0 @@ - - - - - Kind - Xcode.Xcode3.ProjectTemplateUnitKind - Identifier - cc.ovchinnikov.dt.unit.singleViewApplicationWithCodeTools - Ancestors - - com.apple.dt.unit.storyboardApplication - com.apple.dt.unit.coreDataCocoaTouchApplication - - Concrete - - Description - This template is a copy of default Single View Application template, but it comes with .gitignore, SwiftLint, SwiftFormat, R.swift and script for bootstraping all this stuff with CocoaPods. - SortOrder - 1 - Options - - - Identifier - languageChoice - Units - - Objective-C - - Nodes - - ViewController.h:comments - ViewController.h:imports:importCocoa - ViewController.h:interface(___FILEBASENAME___ : UIViewController) - ViewController.m:comments - ViewController.m:imports:importHeader:ViewController.h - ViewController.m:extension - ViewController.m:implementation:methods:viewDidLoad(- (void\)viewDidLoad) - ViewController.m:implementation:methods:viewDidLoad:super - - - Swift - - Nodes - - ViewController.swift:comments - ViewController.swift:imports:importCocoa - ViewController.swift:implementation(___FILEBASENAME___: UIViewController) - ViewController.swift:implementation:methods:viewDidLoad(override func viewDidLoad(\)) - ViewController.swift:implementation:methods:viewDidLoad:super - - - - - - Definitions - - Base.lproj/Main.storyboard - - Path - Main.storyboard - SortOrder - 99 - - ../R.generated.swift - - Path - R.generated.swift - SortOrder - 99 - - ../.gitignore - - Path - .gitignore - TargetIndices - - Group - - Non-iOS Resources - - - ../.swiftlint.yml - - Path - .swiftlint.yml - TargetIndices - - Group - - Non-iOS Resources - - - ../Podfile - - TargetIndices - - Beginning - use_frameworks! -inhibit_all_warnings! - -platform :ios, '12.0' - -target '___PACKAGENAME___' do - pod 'R.swift' - pod 'SwiftFormat/CLI' - pod 'SwiftLint' - - End - -end - - Group - - Non-iOS Resources - - - - Nodes - - ../.gitignore - ../.swiftlint.yml - ../Podfile - ../R.generated.swift - - Targets - - - BuildPhases - - - Class - ShellScript - ShellPath - /bin/sh - Name - R.swift - ShellScript - "$PODS_ROOT/R.swift/rswift" generate "$SRCROOT/R.generated.swift" - InputFiles - - $TEMP_DIR/rswift-lastrun - - OutputFiles - - $SRCROOT/R.generated.swift - - - - Class - ShellScript - ShellPath - /bin/sh - Name - SwiftLint - ShellScript - "${PODS_ROOT}/SwiftLint/swiftlint" - - - Class - ShellScript - ShellPath - /bin/sh - Name - SwiftFormat - ShellScript - "${PODS_ROOT}/SwiftFormat/CommandLineTool/swiftformat" "${SRCROOT}/___PACKAGENAME___" --swiftversion "${SWIFT_VERSION}" - - - - - - diff --git a/install.sh b/install.sh index ac7c990..1f0956f 100755 --- a/install.sh +++ b/install.sh @@ -4,7 +4,7 @@ set -o errexit set -o errtrace TEMPLATE_DIR=${HOME}/"Library/Developer/Xcode/Templates/Project Templates/Private" -TEMPLATE_NAME="Single View App With Code Tools.xctemplate" +TEMPLATE_NAME="HandsApp iOS App Template.xctemplate" if [ ! -d "$TEMPLATE_DIR" ]; then echo "Didn't find a directory for the templates, so creating it..." @@ -14,4 +14,4 @@ fi echo "Copying template files..." cp -rf "./$TEMPLATE_NAME" "$TEMPLATE_DIR" -echo "Done." \ No newline at end of file +echo "Done." From 902d365ccc46a5500bcaa5e2556f3388ff5ec659 Mon Sep 17 00:00:00 2001 From: HandsApp <53041799+HandsAppTeam@users.noreply.github.com> Date: Fri, 30 Aug 2019 19:08:32 +0300 Subject: [PATCH 02/30] Update readme.md --- readme.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/readme.md b/readme.md index ba51b4d..cd881b3 100644 --- a/readme.md +++ b/readme.md @@ -13,19 +13,20 @@ This script will copy the templates to `~/Library/Developer/Xcode/Templates/Proj ## Templates usage -### Single View App With Code Tools +### HandsApp iOS App Template -This template is a copy of default *Single View App* Xcode template with several handy additions: +This template is a copy of default *Single View App* Xcode template without Main.storyboard file and with several handy additions: * `.gitignore` file; * [SwiftLint](https://github.com/realm/SwiftLint) build phase integration and configuration file; * [SwiftFormat](https://github.com/nicklockwood/SwiftFormat) build phase integration; * [R.Swift](https://github.com/mac-cain13/R.swift) build phase integration; * `Podfile` to install all the tools mentioned above. +* manual initialozation of UIWindow with root view controller in AppDelegate #### Up and running -1. Open Xcode and create new project, choose *Single View App With Code Tools* from the wizard (at the *Private* section); +1. Open Xcode and create new project, choose *HandsApp iOS App Template* from the wizard (at the *Private* section); ![Choosing project template](images/choosing_project_template.png) 2. Configure project name and other parameters as usual; 3. Close project, navigate to it via terminal and run `pod install` to install the dependencies; @@ -35,4 +36,4 @@ This template is a copy of default *Single View App* Xcode template with several ## References -Developing Xcode templates without documentation is hard, so kudos to [Vokal's templates repository](https://github.com/vokal/Xcode-Template) where I was able to find some answers to my questions. \ No newline at end of file +Developing Xcode templates without documentation is hard, so kudos to [Vokal's templates repository](https://github.com/vokal/Xcode-Template) where I was able to find some answers to my questions. From 04a56c1146f26cb9039ebacea47271e1f03e540e Mon Sep 17 00:00:00 2001 From: HandsApp <53041799+HandsAppTeam@users.noreply.github.com> Date: Fri, 30 Aug 2019 19:13:54 +0300 Subject: [PATCH 03/30] Create LICENSE --- LICENSE | 201 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. From 2a26cbd83376ae2297c4a26ebc668cc708789746 Mon Sep 17 00:00:00 2001 From: HandsApp <53041799+HandsAppTeam@users.noreply.github.com> Date: Fri, 30 Aug 2019 19:15:27 +0300 Subject: [PATCH 04/30] Update readme.md --- readme.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/readme.md b/readme.md index cd881b3..fbcd820 100644 --- a/readme.md +++ b/readme.md @@ -37,3 +37,21 @@ This template is a copy of default *Single View App* Xcode template without Main ## References Developing Xcode templates without documentation is hard, so kudos to [Vokal's templates repository](https://github.com/vokal/Xcode-Template) where I was able to find some answers to my questions. + +### License + +``` +Copyright 2019 HandsApp Ltd. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +``` From 48654153f908d1c67bf1fa1899c0bcc89d33b579 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=9A=D1=80=D0=B0?= =?UTF-8?q?=D1=81=D0=B0=D0=B2=D0=B8=D0=BD?= <6nike6@bk.ru> Date: Mon, 2 Sep 2019 17:09:40 +0300 Subject: [PATCH 05/30] add groups structure --- .../AppDelegate.swift | 16 + HandsApp iOS App Template.xctemplate/Gemfile | 11 + .../Info.plist | 34 ++ .../LaunchScreen.storyboard | 25 ++ .../Localizable.strings | 1 + .../Rambafile | 37 +++ .../TemplateIcon.png | Bin 1257 -> 1222 bytes .../TemplateIcon@2x.png | Bin 2478 -> 2212 bytes .../TemplateInfo.plist | 311 ++++++++++++++++-- 9 files changed, 406 insertions(+), 29 deletions(-) create mode 100755 HandsApp iOS App Template.xctemplate/AppDelegate.swift create mode 100755 HandsApp iOS App Template.xctemplate/Gemfile create mode 100644 HandsApp iOS App Template.xctemplate/Info.plist create mode 100644 HandsApp iOS App Template.xctemplate/LaunchScreen.storyboard create mode 100755 HandsApp iOS App Template.xctemplate/Localizable.strings create mode 100755 HandsApp iOS App Template.xctemplate/Rambafile mode change 100755 => 100644 HandsApp iOS App Template.xctemplate/TemplateIcon.png mode change 100755 => 100644 HandsApp iOS App Template.xctemplate/TemplateIcon@2x.png diff --git a/HandsApp iOS App Template.xctemplate/AppDelegate.swift b/HandsApp iOS App Template.xctemplate/AppDelegate.swift new file mode 100755 index 0000000..2844c80 --- /dev/null +++ b/HandsApp iOS App Template.xctemplate/AppDelegate.swift @@ -0,0 +1,16 @@ +// +// ___FILENAME___ +// ___PACKAGENAME___ +// +// Created by ___FULLUSERNAME___ on ___DATE___. +// ___COPYRIGHT___ +// + +import UIKit + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + var window: UIWindow? + +} diff --git a/HandsApp iOS App Template.xctemplate/Gemfile b/HandsApp iOS App Template.xctemplate/Gemfile new file mode 100755 index 0000000..4ffbcab --- /dev/null +++ b/HandsApp iOS App Template.xctemplate/Gemfile @@ -0,0 +1,11 @@ +source "https://rubygems.org" + +# Ensure github repositories are fetched using HTTPS +git_source(:github) do |repo_name| + repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/") + puts(repo_name) + "https://github.com/#{repo_name}.git" +end if Gem::Version.new(Bundler::VERSION) < Gem::Version.new('2') + +gem 'cocoapods' +gem 'generamba', github: 'surfstudio/Generamba', branch: 'develop' diff --git a/HandsApp iOS App Template.xctemplate/Info.plist b/HandsApp iOS App Template.xctemplate/Info.plist new file mode 100644 index 0000000..7624f9c --- /dev/null +++ b/HandsApp iOS App Template.xctemplate/Info.plist @@ -0,0 +1,34 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + + + diff --git a/HandsApp iOS App Template.xctemplate/LaunchScreen.storyboard b/HandsApp iOS App Template.xctemplate/LaunchScreen.storyboard new file mode 100644 index 0000000..bfa3612 --- /dev/null +++ b/HandsApp iOS App Template.xctemplate/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/HandsApp iOS App Template.xctemplate/Localizable.strings b/HandsApp iOS App Template.xctemplate/Localizable.strings new file mode 100755 index 0000000..8b13789 --- /dev/null +++ b/HandsApp iOS App Template.xctemplate/Localizable.strings @@ -0,0 +1 @@ + diff --git a/HandsApp iOS App Template.xctemplate/Rambafile b/HandsApp iOS App Template.xctemplate/Rambafile new file mode 100755 index 0000000..49373ec --- /dev/null +++ b/HandsApp iOS App Template.xctemplate/Rambafile @@ -0,0 +1,37 @@ +### Headers settings +company: ___ORGANIZATIONNAME___ + +### Xcode project settings +project_name: ___PACKAGENAME___ +xcodeproj_path: ___PACKAGENAME___.xcodeproj + +### Code generation settings section +# The main project target name +project_target: ___PACKAGENAME___ + +# The file path for new modules +project_file_path: ___PACKAGENAME___/User Stories + +# The Xcode group path to new modules +project_group_path: ___PACKAGENAME___/User Stories + +### Tests generation settings section +# The tests target name +test_target: ___PACKAGENAME___Tests + +# The file path for new tests +test_file_path: ___PACKAGENAME___Tests/Tests/User Stories + +# The Xcode group path to new tests +test_group_path: ___PACKAGENAME___Tests/Tests/User Stories + +### Dependencies settings section +podfile_path: Podfile + +### Catalogs +catalogs: +- 'https://github.com/surfstudio/generamba-templates' + +### Templates +templates: +- {name: surf_mvp_module} \ No newline at end of file diff --git a/HandsApp iOS App Template.xctemplate/TemplateIcon.png b/HandsApp iOS App Template.xctemplate/TemplateIcon.png old mode 100755 new mode 100644 index 1ac317eb730566d99c77d9f1707cd104dcdd4a50..b349faa7efc617a631f2c78537306cb246dcfe40 GIT binary patch delta 1202 zcmaFKd5m*{NO>_%)p?h48n{ROYO^mg6t)p zzOL+#IhojbwI;Zq$Y5Y#-sdkuJjF?an_7C@^g%^v8t`XogTGzGWh#m{8 zYLa?v5 zeEb>9wdcV9uCEhJUKN-9Eh{^tu(s;Nr)nwr6Hm)|J}~{)zU0ii)vZ?V*xJy! zPD|vX&O4bucKo>LUFXukj7PqXvoEr=eUMnUJceJr!)00f`ee=nQ4{N{EF4w%9u%rp zX{=(u#$9Dm>+mIDm%Yw)?pqD*ywl{$!W0d9+<}a3nirfS&GU5Q3?iy-C@pUAzv15tycH)BUM3dScPJX*6FJF-HGph{=2Z^yzW0GkCeZ6{)R@qdfhsA zF21zlyllNte1QB>W2fGlHLuScaZzXKdz86Hr+#_6 z%m>3e4b}xS1HK=-k@!&M*DN915~qd>XLfa~nxFVdQ&MBb@0FLAp=l}o! delta 1237 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 delta 2468 zcmV;V30wB05v~)EB!3BTNLh0L02UPx#1ZP1_ zK>z@;j|==^1pojELrFwIRCodHolj^KR~*NGyPH%66%~bOJZzI(q(ZkK=poVe5b+?b z#h|?xhj@}oq`@Erb7<8)C{>z*;(sMcb1*6>HK<@U$!yrvh!wU|Gb&qeIM9A*^J5N_j~X6@BP*vk-=av7z_qOBa)&r85$be!XA!gGMPh# zLLtYVXW4BF)hCPWHlIqRrdL*0ZnEd&0|Nt#R0bt0fC)a!gnpI@y^rcw;DIn@j51}M zXNs7o5{Rq-tbceW`0ttE`}u3TckiaQwl->QZKchdH`BUx>!==i_wF4%fBu|aym&!# zb940g@#EF+F+~i!iior$A}Ii?KAlegPL7$OJ$v@hfddC<)22<-h`f6BitgUMOOGBs z;xElxmi0xH-4I#Q#FE`Zd0U624|im=5!A zLn%O9`B?P_4<4*rGgB%sPg7GS;moMAT*)I54Wr~zL zfNKzT-+u@{JUe#muw~}bue#P(0kHjUl4XaQhG^{Hzu$gj7Npm$78FIb1CHSiNtRjt z(SgrIVoFYx;F#Zaz6wBX2akw+45iWD-flm#EcuY%HNFaP3u`9XDg#&#z!Z@4yGCV# zvbcjoF_ea2y0d=Qs1#s34wLbgjvzZWwPl*TA5O5NQ|#J%wV{NXFhLOJSl%npTw98c>|^F;8_~={!T$cUmmhWpc1q_b zX@AdTQY3l!J zX;lgMnPYj&b6pbAt^f!KwjB0a1_}Y9fFVfnS}3QOQ1Ln(FqFW7k}2T|(CPyqdTa%lY%H{0Z+M*~ zR%%aIn%y$?^O+}(BNd|;?1WrfGu1QN6d;?O3%yOY!{s289X!!w+x+}PM+vqgy=_rF zqs0WxJheQl9}$Zve38Dx-q*v%{*;oEsLk{6oPnTD-?xdk@ulF7HW~8Gx zmX+7TQI`u8jhYauqu*UxvMZ%{Op+qBDL~Fr5tiaGMRh$Ka;3peI6eH{&O4HTR&R&I zO9aI-6`gyl;|H)a`hR|(h@GHS0e^Dr&x>z<^mLY&C!%CMc%qqxzinne%j?*o1ehc4 zAN&q^s*ToaD9j3OJS(1gV%g3Zf+_}g-a*B?Vjz^g(A(_!-923eIz6< zN6iT!WWR%X)SOiC^9o&PSAc!;wbyHlC+`RNg0Apy6F(0}m3~am7HoyW)WA33hDG7I zX3kRPDU~FaoL~Nf^ACcep>S^#fmB5D$a8OA)pIY0YXe=AF@JD^zIUoOzuJwjKUhTN8|>7q9$q|DgQ zaUI%Uc!Mst?WH>BY7={JC|0Z3|08y@LHJntzYH`-$cCX1avH!`xH{w#maU}=DoaP|3#V&GM zQY>~j;}s^)oCi;SwECKS>ZVHCDoIT$0Crtv+gGpabUv_g@rq+=TDCg=1?EXSu9WLQ zI$I-a_H)8vKy-y10s`k{4#fPjkFj$P0c6FxsA~mqu=-WGfZUy-%l?DL>4H@tHfcFk zT75g9;T0f%c7LH7-FPaD0;KrA5OC zYuCu=q86w92Z>O?nm!?B7DleERP}TU!pCO^yzfK5I1-TuVC$nUBmOrt=#m)A zJFSG3{J0Wo{y2J+k2iU9u5J>Oh~Y>O1u?lMK<8fhOfefXAK@Ol$DEJQaQSE>~a5p3?^PN&(~Swul|zj%PAN0H#~89^-!3`6>X@f0!A%gy(ne+#y3WFyIZa)jz75 zq!bi}4&x4EnYcYO1cTMjr|U5VoL60|Q~;*`uwC#Yo?pLy-GrnefQ&Fz4?uQ7!`#9o zV&~Xx9$LM1>lPW*V2~RhX-JOjltdn7h?z1N=znGgJ9xp$#{w0m=v8KvAx9qOdHncs zGhN9A3D?BLMD>Pwa?CheFIvaha@?V0=a?eS^4Bmg3nQB_@CQ?u>Up3uRyhVaBgqo0 z1a7c$uBro_MX(#lQA95_E<9Hn);7{y#@!K^6!&>5mHL$3vQ)n_<`-F9KhGYg-SWbC i)EyOXFc=I51LuFkykG!$WcVNe0000Kind Xcode.Xcode3.ProjectTemplateUnitKind Identifier - ru.handsapp.dt.unit.singleViewApplicationWithCodeTools + ru.handsapp.dt.unit.MVPApplication Ancestors - com.apple.dt.unit.cocoaTouchApplicationBase - com.apple.dt.unit.coreDataCocoaTouchApplication + com.apple.dt.unit.applicationBase + com.apple.dt.unit.iosBase + com.apple.dt.unit.languageChoice Concrete Description - This template is a copy of default Single View Application template, but it comes with .gitignore, SwiftLint, SwiftFormat, R.swift and script for bootstraping all this stuff with CocoaPods. + This template is for MVP application. SortOrder 1 Options @@ -26,45 +27,127 @@ Objective-C + Nodes + + main.m:comments + main.m:imports:importCocoa + main.m:imports:importHeader:AppDelegate.h + main.m:main:UIApplicationMain + AppDelegate.h:comments + AppDelegate.h:imports:importCocoa + AppDelegate.h:interface(AppDelegate : UIResponder <UIApplicationDelegate>) + AppDelegate.h:interface:window + AppDelegate.m:comments + AppDelegate.m:imports:importHeader:AppDelegate.h + AppDelegate.m:extension + AppDelegate.m:implementation:synthesize + AppDelegate.m:implementation:methods:applicationdidFinishLaunchingWithOptions(- (BOOL\)application:(UIApplication *\)application didFinishLaunchingWithOptions:(NSDictionary *\)launchOptions) + AppDelegate.m:implementation:methods:applicationdidFinishLaunchingWithOptions:body + AppDelegate.m:implementation:methods:applicationdidFinishLaunchingWithOptions:return + AppDelegate.m:implementation:methods:applicationWillResignActive(- (void\)applicationWillResignActive:(UIApplication *\)application) + AppDelegate.m:implementation:methods:applicationWillResignActive:comments + AppDelegate.m:implementation:methods:applicationDidEnterBackground(- (void\)applicationDidEnterBackground:(UIApplication *\)application) + AppDelegate.m:implementation:methods:applicationDidEnterBackground:comments + AppDelegate.m:implementation:methods:applicationWillEnterForeground(- (void\)applicationWillEnterForeground:(UIApplication *\)application) + AppDelegate.m:implementation:methods:applicationWillEnterForeground:comments + AppDelegate.m:implementation:methods:applicationDidBecomeActive(- (void\)applicationDidBecomeActive:(UIApplication *\)application) + AppDelegate.m:implementation:methods:applicationDidBecomeActive:comments + AppDelegate.m:implementation:methods:applicationWillTerminate(- (void\)applicationWillTerminate:(UIApplication *\)application) + AppDelegate.m:implementation:methods:applicationWillTerminate:comments + Definitions + main.m:main + + Beginning + int main(int argc, char * argv[]) { + End + } + Indent + 1 + + main.m:main:UIApplicationMain + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); +} + + AppDelegate.h:interface:window + @property (strong, nonatomic) UIWindow *window; + AppDelegate.m:implementation:methods:applicationdidFinishLaunchingWithOptions:body - // Override point for customization after application launch. -self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; -self.window.backgroundColor = [UIColor cyanColor]; + // Override point for customization after application launch. AppDelegate.m:implementation:methods:applicationdidFinishLaunchingWithOptions:return - self.window.rootViewController = [[UIViewController alloc] init]; -[self.window makeKeyAndVisible]; -return YES; - + return YES; + *:implementation:methods:viewDidLoad:super + [super viewDidLoad]; +// Do any additional setup after loading the view, typically from a nib. + *:implementation:methods:didReceiveMemoryWarning:super + [super didReceiveMemoryWarning]; +// Dispose of any resources that can be recreated. Swift + Nodes + + Application/AppDelegate.swift + Definitions - AppDelegate.swift:implementation:methods:applicationdidFinishLaunchingWithOptions:body - // Override point for customization after application launch. -window = UIWindow() -window?.backgroundColor = UIColor.cyan - AppDelegate.swift:implementation:methods:applicationdidFinishLaunchingWithOptions:return - window?.rootViewController = UIViewController() -window?.makeKeyAndVisible() -return true - + Application/AppDelegate.swift + + Group + Application + Path + AppDelegate.swift + + Nodes + + Info.plist + ../.gitignore + ../.swiftlint.yml + ../Podfile + ../R.generated.swift + ../Gemfile + ../Rambafile + Application/LaunchScreen.storyboard + Third Party/.gitkeep + Services/.gitkeep + User Stories/.gitkeep + Resources/Assets.xcassets + Resources/Strings/.gitkeep + Resources/Images/.gitkeep + Resources/Constants/.gitkeep + Resources/Fonts/.gitkeep + Models/.gitkeep + Library/Base Classes/.gitkeep + Library/Utils/.gitkeep + Library/Extensions/.gitkeep + Library/Reusable Layer/.gitkeep + Library/Protocols/.gitkeep + Definitions + Info.plist + + Path + Info.plist + TargetIndices + + ../R.generated.swift Path R.generated.swift - SortOrder - 99 + Group + + Resources + ../.gitignore @@ -112,14 +195,184 @@ end Non-iOS Resources + ../Gemfile + + Path + Gemfile + Group + Non-iOS Resources + + ../Rambafile + + TargetIndices + + Path + Rambafile + Group + Non-iOS Resources + + Application/LaunchScreen.storyboard + + Path + LaunchScreen.storyboard + Group + Application + + Library/Base Classes/.gitkeep + + Group + + Library + Base Classes + + Path + .gitkeep + TargetIndices + + + Library/Utils/.gitkeep + + Group + + Library + Utils + + Path + .gitkeep + TargetIndices + + + Library/Extensions/.gitkeep + + Group + + Library + Extensions + + Path + .gitkeep + TargetIndices + + + Library/Reusable Layer/.gitkeep + + Group + + Library + Reusable Layer + + Path + .gitkeep + TargetIndices + + + Library/Protocols/.gitkeep + + Group + + Library + Protocols + + Path + .gitkeep + TargetIndices + + + Models/.gitkeep + + Group + + Models + Entity + + Path + .gitkeep + TargetIndices + + + Resources/Assets.xcassets + + Path + Assets.xcassets + Group + Resources + + Resources/Strings/.gitkeep + + Group + + Resources + Strings + + Path + .gitkeep + TargetIndices + + + Resources/Images/.gitkeep + + Group + + Resources + Images + + Path + .gitkeep + TargetIndices + + + Resources/Constants/.gitkeep + + Group + + Resources + Constants + + Path + .gitkeep + TargetIndices + + + Resources/Fonts/.gitkeep + + Group + + Resources + Fonts + + Path + ../.gitkeep + TargetIndices + + + User Stories/.gitkeep + + Group + User Stories + Path + ../.gitkeep + TargetIndices + + + Services/.gitkeep + + Group + Services + Path + ../.gitkeep + TargetIndices + + + Third Party/.gitkeep + + Group + Third Party + Path + ../.gitkeep + TargetIndices + + - Nodes - - ../.gitignore - ../.swiftlint.yml - ../Podfile - ../R.generated.swift - Targets From 17052297e62867a0fd1904b3ea6f0750537c18f5 Mon Sep 17 00:00:00 2001 From: HandsApp <53041799+HandsAppTeam@users.noreply.github.com> Date: Mon, 2 Sep 2019 17:22:41 +0300 Subject: [PATCH 06/30] Update readme.md --- readme.md | 33 ++++++--------------------------- 1 file changed, 6 insertions(+), 27 deletions(-) diff --git a/readme.md b/readme.md index fbcd820..e18ec81 100644 --- a/readme.md +++ b/readme.md @@ -15,43 +15,22 @@ This script will copy the templates to `~/Library/Developer/Xcode/Templates/Proj ### HandsApp iOS App Template -This template is a copy of default *Single View App* Xcode template without Main.storyboard file and with several handy additions: +This template creates iOS project with [SurfMVP](https://github.com/surfstudio/Surf-iOS-Developers/blob/master/Surf_MVP.md) structure with some userful features: * `.gitignore` file; * [SwiftLint](https://github.com/realm/SwiftLint) build phase integration and configuration file; * [SwiftFormat](https://github.com/nicklockwood/SwiftFormat) build phase integration; * [R.Swift](https://github.com/mac-cain13/R.swift) build phase integration; -* `Podfile` to install all the tools mentioned above. -* manual initialozation of UIWindow with root view controller in AppDelegate +* `Podfile` to install all the tools mentioned above; +* [Generamba](https://github.com/strongself/Generamba) code generator; +* `Gemfile` to install Generamba and Cocoapods. #### Up and running 1. Open Xcode and create new project, choose *HandsApp iOS App Template* from the wizard (at the *Private* section); - ![Choosing project template](images/choosing_project_template.png) 2. Configure project name and other parameters as usual; -3. Close project, navigate to it via terminal and run `pod install` to install the dependencies; +3. Close project, navigate to it via terminal and run `bundler install` to install gems. If you have no *Bundler* installed - welcome here https://bundler.io/ +4. Run `pod install` to install pods; 4. Open the generated workspace, navigate to *Build Phases* of your project's main target and **move the SwiftFormat, SwiftLint, and R.Swift script phases above the compile phase** (exactly that order). We have to make this step manually due to limitations of Xcode templates; ![Build phases configuration](images/build_phases_configuration.png) 5. Build project and have fun! - -## References - -Developing Xcode templates without documentation is hard, so kudos to [Vokal's templates repository](https://github.com/vokal/Xcode-Template) where I was able to find some answers to my questions. - -### License - -``` -Copyright 2019 HandsApp Ltd. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -``` From e0a1a9aad73c7374200d072aded461455ec9e89f Mon Sep 17 00:00:00 2001 From: HandsApp <53041799+HandsAppTeam@users.noreply.github.com> Date: Mon, 2 Sep 2019 17:24:03 +0300 Subject: [PATCH 07/30] Delete choosing_project_template.png --- images/choosing_project_template.png | Bin 295112 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 images/choosing_project_template.png diff --git a/images/choosing_project_template.png b/images/choosing_project_template.png deleted file mode 100644 index e22271777e9e69894ada1605ea4b9c8b2247e396..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 295112 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
  • Rhb~D!7-&9A(EQcP@%(B`63%iL{#2SeC3?%k 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

    psE>6~-iGVa; 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

    bQ&a66m-K%Hus(XYqM#25f>Zw3)y_f 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 z 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%0Dx-M1+N;DKLmdP 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 From 37730070d2d400ab39c9fd4a88812fdb1d390674 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=9A=D1=80=D0=B0?= =?UTF-8?q?=D1=81=D0=B0=D0=B2=D0=B8=D0=BD?= <6nike6@bk.ru> Date: Wed, 4 Sep 2019 11:15:54 +0300 Subject: [PATCH 08/30] add AppCenter to podfile --- HandsApp iOS App Template.xctemplate/TemplateInfo.plist | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/HandsApp iOS App Template.xctemplate/TemplateInfo.plist b/HandsApp iOS App Template.xctemplate/TemplateInfo.plist index 1f00564..5780e7f 100644 --- a/HandsApp iOS App Template.xctemplate/TemplateInfo.plist +++ b/HandsApp iOS App Template.xctemplate/TemplateInfo.plist @@ -181,10 +181,16 @@ inhibit_all_warnings! platform :ios, '11.0' +def appcenter + pod 'AppCenter' + pod 'AppCenter/Distribute' +end + target '___PACKAGENAME___' do pod 'R.swift' pod 'SwiftFormat/CLI' pod 'SwiftLint' + appcenter End From 505a8ac10d0cf0045fb864d106540aba5e444dc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=9A=D1=80=D0=B0?= =?UTF-8?q?=D1=81=D0=B0=D0=B2=D0=B8=D0=BD?= <6nike6@bk.ru> Date: Wed, 4 Sep 2019 12:55:04 +0300 Subject: [PATCH 09/30] add app center configuration --- HandsApp iOS App Template.xctemplate/ApiKeys.swift | 12 ++++++++++++ .../AppDelegate.swift | 13 ++++++++++++- HandsApp iOS App Template.xctemplate/Info.plist | 9 +++++++++ .../TemplateInfo.plist | 11 ++++------- 4 files changed, 37 insertions(+), 8 deletions(-) create mode 100755 HandsApp iOS App Template.xctemplate/ApiKeys.swift diff --git a/HandsApp iOS App Template.xctemplate/ApiKeys.swift b/HandsApp iOS App Template.xctemplate/ApiKeys.swift new file mode 100755 index 0000000..e2dc1a4 --- /dev/null +++ b/HandsApp iOS App Template.xctemplate/ApiKeys.swift @@ -0,0 +1,12 @@ +// +// ___FILENAME___ +// ___PACKAGENAME___ +// +// Created by ___FULLUSERNAME___ on ___DATE___. +// ___COPYRIGHT___ +// + +enum ApiKeys { + #warning("Replace with real key via global search (Cmd + Shift + F)") + static let appCenter = "APP_CENTER_API_KEY" +} diff --git a/HandsApp iOS App Template.xctemplate/AppDelegate.swift b/HandsApp iOS App Template.xctemplate/AppDelegate.swift index 2844c80..be11115 100755 --- a/HandsApp iOS App Template.xctemplate/AppDelegate.swift +++ b/HandsApp iOS App Template.xctemplate/AppDelegate.swift @@ -6,11 +6,22 @@ // ___COPYRIGHT___ // +import AppCenter +import AppCenterAnalytics +import AppCenterDistribute import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { - var window: UIWindow? + func application(_: UIApplication, didFinishLaunchingWithOptions _: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + startAppCenter() + return true + } + + private func startAppCenter() { + let services: [AnyClass] = [MSAnalytics.self, MSDistribute.self] + MSAppCenter.start(ApiKeys.appCenter, withServices: services) + } } diff --git a/HandsApp iOS App Template.xctemplate/Info.plist b/HandsApp iOS App Template.xctemplate/Info.plist index 7624f9c..b0e3d57 100644 --- a/HandsApp iOS App Template.xctemplate/Info.plist +++ b/HandsApp iOS App Template.xctemplate/Info.plist @@ -18,6 +18,15 @@ 1.0 CFBundleVersion 1 + CFBundleURLTypes + + + CFBundleURLSchemes + + appcenter-APP_CENTER_API_KEY + + + LSRequiresIPhoneOS UILaunchStoryboardName diff --git a/HandsApp iOS App Template.xctemplate/TemplateInfo.plist b/HandsApp iOS App Template.xctemplate/TemplateInfo.plist index 5780e7f..15ecbfb 100644 --- a/HandsApp iOS App Template.xctemplate/TemplateInfo.plist +++ b/HandsApp iOS App Template.xctemplate/TemplateInfo.plist @@ -122,7 +122,7 @@ Resources/Assets.xcassets Resources/Strings/.gitkeep Resources/Images/.gitkeep - Resources/Constants/.gitkeep + Resources/Constants/ApiKeys.swift Resources/Fonts/.gitkeep Models/.gitkeep Library/Base Classes/.gitkeep @@ -191,10 +191,9 @@ target '___PACKAGENAME___' do pod 'SwiftFormat/CLI' pod 'SwiftLint' appcenter - +end End -end Group @@ -327,7 +326,7 @@ end TargetIndices - Resources/Constants/.gitkeep + Resources/Constants/ApiKeys.swift Group @@ -335,9 +334,7 @@ end Constants Path - .gitkeep - TargetIndices - + ApiKeys.swift Resources/Fonts/.gitkeep From dd63c11b86cb331f544f417e3807d6b7f39a0f63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=9A=D1=80=D0=B0?= =?UTF-8?q?=D1=81=D0=B0=D0=B2=D0=B8=D0=BD?= <6nike6@bk.ru> Date: Wed, 4 Sep 2019 18:45:03 +0300 Subject: [PATCH 10/30] add AppCenter custom script --- .../TemplateInfo.plist | 10 ++++++++++ .../appcenter-post-clone.sh | 10 ++++++++++ 2 files changed, 20 insertions(+) create mode 100644 HandsApp iOS App Template.xctemplate/appcenter-post-clone.sh diff --git a/HandsApp iOS App Template.xctemplate/TemplateInfo.plist b/HandsApp iOS App Template.xctemplate/TemplateInfo.plist index 15ecbfb..f9d7275 100644 --- a/HandsApp iOS App Template.xctemplate/TemplateInfo.plist +++ b/HandsApp iOS App Template.xctemplate/TemplateInfo.plist @@ -115,6 +115,7 @@ ../R.generated.swift ../Gemfile ../Rambafile + ../appcenter-post-clone.sh Application/LaunchScreen.storyboard Third Party/.gitkeep Services/.gitkeep @@ -216,6 +217,15 @@ end Group Non-iOS Resources + ../appcenter-post-clone.sh + + TergetIndices + + Path + appcenter-post-clone.sh + Group + Non-iOS Resources + Application/LaunchScreen.storyboard Path diff --git a/HandsApp iOS App Template.xctemplate/appcenter-post-clone.sh b/HandsApp iOS App Template.xctemplate/appcenter-post-clone.sh new file mode 100644 index 0000000..87f12b8 --- /dev/null +++ b/HandsApp iOS App Template.xctemplate/appcenter-post-clone.sh @@ -0,0 +1,10 @@ + +#!/usr/bin/env bash + +echo "Uninstalling all CocoaPods versions" +sudo gem uninstall cocoapods --all --executables + +COCOAPODS_VER=`sed -n -e 's/^COCOAPODS: \([0-9.]*\)/\1/p' Podfile.lock` + +echo "Installing CocoaPods version $COCOAPODS_VER" +sudo gem install cocoapods -v $COCOAPODS_VER From 504d0f97faacac1c9afc9022673bfac196c3af6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=9A=D1=80=D0=B0?= =?UTF-8?q?=D1=81=D0=B0=D0=B2=D0=B8=D0=BD?= <6nike6@bk.ru> Date: Tue, 10 Sep 2019 16:31:06 +0300 Subject: [PATCH 11/30] change generamba templates source --- HandsApp iOS App Template.xctemplate/Rambafile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/HandsApp iOS App Template.xctemplate/Rambafile b/HandsApp iOS App Template.xctemplate/Rambafile index 49373ec..254c433 100755 --- a/HandsApp iOS App Template.xctemplate/Rambafile +++ b/HandsApp iOS App Template.xctemplate/Rambafile @@ -30,8 +30,8 @@ podfile_path: Podfile ### Catalogs catalogs: -- 'https://github.com/surfstudio/generamba-templates' +- 'https://github.com/HandsAppTeam/generamba-templates' ### Templates templates: -- {name: surf_mvp_module} \ No newline at end of file +- {name: handsapp_mvp_module} \ No newline at end of file From 14f6d9fe8e65fea3aa3d44d2b212b77156d627ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=9A=D1=80=D0=B0?= =?UTF-8?q?=D1=81=D0=B0=D0=B2=D0=B8=D0=BD?= <6nike6@bk.ru> Date: Wed, 11 Sep 2019 16:17:28 +0300 Subject: [PATCH 12/30] update line_length rule warning --- HandsApp iOS App Template.xctemplate/.swiftlint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HandsApp iOS App Template.xctemplate/.swiftlint.yml b/HandsApp iOS App Template.xctemplate/.swiftlint.yml index ef653d4..8c557c6 100644 --- a/HandsApp iOS App Template.xctemplate/.swiftlint.yml +++ b/HandsApp iOS App Template.xctemplate/.swiftlint.yml @@ -28,7 +28,7 @@ opt_in_rules: warning_threshold: 1 line_length: - warning: 100 + warning: 120 ignores_function_declarations: true ignores_comments: true ignores_interpolated_strings: true From 790fd1429e7e6de9d86923096c58d6c65433a27e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=9A=D1=80=D0=B0?= =?UTF-8?q?=D1=81=D0=B0=D0=B2=D0=B8=D0=BD?= <6nike6@bk.ru> Date: Tue, 22 Oct 2019 12:27:13 +0300 Subject: [PATCH 13/30] disable swift format trailing commas --- HandsApp iOS App Template.xctemplate/.swiftformat | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 HandsApp iOS App Template.xctemplate/.swiftformat diff --git a/HandsApp iOS App Template.xctemplate/.swiftformat b/HandsApp iOS App Template.xctemplate/.swiftformat new file mode 100644 index 0000000..1e8986e --- /dev/null +++ b/HandsApp iOS App Template.xctemplate/.swiftformat @@ -0,0 +1,2 @@ +# rules +--disable trailingCommas \ No newline at end of file From ab1b0e59d265c7cb59376bf115f4c98509f9374d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=9A=D1=80=D0=B0?= =?UTF-8?q?=D1=81=D0=B0=D0=B2=D0=B8=D0=BD?= <6nike6@bk.ru> Date: Tue, 22 Oct 2019 12:29:36 +0300 Subject: [PATCH 14/30] add app center crashes service --- HandsApp iOS App Template.xctemplate/.swiftlint.yml | 2 +- HandsApp iOS App Template.xctemplate/AppDelegate.swift | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/HandsApp iOS App Template.xctemplate/.swiftlint.yml b/HandsApp iOS App Template.xctemplate/.swiftlint.yml index 8c557c6..69c58ec 100644 --- a/HandsApp iOS App Template.xctemplate/.swiftlint.yml +++ b/HandsApp iOS App Template.xctemplate/.swiftlint.yml @@ -58,4 +58,4 @@ excluded: - Pods - Documents - R.generated.swift - \ No newline at end of file + diff --git a/HandsApp iOS App Template.xctemplate/AppDelegate.swift b/HandsApp iOS App Template.xctemplate/AppDelegate.swift index be11115..0b5600c 100755 --- a/HandsApp iOS App Template.xctemplate/AppDelegate.swift +++ b/HandsApp iOS App Template.xctemplate/AppDelegate.swift @@ -9,6 +9,7 @@ import AppCenter import AppCenterAnalytics import AppCenterDistribute +import AppCenterCrashes import UIKit @UIApplicationMain @@ -21,7 +22,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { } private func startAppCenter() { - let services: [AnyClass] = [MSAnalytics.self, MSDistribute.self] + let services: [AnyClass] = [MSAnalytics.self, MSDistribute.self, MSCrashes.self] MSAppCenter.start(ApiKeys.appCenter, withServices: services) } } From f0e8e208d90e79bc5c8a9023a7c597c5ebb63cdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=9A=D1=80=D0=B0?= =?UTF-8?q?=D1=81=D0=B0=D0=B2=D0=B8=D0=BD?= <6nike6@bk.ru> Date: Tue, 22 Oct 2019 15:53:26 +0300 Subject: [PATCH 15/30] IT-91: - add module transitionable --- .../ModuleTransitionable.swift | 38 +++++++++++++++++++ .../TemplateInfo.plist | 13 ++++++- 2 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 HandsApp iOS App Template.xctemplate/ModuleTransitionable.swift diff --git a/HandsApp iOS App Template.xctemplate/ModuleTransitionable.swift b/HandsApp iOS App Template.xctemplate/ModuleTransitionable.swift new file mode 100644 index 0000000..958d21f --- /dev/null +++ b/HandsApp iOS App Template.xctemplate/ModuleTransitionable.swift @@ -0,0 +1,38 @@ +// +// ModuleTransitionable.swift +// +// Created by Никита Красавин on 10/09/2019. +// Copyright © 2019 Handsapp. All rights reserved. +// + +import UIKit + +protocol ModuleTransitionable: AnyObject { + func showModule(_ module: UIViewController) + func dismissView(animated: Bool, completion: (() -> Void)?) + func presentModule(_ module: UIViewController, animated: Bool, completion: (() -> Void)?) + func pop(animated: Bool) + func push(module: UIViewController, animated: Bool) +} + +extension ModuleTransitionable where Self: UIViewController { + func showModule(_ module: UIViewController) { + show(module, sender: nil) + } + + func dismissView(animated: Bool, completion: (() -> Void)?) { + presentingViewController?.dismiss(animated: animated, completion: completion) + } + + func presentModule(_ module: UIViewController, animated: Bool, completion: (() -> Void)?) { + present(module, animated: animated, completion: completion) + } + + func pop(animated: Bool) { + navigationController?.popViewController(animated: animated) + } + + func push(module: UIViewController, animated: Bool) { + navigationController?.pushViewController(module, animated: animated) + } +} diff --git a/HandsApp iOS App Template.xctemplate/TemplateInfo.plist b/HandsApp iOS App Template.xctemplate/TemplateInfo.plist index f9d7275..fa52930 100644 --- a/HandsApp iOS App Template.xctemplate/TemplateInfo.plist +++ b/HandsApp iOS App Template.xctemplate/TemplateInfo.plist @@ -130,7 +130,7 @@ Library/Utils/.gitkeep Library/Extensions/.gitkeep Library/Reusable Layer/.gitkeep - Library/Protocols/.gitkeep + Library/Protocols/ModuleTransitionable.swift Definitions @@ -185,6 +185,7 @@ platform :ios, '11.0' def appcenter pod 'AppCenter' pod 'AppCenter/Distribute' + pod 'AppCenter/Crashes' end target '___PACKAGENAME___' do @@ -385,6 +386,16 @@ end TargetIndices + Library/Protocols/ModuleTransitionable.swift + + Group + + Library + Protocols + + Path + ModuleTransitionable.swift + Targets From 4e7aff8995c0a19c4b2a45b4448a4514ca8a7a2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=9A=D1=80=D0=B0?= =?UTF-8?q?=D1=81=D0=B0=D0=B2=D0=B8=D0=BD?= <6nike6@bk.ru> Date: Tue, 5 Nov 2019 19:45:30 +0300 Subject: [PATCH 16/30] add empty swift file template --- Empty Swift File.xctemplate/TemplateIcon.png | Bin 0 -> 1222 bytes .../TemplateIcon@2x.png | Bin 0 -> 2212 bytes .../TemplateInfo.plist | 43 ++++++++++++++++++ .../___FILEBASENAMEASIDENTIFIER___.swift | 1 + install_empty_swift_file_template.sh | 17 +++++++ ...sh => install_handsapp_ios_app_template.sh | 2 +- readme.md | 12 ++++- 7 files changed, 72 insertions(+), 3 deletions(-) create mode 100644 Empty Swift File.xctemplate/TemplateIcon.png create mode 100644 Empty Swift File.xctemplate/TemplateIcon@2x.png create mode 100644 Empty Swift File.xctemplate/TemplateInfo.plist create mode 100644 Empty Swift File.xctemplate/___FILEBASENAMEASIDENTIFIER___.swift create mode 100755 install_empty_swift_file_template.sh rename install.sh => install_handsapp_ios_app_template.sh (95%) diff --git a/Empty Swift File.xctemplate/TemplateIcon.png b/Empty Swift File.xctemplate/TemplateIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..b349faa7efc617a631f2c78537306cb246dcfe40 GIT binary patch literal 1222 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCmUKs7M+SzC{oH>NS%G|oWRD45dJguM!v-tY$DUh!@P+6=(yLU`z6LcVYMsf(!O8p9~b? zEbxddW?;}$24TjErS@e&LG}_)Usv|WoJ{PzS`*w)WH2x=Z}oI>49U26^`>t|OsEL^ zhx^jPi$z7(2yhy$>soO{kA>CoPmBbs_|;QCSh>QE_D>aCy=aTrRxOUKX-$l)uPtcO z>)|d8bY05oc(L_X>qb|>OT9^1(U%Gf?{{CGKHdC#YMRw#X6F8fdyD`7uRizxUiCTO zS!!y9@>yXEc^|sQG-UtcO;Zg!T$gh&XaB)9QyAVH4LkE)Iv|y)bLN|$v3nZR_B)1d zRH@FG)o^jjiK~Cv!e%;fcX}K4e*VR)cdTpLIolh{wpUs7w5}7*xOmvQYH@pW1wXG( z>EXnnFX^+qo-c9PwXi+@Cx8pMCt zi>`lkudG5#I74!Y5C7&LCqDj+<=S)Lf7jOuCa;Ri{+5-UQCM4b;#0Mh{E4UKJRg|; zYhQBa-Rf4W_w26ip~{!RcltSP`sW*c=$v`#LG&AMoA&zEHB*3E%OC6NOmS73yL2*( zuTEZ(EQ8*s`7aZL-;|r?_@@U)sst_Imi)n&UTyim{e#ZFRZa;Z9<8N@%_Y(mjGfFC zO#6=uMI6{6&}ppn^+NVcHR;j*lK zeKO~PsEJh;jw*Z)3RSB#RuCl0g_!6+oUgtXZt%i2qX>w&@iUvLIK*l!B3(k?| zdAe~15mh&ombaI^J<<&np7w^{@b3lQiW3Ph6ASA*6b*7dd~1K}bXENB#CJdcU088m z_n(qS%HKPGL!(~3Zk@Yvb=8SRJKn<+|CJ{fUs`cqRwzC|{;082Z_S!m)o?be^yD3a z+qvFO_cT#{H92L)qZ>2j_8nI@e44@ef#vz*X(B&boerAx$$zYzx&BDcvd*-t94X&o ztv>9NV6uFmyn|)?L$xd1b~n3wXXHMwU&_J}+v5A9dZ%O2f%8YE?hwBIXpPyw@@tlmZHZIEg)_UlRZY{f>++AdI@N`5 zwJ+Qq!tbiGs>>q(X5~xqH^S5JhvtY_U-H!0bNICh(@fvTwTZ{pU$)!7`qq?!J^$6^ zTk`}h)J)jhcJtV5R=&}5{pptrYfrz8;y-x!WJS=e*}1VQVVB?jS+QXI<9AwN!i-MM zmD<-*0wZ!+IJEDmWv17f3P}j|T?*f5rR=by;AUf~v(~rA>?e+Wyi%WNsVv}fVv-Rs zPpg)=MwFx^mZVxG7o`Fz1|tJQOI-sXG72#;w=y)gGBMIMFtIW)m~eH?W)uy%`6-!c XmAExL>=5AxYGCkm^>bP0l+XkKXqFT8 literal 0 HcmV?d00001 diff --git a/Empty Swift File.xctemplate/TemplateIcon@2x.png b/Empty Swift File.xctemplate/TemplateIcon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fd94e8a9f1110ac4a23e0179dacc7f57d1bd515b GIT binary patch literal 2212 zcmZ{ldpy(oAIHB8-_31g?68@+B-O#>l1npYbLkwil1s%|BI>u5kl1nA%qiqDcZ!qa z(kgN}igaOqC|!<(a!Z?}STt;IsdeVh-ygrn=kxx&KA-37^Ll(fkIz4!3|}7)HDx_z z007jyJV^&-O5G}`l5Bimdcj^M3K6c}t^m-StMcu*qHK*l;d#&-02rnKz)S;xuQJ4( z1%UH701#3Ez_AnnkWuCLDf?uGQs^%pB;dzZt9-;QkP%pvXHX0PSQu}WTzoAdP6okP zFK;q94U-4ec5yuVB4wn&i{$DTKfX{AOhX(-JV|M(#ikL5?I>D05N{hRQ?h}LGc?23 zMJq%3Ubk4mD=Yo%yszM}g6jT)$Lq{c8Oc!mkMQQ3J z_&6QKXvnWyUUNQ{OfCFd9Xi+LVUNe91}qpL@aw8229exb5Nat#B3Opp_8S6w+`KG^eB%c!(;6M zD(qkbt`_9xwIpi&wQiB^`DV#*6HnEx0;g5Sek;C$uC%Grjn|Hsf5gz}S!Jh1M(XW`w}YU5vbdK4gj9XO^{6`M?KM%IQVs`L|1&tEfig3^Rh+ z3;dBtnE*HSlXN=8cn0daSbOsaBt$+LcfK5rg9T>y&=#^I@8rNI;AnTB!4sxAd2T&X zdeL*E*JBXnZu7*ipR&Hd{TqjzSX@?fKg?~tnhLBV+GF4Bw~&b0JmNqdn4Kd^OJN~d zqVvgd_J=BF4M-0#Hjak)b?=c+?nTPutdVmJ-y9KhWS|C|Ic?j*;xbQuN;5>@19MIB zeTU;G=Uf#sG4<|jjNdK)R>0CYrbAtk5A$F~B^){}aV>u>ET9oU1NzrHU}z zIrlC^C?pq+c|}TjJ<@kR<(Mp&SL|GhgqH@9#|J9-!2PO(8*g)aO}ugFDswk;f_0SjoD;lPeTgciO(f0#sr*(I!K};ZG<;wXuReAsU@$yI$IuMh z2VVuQded?b@6_TWjm1dU!~;a@J#s55P2MFHL5=_k{s!38^oZpCn%D`smp3kg4QCc^ zTSYGSLL7Z6e|FYar&YR>dMMqFbiJfv8qLu*ze!;;4%;-aY1n=0hdQ0Wk5zBr56t-g9 z{u{*n-Vc^t40eCUpy0Cr=sTyO+x)dVD~9QyV^mw5xv@37lBWpMzScX3rWRufr6Fe! z_FyR&5>#Vn^$gZ8H`er1d?^$krQUZDOPEcYl0{tNRE4asRWUBDFI?=JRX>8VT`d~z zlWq+hOGhveJHQ_EC5Yv!vnxYlX{yhv-Oy#xI~PCvc&@kGQMKgH!?GWHdn`FHHtcw8 zxZ{cFaG3yma8?fHI9cE0huiCDW$kFQ#~f$lh{JJS*SGvnfPOaY)X9YZADBupF literal 0 HcmV?d00001 diff --git a/Empty Swift File.xctemplate/TemplateInfo.plist b/Empty Swift File.xctemplate/TemplateInfo.plist new file mode 100644 index 0000000..b5d0c08 --- /dev/null +++ b/Empty Swift File.xctemplate/TemplateInfo.plist @@ -0,0 +1,43 @@ + + + + + Kind + Xcode.IDEFoundation.TextSubstitutionFileTemplateKind + Description + Empty Swift file template + SortOrder + 30 + AllowedTypes + + public.swift-source + + DefaultCompletionName + NewScreen + MainTemplateFile + ___FILEBASENAME___ + Options + + + Default + + Identifier + fileName + Name + File name + Required + YES + Type + text + + + Default + ___VARIABLE_fileName___ + Identifier + productName + Type + static + + + + diff --git a/Empty Swift File.xctemplate/___FILEBASENAMEASIDENTIFIER___.swift b/Empty Swift File.xctemplate/___FILEBASENAMEASIDENTIFIER___.swift new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/Empty Swift File.xctemplate/___FILEBASENAMEASIDENTIFIER___.swift @@ -0,0 +1 @@ + diff --git a/install_empty_swift_file_template.sh b/install_empty_swift_file_template.sh new file mode 100755 index 0000000..b99309f --- /dev/null +++ b/install_empty_swift_file_template.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +set -o errexit +set -o errtrace + +TEMPLATE_DIR=${HOME}/"Library/Developer/Xcode/Templates/File Templates/Source" +TEMPLATE_NAME="Empty Swift File.xctemplate" + +if [ ! -d "$TEMPLATE_DIR" ]; then + echo "Didn't find a directory for the templates, so creating it..." + mkdir -p "${TEMPLATE_DIR}" + echo "Created $TEMPLATE_DIR" +fi + +echo "Copying template files..." +cp -rf "./$TEMPLATE_NAME" "$TEMPLATE_DIR" +echo "Done." diff --git a/install.sh b/install_handsapp_ios_app_template.sh similarity index 95% rename from install.sh rename to install_handsapp_ios_app_template.sh index 1f0956f..bfb913c 100755 --- a/install.sh +++ b/install_handsapp_ios_app_template.sh @@ -3,7 +3,7 @@ set -o errexit set -o errtrace -TEMPLATE_DIR=${HOME}/"Library/Developer/Xcode/Templates/Project Templates/Private" +TEMPLATE_DIR=${HOME}/"Library/Developer/Xcode/Templates/Project Templates/HandsApp" TEMPLATE_NAME="HandsApp iOS App Template.xctemplate" if [ ! -d "$TEMPLATE_DIR" ]; then diff --git a/readme.md b/readme.md index e18ec81..48d7369 100644 --- a/readme.md +++ b/readme.md @@ -7,12 +7,20 @@ This repository contains useful Xcode templates to simplify new projects up and Clone this project and navigate to it via terminal. Run install script: chmod +x install.sh - ./install.sh + ./install_handsapp_ios_app_template.sh -This script will copy the templates to `~/Library/Developer/Xcode/Templates/Project Templates/Private` where Xcode will be able to find them. +This script will copy HandsApp project template to `~/Library/Developer/Xcode/Templates/Project Templates/HandsApp` where Xcode will be able to find it. + + ./install_empty_swift_file_template.sh + +This script will copy empty file template to `~/Library/Developer/Xcode/Templates/File Templates/Source` where Xcode will be able to find it. ## Templates usage +### Empty Swift File Template + +This template creates blank Swift file without headers and imports. + ### HandsApp iOS App Template This template creates iOS project with [SurfMVP](https://github.com/surfstudio/Surf-iOS-Developers/blob/master/Surf_MVP.md) structure with some userful features: From 7eb43f7f1f07515556a5ad9e5d49787569dcf3e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=9A=D1=80=D0=B0?= =?UTF-8?q?=D1=81=D0=B0=D0=B2=D0=B8=D0=BD?= <6nike6@bk.ru> Date: Wed, 6 Nov 2019 15:55:08 +0300 Subject: [PATCH 17/30] add .swiftformat file --- HandsApp iOS App Template.xctemplate/Rambafile | 4 ++-- HandsApp iOS App Template.xctemplate/TemplateInfo.plist | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/HandsApp iOS App Template.xctemplate/Rambafile b/HandsApp iOS App Template.xctemplate/Rambafile index 254c433..2cfe256 100755 --- a/HandsApp iOS App Template.xctemplate/Rambafile +++ b/HandsApp iOS App Template.xctemplate/Rambafile @@ -20,10 +20,10 @@ project_group_path: ___PACKAGENAME___/User Stories test_target: ___PACKAGENAME___Tests # The file path for new tests -test_file_path: ___PACKAGENAME___Tests/Tests/User Stories +test_file_path: ___PACKAGENAME___Tests/User Stories # The Xcode group path to new tests -test_group_path: ___PACKAGENAME___Tests/Tests/User Stories +test_group_path: ___PACKAGENAME___Tests/User Stories ### Dependencies settings section podfile_path: Podfile diff --git a/HandsApp iOS App Template.xctemplate/TemplateInfo.plist b/HandsApp iOS App Template.xctemplate/TemplateInfo.plist index fa52930..5431fa9 100644 --- a/HandsApp iOS App Template.xctemplate/TemplateInfo.plist +++ b/HandsApp iOS App Template.xctemplate/TemplateInfo.plist @@ -172,6 +172,15 @@ Non-iOS Resources + ../.swiftformat + + Path + .swiftformat + Group + + Non-iOS Resources + + ../Podfile TargetIndices From 9003214b889244e8371b141bcd20159bca9221b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=9A=D1=80=D0=B0?= =?UTF-8?q?=D1=81=D0=B0=D0=B2=D0=B8=D0=BD?= <6nike6@bk.ru> Date: Thu, 19 Dec 2019 12:44:50 +0300 Subject: [PATCH 18/30] rename Module to Screen --- .../ModuleTransitionable.swift | 38 ------------------- .../Rambafile | 14 +++---- .../ScreenTransitionable.swift | 38 +++++++++++++++++++ .../TemplateInfo.plist | 6 +-- 4 files changed, 48 insertions(+), 48 deletions(-) delete mode 100644 HandsApp iOS App Template.xctemplate/ModuleTransitionable.swift create mode 100644 HandsApp iOS App Template.xctemplate/ScreenTransitionable.swift diff --git a/HandsApp iOS App Template.xctemplate/ModuleTransitionable.swift b/HandsApp iOS App Template.xctemplate/ModuleTransitionable.swift deleted file mode 100644 index 958d21f..0000000 --- a/HandsApp iOS App Template.xctemplate/ModuleTransitionable.swift +++ /dev/null @@ -1,38 +0,0 @@ -// -// ModuleTransitionable.swift -// -// Created by Никита Красавин on 10/09/2019. -// Copyright © 2019 Handsapp. All rights reserved. -// - -import UIKit - -protocol ModuleTransitionable: AnyObject { - func showModule(_ module: UIViewController) - func dismissView(animated: Bool, completion: (() -> Void)?) - func presentModule(_ module: UIViewController, animated: Bool, completion: (() -> Void)?) - func pop(animated: Bool) - func push(module: UIViewController, animated: Bool) -} - -extension ModuleTransitionable where Self: UIViewController { - func showModule(_ module: UIViewController) { - show(module, sender: nil) - } - - func dismissView(animated: Bool, completion: (() -> Void)?) { - presentingViewController?.dismiss(animated: animated, completion: completion) - } - - func presentModule(_ module: UIViewController, animated: Bool, completion: (() -> Void)?) { - present(module, animated: animated, completion: completion) - } - - func pop(animated: Bool) { - navigationController?.popViewController(animated: animated) - } - - func push(module: UIViewController, animated: Bool) { - navigationController?.pushViewController(module, animated: animated) - } -} diff --git a/HandsApp iOS App Template.xctemplate/Rambafile b/HandsApp iOS App Template.xctemplate/Rambafile index 2cfe256..3adc75a 100755 --- a/HandsApp iOS App Template.xctemplate/Rambafile +++ b/HandsApp iOS App Template.xctemplate/Rambafile @@ -9,21 +9,21 @@ xcodeproj_path: ___PACKAGENAME___.xcodeproj # The main project target name project_target: ___PACKAGENAME___ -# The file path for new modules -project_file_path: ___PACKAGENAME___/User Stories +# The file path for new screens +project_file_path: ___PACKAGENAME___/Screens -# The Xcode group path to new modules -project_group_path: ___PACKAGENAME___/User Stories +# The Xcode group path to new screens +project_group_path: ___PACKAGENAME___/Screens ### Tests generation settings section # The tests target name test_target: ___PACKAGENAME___Tests # The file path for new tests -test_file_path: ___PACKAGENAME___Tests/User Stories +test_file_path: ___PACKAGENAME___Tests/Screens # The Xcode group path to new tests -test_group_path: ___PACKAGENAME___Tests/User Stories +test_group_path: ___PACKAGENAME___Tests/Screens ### Dependencies settings section podfile_path: Podfile @@ -34,4 +34,4 @@ catalogs: ### Templates templates: -- {name: handsapp_mvp_module} \ No newline at end of file +- {name: handsapp_mvp_screen} \ No newline at end of file diff --git a/HandsApp iOS App Template.xctemplate/ScreenTransitionable.swift b/HandsApp iOS App Template.xctemplate/ScreenTransitionable.swift new file mode 100644 index 0000000..f295bea --- /dev/null +++ b/HandsApp iOS App Template.xctemplate/ScreenTransitionable.swift @@ -0,0 +1,38 @@ +// +// ScreenTransitionable.swift +// +// Created by Никита Красавин on 10/09/2019. +// Copyright © 2019 Handsapp. All rights reserved. +// + +import UIKit + +protocol ScreenTransitionable: AnyObject { + func showScreen(_ screen: UIViewController) + func dismissView(animated: Bool, completion: (() -> Void)?) + func presentScreen(_ screen: UIViewController, animated: Bool, completion: (() -> Void)?) + func pop(animated: Bool) + func push(screen: UIViewController, animated: Bool) +} + +extension ScreenTransitionable where Self: UIViewController { + func showScreen(_ screen: UIViewController) { + show(screen, sender: nil) + } + + func dismissView(animated: Bool, completion: (() -> Void)?) { + presentingViewController?.dismiss(animated: animated, completion: completion) + } + + func presentScreen(_ screen: UIViewController, animated: Bool, completion: (() -> Void)?) { + present(screen, animated: animated, completion: completion) + } + + func pop(animated: Bool) { + navigationController?.popViewController(animated: animated) + } + + func push(screen: UIViewController, animated: Bool) { + navigationController?.pushViewController(screen, animated: animated) + } +} diff --git a/HandsApp iOS App Template.xctemplate/TemplateInfo.plist b/HandsApp iOS App Template.xctemplate/TemplateInfo.plist index 5431fa9..dd80717 100644 --- a/HandsApp iOS App Template.xctemplate/TemplateInfo.plist +++ b/HandsApp iOS App Template.xctemplate/TemplateInfo.plist @@ -130,7 +130,7 @@ Library/Utils/.gitkeep Library/Extensions/.gitkeep Library/Reusable Layer/.gitkeep - Library/Protocols/ModuleTransitionable.swift + Library/Protocols/ScreennTransitionable.swift Definitions @@ -395,7 +395,7 @@ end TargetIndices - Library/Protocols/ModuleTransitionable.swift + Library/Protocols/ScreenTransitionable.swift Group @@ -403,7 +403,7 @@ end Protocols Path - ModuleTransitionable.swift + ScreenTransitionable.swift Targets From 4015e6c22d3533150f2cc023c332b9f97011f806 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=9A=D1=80=D0=B0?= =?UTF-8?q?=D1=81=D0=B0=D0=B2=D0=B8=D0=BD?= <6nike6@bk.ru> Date: Thu, 19 Dec 2019 17:37:05 +0300 Subject: [PATCH 19/30] add unit test target --- .../TemplateInfo.plist | 51 ++++++++++++++++--- readme.md | 5 +- 2 files changed, 48 insertions(+), 8 deletions(-) diff --git a/HandsApp iOS App Template.xctemplate/TemplateInfo.plist b/HandsApp iOS App Template.xctemplate/TemplateInfo.plist index dd80717..7dfcf43 100644 --- a/HandsApp iOS App Template.xctemplate/TemplateInfo.plist +++ b/HandsApp iOS App Template.xctemplate/TemplateInfo.plist @@ -20,6 +20,35 @@ 1 Options + + Identifier + hasUnitTests + Name + Include Unit Tests + NotPersisted + + SortOrder + 100 + Type + checkbox + Default + true + Units + + true + + Components + + + Identifier + com.apple.dt.unit.cocoaTouchApplicationUnitTestBundle + Name + ___PACKAGENAME___Tests + + + + + Identifier languageChoice @@ -119,7 +148,7 @@ Application/LaunchScreen.storyboard Third Party/.gitkeep Services/.gitkeep - User Stories/.gitkeep + Screens/.gitkeep Resources/Assets.xcassets Resources/Strings/.gitkeep Resources/Images/.gitkeep @@ -130,7 +159,7 @@ Library/Utils/.gitkeep Library/Extensions/.gitkeep Library/Reusable Layer/.gitkeep - Library/Protocols/ScreennTransitionable.swift + Library/Protocols/ScreenTransitionable.swift Definitions @@ -368,10 +397,10 @@ end TargetIndices - User Stories/.gitkeep + Screens/.gitkeep Group - User Stories + Screens Path ../.gitkeep TargetIndices @@ -406,9 +435,19 @@ end ScreenTransitionable.swift + Targets - - + + + TargetIdentifier + com.apple.dt.cocoaTouchApplicationTarget + SharedSettings + + LD_RUNPATH_SEARCH_PATHS + $(inherited) @executable_path/Frameworks + TARGETED_DEVICE_FAMILY + 1,2 + BuildPhases diff --git a/readme.md b/readme.md index 48d7369..7a90d94 100644 --- a/readme.md +++ b/readme.md @@ -39,6 +39,7 @@ This template creates iOS project with [SurfMVP](https://github.com/surfstudio/S 2. Configure project name and other parameters as usual; 3. Close project, navigate to it via terminal and run `bundler install` to install gems. If you have no *Bundler* installed - welcome here https://bundler.io/ 4. Run `pod install` to install pods; -4. Open the generated workspace, navigate to *Build Phases* of your project's main target and **move the SwiftFormat, SwiftLint, and R.Swift script phases above the compile phase** (exactly that order). We have to make this step manually due to limitations of Xcode templates; +5. Open the generated workspace, navigate to *Build Phases* of your project's main target and **move the SwiftFormat, SwiftLint, and R.Swift script phases above the compile phase** (exactly that order). We have to make this step manually due to limitations of Xcode templates; ![Build phases configuration](images/build_phases_configuration.png) -5. Build project and have fun! +6. Configure Generamba and setup templates: `generamba template install` +7. Build project From 0e98de40cf695f172908f2095a431345c5f4a284 Mon Sep 17 00:00:00 2001 From: HandsApp <53041799+HandsAppTeam@users.noreply.github.com> Date: Mon, 23 Dec 2019 12:28:56 +0300 Subject: [PATCH 20/30] Update readme.md --- readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/readme.md b/readme.md index 7a90d94..199cf11 100644 --- a/readme.md +++ b/readme.md @@ -41,5 +41,6 @@ This template creates iOS project with [SurfMVP](https://github.com/surfstudio/S 4. Run `pod install` to install pods; 5. Open the generated workspace, navigate to *Build Phases* of your project's main target and **move the SwiftFormat, SwiftLint, and R.Swift script phases above the compile phase** (exactly that order). We have to make this step manually due to limitations of Xcode templates; ![Build phases configuration](images/build_phases_configuration.png) +6. Remove automaticaly generated tests boilerplate file `{project_name}Tests\{project_name}Tests.swift` 6. Configure Generamba and setup templates: `generamba template install` 7. Build project From 3fb7e3b677b63fc37eba9bc29ee76801402fe7d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=9A=D1=80=D0=B0?= =?UTF-8?q?=D1=81=D0=B0=D0=B2=D0=B8=D0=BD?= <6nike6@bk.ru> Date: Mon, 23 Dec 2019 13:32:01 +0300 Subject: [PATCH 21/30] update podfile --- HandsApp iOS App Template.xctemplate/Podfile | 23 ++++ .../TemplateInfo.plist | 108 +++++++----------- 2 files changed, 65 insertions(+), 66 deletions(-) create mode 100644 HandsApp iOS App Template.xctemplate/Podfile diff --git a/HandsApp iOS App Template.xctemplate/Podfile b/HandsApp iOS App Template.xctemplate/Podfile new file mode 100644 index 0000000..930e2a9 --- /dev/null +++ b/HandsApp iOS App Template.xctemplate/Podfile @@ -0,0 +1,23 @@ +use_frameworks! +inhibit_all_warnings! + +platform :ios, '11.0' + +def appcenter + pod 'AppCenter' + pod 'AppCenter/Distribute' + pod 'AppCenter/Crashes' +end + +target 'TestScreenshots' do + # Code Tools + pod 'R.swift' + pod 'SwiftFormat/CLI' + pod 'SwiftLint' + + # SDKs + appcenter + + # UI + pod 'HandsAppUI' +end diff --git a/HandsApp iOS App Template.xctemplate/TemplateInfo.plist b/HandsApp iOS App Template.xctemplate/TemplateInfo.plist index 7dfcf43..e4476f5 100644 --- a/HandsApp iOS App Template.xctemplate/TemplateInfo.plist +++ b/HandsApp iOS App Template.xctemplate/TemplateInfo.plist @@ -21,34 +21,34 @@ Options - Identifier - hasUnitTests - Name - Include Unit Tests - NotPersisted - - SortOrder - 100 - Type - checkbox - Default - true - Units - - true - - Components - - - Identifier - com.apple.dt.unit.cocoaTouchApplicationUnitTestBundle - Name - ___PACKAGENAME___Tests - - - - - + Identifier + hasUnitTests + Name + Include Unit Tests + NotPersisted + + SortOrder + 100 + Type + checkbox + Default + true + Units + + true + + Components + + + Identifier + com.apple.dt.unit.cocoaTouchApplicationUnitTestBundle + Name + ___PACKAGENAME___Tests + + + + + Identifier languageChoice @@ -212,33 +212,10 @@ ../Podfile - TargetIndices - - Beginning - use_frameworks! -inhibit_all_warnings! - -platform :ios, '11.0' - -def appcenter - pod 'AppCenter' - pod 'AppCenter/Distribute' - pod 'AppCenter/Crashes' -end - -target '___PACKAGENAME___' do - pod 'R.swift' - pod 'SwiftFormat/CLI' - pod 'SwiftLint' - appcenter -end - End - - + Path + Podfile Group - - Non-iOS Resources - + Non-iOS Resources ../Gemfile @@ -435,19 +412,18 @@ end ScreenTransitionable.swift - Targets - - - TargetIdentifier - com.apple.dt.cocoaTouchApplicationTarget - SharedSettings - - LD_RUNPATH_SEARCH_PATHS - $(inherited) @executable_path/Frameworks - TARGETED_DEVICE_FAMILY - 1,2 - + + + TargetIdentifier + com.apple.dt.cocoaTouchApplicationTarget + SharedSettings + + LD_RUNPATH_SEARCH_PATHS + $(inherited) @executable_path/Frameworks + TARGETED_DEVICE_FAMILY + 1,2 + BuildPhases From 9a9a0493b20fb91de5ce5e5a998756fcfc1b4edf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=9A=D1=80=D0=B0?= =?UTF-8?q?=D1=81=D0=B0=D0=B2=D0=B8=D0=BD?= <6nike6@bk.ru> Date: Mon, 23 Dec 2019 13:47:52 +0300 Subject: [PATCH 22/30] - update AppDelegate with HandsAppUI and Theme - remove explicit file headers --- .../ApiKeys.swift | 8 -------- .../AppDelegate.swift | 15 ++++++--------- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/HandsApp iOS App Template.xctemplate/ApiKeys.swift b/HandsApp iOS App Template.xctemplate/ApiKeys.swift index e2dc1a4..adb9146 100755 --- a/HandsApp iOS App Template.xctemplate/ApiKeys.swift +++ b/HandsApp iOS App Template.xctemplate/ApiKeys.swift @@ -1,11 +1,3 @@ -// -// ___FILENAME___ -// ___PACKAGENAME___ -// -// Created by ___FULLUSERNAME___ on ___DATE___. -// ___COPYRIGHT___ -// - enum ApiKeys { #warning("Replace with real key via global search (Cmd + Shift + F)") static let appCenter = "APP_CENTER_API_KEY" diff --git a/HandsApp iOS App Template.xctemplate/AppDelegate.swift b/HandsApp iOS App Template.xctemplate/AppDelegate.swift index 0b5600c..a656dd9 100755 --- a/HandsApp iOS App Template.xctemplate/AppDelegate.swift +++ b/HandsApp iOS App Template.xctemplate/AppDelegate.swift @@ -1,21 +1,18 @@ -// -// ___FILENAME___ -// ___PACKAGENAME___ -// -// Created by ___FULLUSERNAME___ on ___DATE___. -// ___COPYRIGHT___ -// - import AppCenter import AppCenterAnalytics import AppCenterDistribute import AppCenterCrashes import UIKit +import HandsAppUI @UIApplicationMain -class AppDelegate: UIResponder, UIApplicationDelegate { +class AppDelegate: UIResponder, UIApplicationDelegate, HandsAppDelegate { var window: UIWindow? + var theme: Theme.Type { + return DefaultTheme.self + } + func application(_: UIApplication, didFinishLaunchingWithOptions _: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { startAppCenter() return true From 98794713901784399732d6401849568505e6980d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=9A=D1=80=D0=B0?= =?UTF-8?q?=D1=81=D0=B0=D0=B2=D0=B8=D0=BD?= <6nike6@bk.ru> Date: Mon, 23 Dec 2019 13:52:39 +0300 Subject: [PATCH 23/30] - update AppDelegate with setupWindow() - fix bug: add swift format --- HandsApp iOS App Template.xctemplate/AppDelegate.swift | 10 ++++++++-- .../TemplateInfo.plist | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/HandsApp iOS App Template.xctemplate/AppDelegate.swift b/HandsApp iOS App Template.xctemplate/AppDelegate.swift index a656dd9..a8f6a39 100755 --- a/HandsApp iOS App Template.xctemplate/AppDelegate.swift +++ b/HandsApp iOS App Template.xctemplate/AppDelegate.swift @@ -1,9 +1,9 @@ import AppCenter import AppCenterAnalytics -import AppCenterDistribute import AppCenterCrashes -import UIKit +import AppCenterDistribute import HandsAppUI +import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate, HandsAppDelegate { @@ -15,6 +15,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate, HandsAppDelegate { func application(_: UIApplication, didFinishLaunchingWithOptions _: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { startAppCenter() + setupWindow() return true } @@ -22,4 +23,9 @@ class AppDelegate: UIResponder, UIApplicationDelegate, HandsAppDelegate { let services: [AnyClass] = [MSAnalytics.self, MSDistribute.self, MSCrashes.self] MSAppCenter.start(ApiKeys.appCenter, withServices: services) } + + private func setupWindow() { + window = UIWindow(frame: UIScreen.main.bounds) + window?.makeKeyAndVisible() + } } diff --git a/HandsApp iOS App Template.xctemplate/TemplateInfo.plist b/HandsApp iOS App Template.xctemplate/TemplateInfo.plist index e4476f5..7ee71f1 100644 --- a/HandsApp iOS App Template.xctemplate/TemplateInfo.plist +++ b/HandsApp iOS App Template.xctemplate/TemplateInfo.plist @@ -140,6 +140,7 @@ Info.plist ../.gitignore ../.swiftlint.yml + ../.swiftformat ../Podfile ../R.generated.swift ../Gemfile From 42acb42c587f4d8c48622d6323322c696bdf9e46 Mon Sep 17 00:00:00 2001 From: HandsApp <53041799+HandsAppTeam@users.noreply.github.com> Date: Tue, 24 Dec 2019 11:59:36 +0300 Subject: [PATCH 24/30] Update readme.md --- readme.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 199cf11..f9f7d19 100644 --- a/readme.md +++ b/readme.md @@ -6,11 +6,12 @@ This repository contains useful Xcode templates to simplify new projects up and Clone this project and navigate to it via terminal. Run install script: - chmod +x install.sh + chmod +x install_handsapp_ios_app_template.sh ./install_handsapp_ios_app_template.sh This script will copy HandsApp project template to `~/Library/Developer/Xcode/Templates/Project Templates/HandsApp` where Xcode will be able to find it. + chmod +x install_empty_swift_file_template.sh ./install_empty_swift_file_template.sh This script will copy empty file template to `~/Library/Developer/Xcode/Templates/File Templates/Source` where Xcode will be able to find it. From 6ec9829b3682629849726222d396e977ee27b011 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=9A=D1=80=D0=B0?= =?UTF-8?q?=D1=81=D0=B0=D0=B2=D0=B8=D0=BD?= <6nike6@bk.ru> Date: Tue, 24 Dec 2019 13:02:33 +0300 Subject: [PATCH 25/30] - update install templates files - fix bug; project target in podfile --- HandsApp iOS App Template.xctemplate/Podfile | 4 ++-- install_empty_swift_file_template.sh | 6 ++++++ install_handsapp_ios_app_template.sh | 6 ++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/HandsApp iOS App Template.xctemplate/Podfile b/HandsApp iOS App Template.xctemplate/Podfile index 930e2a9..57e08d1 100644 --- a/HandsApp iOS App Template.xctemplate/Podfile +++ b/HandsApp iOS App Template.xctemplate/Podfile @@ -9,7 +9,7 @@ def appcenter pod 'AppCenter/Crashes' end -target 'TestScreenshots' do +target '___PACKAGENAME___' do # Code Tools pod 'R.swift' pod 'SwiftFormat/CLI' @@ -20,4 +20,4 @@ target 'TestScreenshots' do # UI pod 'HandsAppUI' -end +end \ No newline at end of file diff --git a/install_empty_swift_file_template.sh b/install_empty_swift_file_template.sh index b99309f..0aa43f9 100755 --- a/install_empty_swift_file_template.sh +++ b/install_empty_swift_file_template.sh @@ -12,6 +12,12 @@ if [ ! -d "$TEMPLATE_DIR" ]; then echo "Created $TEMPLATE_DIR" fi +if [ -d "$TEMPLATE_DIR/$TEMPLATE_NAME" ]; then + echo "Delete previously created directory for the templates..." + rm -rf "$TEMPLATE_DIR/$TEMPLATE_NAME" + echo "Deleted $TEMPLATE_DIR/$TEMPLATE_NAME" +fi + echo "Copying template files..." cp -rf "./$TEMPLATE_NAME" "$TEMPLATE_DIR" echo "Done." diff --git a/install_handsapp_ios_app_template.sh b/install_handsapp_ios_app_template.sh index bfb913c..a525735 100755 --- a/install_handsapp_ios_app_template.sh +++ b/install_handsapp_ios_app_template.sh @@ -12,6 +12,12 @@ if [ ! -d "$TEMPLATE_DIR" ]; then echo "Created $TEMPLATE_DIR" fi +if [ -d "$TEMPLATE_DIR/$TEMPLATE_NAME" ]; then + echo "Delete previously created directory for the templates..." + rm -rf "$TEMPLATE_DIR/$TEMPLATE_NAME" + echo "Deleted $TEMPLATE_DIR/$TEMPLATE_NAME" +fi + echo "Copying template files..." cp -rf "./$TEMPLATE_NAME" "$TEMPLATE_DIR" echo "Done." From 07abca4de613db54ae838edcb79785d5c6e5f865 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=9A=D1=80=D0=B0?= =?UTF-8?q?=D1=81=D0=B0=D0=B2=D0=B8=D0=BD?= <6nike6@bk.ru> Date: Tue, 24 Dec 2019 13:50:22 +0300 Subject: [PATCH 26/30] - add assets catalog --- HandsApp iOS App Template.xctemplate/Assets.xcassets/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 HandsApp iOS App Template.xctemplate/Assets.xcassets/.gitkeep diff --git a/HandsApp iOS App Template.xctemplate/Assets.xcassets/.gitkeep b/HandsApp iOS App Template.xctemplate/Assets.xcassets/.gitkeep new file mode 100644 index 0000000..e69de29 From ad7fb509805971b20a846c58822a82f2dfa580e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=9A=D1=80=D0=B0?= =?UTF-8?q?=D1=81=D0=B0=D0=B2=D0=B8=D0=BD?= <6nike6@bk.ru> Date: Wed, 25 Dec 2019 18:50:21 +0300 Subject: [PATCH 27/30] - add screenshots to gitignore - update swiftlint file with exclude rule for fastlane snapshots file --- HandsApp iOS App Template.xctemplate/.gitignore | 3 +++ HandsApp iOS App Template.xctemplate/.swiftlint.yml | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/HandsApp iOS App Template.xctemplate/.gitignore b/HandsApp iOS App Template.xctemplate/.gitignore index 770e547..79fe851 100644 --- a/HandsApp iOS App Template.xctemplate/.gitignore +++ b/HandsApp iOS App Template.xctemplate/.gitignore @@ -18,6 +18,9 @@ Carthage/Build # - AS PER https://guides.cocoapods.org/using/using-cocoapods.html NEVER IGNORE THE LOCK FILE Pods/ +### Fastlane Screenshots ### +screenshots/ + ### macOS ### # General .DS_Store diff --git a/HandsApp iOS App Template.xctemplate/.swiftlint.yml b/HandsApp iOS App Template.xctemplate/.swiftlint.yml index 69c58ec..e7887dc 100644 --- a/HandsApp iOS App Template.xctemplate/.swiftlint.yml +++ b/HandsApp iOS App Template.xctemplate/.swiftlint.yml @@ -36,11 +36,11 @@ line_length: type_body_length: - 250 # warning - - 300 # error (должно быть 300) + - 300 # error file_length: warning: 300 # warning - error: 400 # error (должно быть 400) + error: 400 # error identifier_name: min_length: @@ -57,5 +57,5 @@ excluded: - Carthage - Pods - Documents - - R.generated.swift - + - "*.generated.swift" + - "*/SnapshotHelper.swift" From 146ac24a680cf6201645ff6ca6943f6cd7e03a14 Mon Sep 17 00:00:00 2001 From: HandsApp <53041799+HandsAppTeam@users.noreply.github.com> Date: Thu, 26 Dec 2019 11:13:09 +0300 Subject: [PATCH 28/30] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index f9f7d19..659a248 100644 --- a/readme.md +++ b/readme.md @@ -38,7 +38,7 @@ This template creates iOS project with [SurfMVP](https://github.com/surfstudio/S 1. Open Xcode and create new project, choose *HandsApp iOS App Template* from the wizard (at the *Private* section); 2. Configure project name and other parameters as usual; -3. Close project, navigate to it via terminal and run `bundler install` to install gems. If you have no *Bundler* installed - welcome here https://bundler.io/ +3. Close project, navigate to it via terminal and run `bundle install` to install gems. If you have no *Bundler* installed - welcome here https://bundler.io/ 4. Run `pod install` to install pods; 5. Open the generated workspace, navigate to *Build Phases* of your project's main target and **move the SwiftFormat, SwiftLint, and R.Swift script phases above the compile phase** (exactly that order). We have to make this step manually due to limitations of Xcode templates; ![Build phases configuration](images/build_phases_configuration.png) From b203aa6d6c699be4517a43fc2ee545bdbacf8948 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=9A=D1=80=D0=B0?= =?UTF-8?q?=D1=81=D0=B0=D0=B2=D0=B8=D0=BD?= <6nike6@bk.ru> Date: Thu, 6 Feb 2020 17:30:25 +0300 Subject: [PATCH 29/30] add and configure network app template --- .../AppDefaults.swift | 5 + .../AuthPlugin.swift | 17 ++ .../ErrorHandler.swift | 10 ++ .../ErrorHandlingPlugin.swift | 26 +++ .../HTTPNetworkError.swift | 26 +++ .../Keychain.swift | 8 + .../KeychainKeys.swift | 3 + .../Localizable.strings | 12 ++ .../NetworkReachabilityError.swift | 11 ++ HandsApp Network iOS App.xctemplate/Podfile | 28 ++++ .../ReachabilityManager.swift | 3 + .../ServerApi.swift | 51 ++++++ .../TemplateInfo.plist | 149 ++++++++++++++++++ .../UserMessagesView.swift | 19 +++ .../.gitignore | 0 .../.swiftformat | 0 .../.swiftlint.yml | 0 .../ApiKeys.swift | 0 .../AppDelegate.swift | 0 .../Assets.xcassets/.gitkeep | 0 .../Gemfile | 2 +- .../Info.plist | 0 .../LaunchScreen.storyboard | 0 .../Localizable.strings | 0 .../Podfile | 0 .../Rambafile | 0 .../ScreenTransitionable.swift | 0 .../TemplateIcon.png | Bin .../TemplateIcon@2x.png | Bin .../TemplateInfo.plist | 28 ++-- .../appcenter-post-clone.sh | 0 install_empty_swift_file_template.sh | 2 +- install_handsapp_ios_app_template.sh | 4 +- install_handsapp_network_ios_app_template.sh | 32 ++++ 34 files changed, 418 insertions(+), 18 deletions(-) create mode 100644 HandsApp Network iOS App.xctemplate/AppDefaults.swift create mode 100644 HandsApp Network iOS App.xctemplate/AuthPlugin.swift create mode 100644 HandsApp Network iOS App.xctemplate/ErrorHandler.swift create mode 100644 HandsApp Network iOS App.xctemplate/ErrorHandlingPlugin.swift create mode 100644 HandsApp Network iOS App.xctemplate/HTTPNetworkError.swift create mode 100644 HandsApp Network iOS App.xctemplate/Keychain.swift create mode 100644 HandsApp Network iOS App.xctemplate/KeychainKeys.swift create mode 100644 HandsApp Network iOS App.xctemplate/Localizable.strings create mode 100644 HandsApp Network iOS App.xctemplate/NetworkReachabilityError.swift create mode 100644 HandsApp Network iOS App.xctemplate/Podfile create mode 100644 HandsApp Network iOS App.xctemplate/ReachabilityManager.swift create mode 100644 HandsApp Network iOS App.xctemplate/ServerApi.swift create mode 100644 HandsApp Network iOS App.xctemplate/TemplateInfo.plist create mode 100644 HandsApp Network iOS App.xctemplate/UserMessagesView.swift rename {HandsApp iOS App Template.xctemplate => HandsApp iOS App.xctemplate}/.gitignore (100%) rename {HandsApp iOS App Template.xctemplate => HandsApp iOS App.xctemplate}/.swiftformat (100%) rename {HandsApp iOS App Template.xctemplate => HandsApp iOS App.xctemplate}/.swiftlint.yml (100%) rename {HandsApp iOS App Template.xctemplate => HandsApp iOS App.xctemplate}/ApiKeys.swift (100%) rename {HandsApp iOS App Template.xctemplate => HandsApp iOS App.xctemplate}/AppDelegate.swift (100%) rename {HandsApp iOS App Template.xctemplate => HandsApp iOS App.xctemplate}/Assets.xcassets/.gitkeep (100%) rename {HandsApp iOS App Template.xctemplate => HandsApp iOS App.xctemplate}/Gemfile (83%) rename {HandsApp iOS App Template.xctemplate => HandsApp iOS App.xctemplate}/Info.plist (100%) rename {HandsApp iOS App Template.xctemplate => HandsApp iOS App.xctemplate}/LaunchScreen.storyboard (100%) rename {HandsApp iOS App Template.xctemplate => HandsApp iOS App.xctemplate}/Localizable.strings (100%) rename {HandsApp iOS App Template.xctemplate => HandsApp iOS App.xctemplate}/Podfile (100%) rename {HandsApp iOS App Template.xctemplate => HandsApp iOS App.xctemplate}/Rambafile (100%) rename {HandsApp iOS App Template.xctemplate => HandsApp iOS App.xctemplate}/ScreenTransitionable.swift (100%) rename {HandsApp iOS App Template.xctemplate => HandsApp iOS App.xctemplate}/TemplateIcon.png (100%) rename {HandsApp iOS App Template.xctemplate => HandsApp iOS App.xctemplate}/TemplateIcon@2x.png (100%) rename {HandsApp iOS App Template.xctemplate => HandsApp iOS App.xctemplate}/TemplateInfo.plist (98%) rename {HandsApp iOS App Template.xctemplate => HandsApp iOS App.xctemplate}/appcenter-post-clone.sh (100%) create mode 100755 install_handsapp_network_ios_app_template.sh diff --git a/HandsApp Network iOS App.xctemplate/AppDefaults.swift b/HandsApp Network iOS App.xctemplate/AppDefaults.swift new file mode 100644 index 0000000..4c877e8 --- /dev/null +++ b/HandsApp Network iOS App.xctemplate/AppDefaults.swift @@ -0,0 +1,5 @@ +enum AppDefaults { + #warning("Replace by your server URL") + static let serverBaseUrl = "https://handsapp.ru" + static let serverApiBaseUrl = serverBaseUrl + "/api/" +} diff --git a/HandsApp Network iOS App.xctemplate/AuthPlugin.swift b/HandsApp Network iOS App.xctemplate/AuthPlugin.swift new file mode 100644 index 0000000..a63a7bd --- /dev/null +++ b/HandsApp Network iOS App.xctemplate/AuthPlugin.swift @@ -0,0 +1,17 @@ +import Moya + +// MARK: - AuthPlugin + +class AuthPlugin: PluginType { + private let keychain = Keychain() + + func prepare(_ request: URLRequest, target _: TargetType) -> URLRequest { + let jwtToken: String = keychain.get(KeychainKeys.jwtToken) ?? "" + var request = request + request.addValue( + "JWT \(jwtToken)", + forHTTPHeaderField: "Authorization" + ) + return request + } +} diff --git a/HandsApp Network iOS App.xctemplate/ErrorHandler.swift b/HandsApp Network iOS App.xctemplate/ErrorHandler.swift new file mode 100644 index 0000000..033008e --- /dev/null +++ b/HandsApp Network iOS App.xctemplate/ErrorHandler.swift @@ -0,0 +1,10 @@ +import Foundation + +class ErrorHandler { + var messagesView: UserMessagesView? + + func handle(error: Error) { + let message = error.localizedDescription + messagesView?.showErrorAlert(withMessage: message) + } +} diff --git a/HandsApp Network iOS App.xctemplate/ErrorHandlingPlugin.swift b/HandsApp Network iOS App.xctemplate/ErrorHandlingPlugin.swift new file mode 100644 index 0000000..b15b086 --- /dev/null +++ b/HandsApp Network iOS App.xctemplate/ErrorHandlingPlugin.swift @@ -0,0 +1,26 @@ +import Moya +import Result + +class ErrorHandlingPlugin: PluginType { + private let reachabilityManager = ReachabilityManager(host: AppDefaults.serverApiBaseUrl) + weak var errorHandler: ErrorHandler? + + func didReceive(_ result: Result, target _: TargetType) { + guard case let .failure(moyaError) = result, + let errorHandler = errorHandler else { return } + + if case let .underlying(error, _) = moyaError, + (error as NSError).code == NSURLErrorCancelled { + return + } + + var error: Error = moyaError + if let reachabilityManager = reachabilityManager, + !reachabilityManager.isReachable { + error = NetworkReachabilityError() + } else if let statusCode = moyaError.response?.statusCode { + error = HTTPNetworkError(statusCode: statusCode) + } + errorHandler.handle(error: error) + } +} diff --git a/HandsApp Network iOS App.xctemplate/HTTPNetworkError.swift b/HandsApp Network iOS App.xctemplate/HTTPNetworkError.swift new file mode 100644 index 0000000..cd90c5d --- /dev/null +++ b/HandsApp Network iOS App.xctemplate/HTTPNetworkError.swift @@ -0,0 +1,26 @@ +import Foundation + +struct HTTPNetworkError: Error { + let statusCode: Int +} + +extension HTTPNetworkError: LocalizedError { + var errorDescription: String? { + return localizedDescription + } + + var localizedDescription: String { + switch statusCode { + case 401: + return R.string.localizable.network_error_no_registration() + case 403: + return R.string.localizable.network_error_forbidden() + case 404: + return R.string.localizable.network_error_not_found() + case 500, 502: + return R.string.localizable.network_error_internal_server_error() + default: + return R.string.localizable.network_error_default() + } + } +} diff --git a/HandsApp Network iOS App.xctemplate/Keychain.swift b/HandsApp Network iOS App.xctemplate/Keychain.swift new file mode 100644 index 0000000..8e88c52 --- /dev/null +++ b/HandsApp Network iOS App.xctemplate/Keychain.swift @@ -0,0 +1,8 @@ +import KeychainSwift + +class Keychain: KeychainSwift { + override init() { + let prefix = Bundle.main.bundleIdentifier ?? "ru.handsapp" + "_keychain_" + super.init(keyPrefix: prefix) + } +} diff --git a/HandsApp Network iOS App.xctemplate/KeychainKeys.swift b/HandsApp Network iOS App.xctemplate/KeychainKeys.swift new file mode 100644 index 0000000..cdbf715 --- /dev/null +++ b/HandsApp Network iOS App.xctemplate/KeychainKeys.swift @@ -0,0 +1,3 @@ +enum KeychainKeys { + static let jwtToken = "jwtToken" +} diff --git a/HandsApp Network iOS App.xctemplate/Localizable.strings b/HandsApp Network iOS App.xctemplate/Localizable.strings new file mode 100644 index 0000000..3e50014 --- /dev/null +++ b/HandsApp Network iOS App.xctemplate/Localizable.strings @@ -0,0 +1,12 @@ +"error_text" = "Ошибка"; +"ok" = "Ок"; + +// MARK: - Errors +"network_error_forbidden" = "Извините, у вас недостаточно прав для выполнения данной операции ⛔"; +"network_error_not_found" = "Ресурс не найден 🤷"; +"network_error_internal_server_error" = "Внутренняя ошибка сервера. Попробуйте повторить запрос через несколько минут 💤"; +"network_error_default" = "Упс! Что-то пошло не так"; +"network_error_no_registration" = "Ошибка авторизации"; +"check_connection_and_try_again" = "Нет соединения с интернетом"; +"user_is_blocked" = "Пользователь заблокирован"; +"contact_support" = "Обратитесь в поддержку"; diff --git a/HandsApp Network iOS App.xctemplate/NetworkReachabilityError.swift b/HandsApp Network iOS App.xctemplate/NetworkReachabilityError.swift new file mode 100644 index 0000000..04807ac --- /dev/null +++ b/HandsApp Network iOS App.xctemplate/NetworkReachabilityError.swift @@ -0,0 +1,11 @@ +import Foundation + +struct NetworkReachabilityError: Error, LocalizedError { + var errorDescription: String? { + return localizedDescription + } + + var localizedDescription: String { + return String() + } +} diff --git a/HandsApp Network iOS App.xctemplate/Podfile b/HandsApp Network iOS App.xctemplate/Podfile new file mode 100644 index 0000000..3ab9dcf --- /dev/null +++ b/HandsApp Network iOS App.xctemplate/Podfile @@ -0,0 +1,28 @@ +use_frameworks! +inhibit_all_warnings! + +platform :ios, '11.0' + +def appcenter + pod 'AppCenter' + pod 'AppCenter/Distribute' + pod 'AppCenter/Crashes' +end + +target 'TestNetworkTemplate' do + # Code Tools + pod 'R.swift' + pod 'SwiftFormat/CLI' + pod 'SwiftLint' + + # SDKs + appcenter + + # UI + pod 'HandsAppUI' + + # Networking + pod 'SDWebImage' + pod 'Moya' + pod 'KeychainSwift' +end diff --git a/HandsApp Network iOS App.xctemplate/ReachabilityManager.swift b/HandsApp Network iOS App.xctemplate/ReachabilityManager.swift new file mode 100644 index 0000000..1851720 --- /dev/null +++ b/HandsApp Network iOS App.xctemplate/ReachabilityManager.swift @@ -0,0 +1,3 @@ +import Alamofire + +class ReachabilityManager: NetworkReachabilityManager {} diff --git a/HandsApp Network iOS App.xctemplate/ServerApi.swift b/HandsApp Network iOS App.xctemplate/ServerApi.swift new file mode 100644 index 0000000..cd35ac5 --- /dev/null +++ b/HandsApp Network iOS App.xctemplate/ServerApi.swift @@ -0,0 +1,51 @@ +import Moya + +enum ServerApi { + #warning("This is sample implementation of api endpoint. Remove it if needed") + case auth(firToken: String) +} + +// MARK: - Moya setup + +extension ServerApi: TargetType { + var baseURL: URL { + guard let url = URL(string: AppDefaults.serverApiBaseUrl) else { + fatalError("Failed to provide server api base url") + } + return url + } + + var path: String { + switch self { + case .auth: + return "auth/firebase" + } + } + + var method: Method { + switch self { + case .auth: + return .post + } + } + + var sampleData: Data { + return Data() + } + + var validationType: ValidationType { + return .successCodes + } + + var task: Task { + switch self { + case let .auth(firToken): + let parameters = ["access_token": firToken] + return .requestParameters(parameters: parameters, encoding: JSONEncoding.default) + } + } + + var headers: [String: String]? { + return nil + } +} diff --git a/HandsApp Network iOS App.xctemplate/TemplateInfo.plist b/HandsApp Network iOS App.xctemplate/TemplateInfo.plist new file mode 100644 index 0000000..65dda56 --- /dev/null +++ b/HandsApp Network iOS App.xctemplate/TemplateInfo.plist @@ -0,0 +1,149 @@ + + + + + Kind + Xcode.Xcode3.ProjectTemplateUnitKind + Identifier + ru.handsapp.dt.unit.MvpNetworkApplication + Ancestors + + ru.handsapp.dt.unit.MVPApplication + + Concrete + + Description + This template is for network MVP application. + SortOrder + 1 + Nodes + + Resources/Constants/AppDefaults.swift + Resources/Constants/KeychainKeys.swift + Library/Error Handling/ErrorHandler.swift + Library/Protocols/UserMessagesView.swift + Services/Keychain.swift + Services/Network/Api/ServerApi.swift + Services/Network/Plugins/AuthPlugin.swift + Services/Network/Plugins/ErrorHandlingPlugin.swift + Services/Network/Errors/HTTPNetworkError.swift + Services/Network/Errors/NetworkReachabilityError.swift + Services/Network/ReachabilityManager.swift + + Definitions + + Resources/Constants/AppDefaults.swift + + Group + + Resources + Constants + + Path + AppDefaults.swift + + Resources/Constants/KeychainKeys.swift + + Group + + Resources + Constants + + Path + KeychainKeys.swift + + Library/Error Handling/ErrorHandler.swift + + Group + + Library + Error Handling + + Path + ErrorHandler.swift + + Library/Protocols/UserMessagesView.swift + + Group + + Library + Protocols + + Path + UserMessagesView.swift + + Services/Keychain.swift + + Group + Services + Path + Keychain.swift + + Services/Network/Api/ServerApi.swift + + Group + + Services + Network + Api + + Path + ServerApi.swift + + Services/Network/Plugins/AuthPlugin.swift + + Group + + Services + Network + Plugins + + Path + AuthPlugin.swift + + Services/Network/Plugins/ErrorHandlingPlugin.swift + + Group + + Services + Network + Plugins + + Path + ErrorHandlingPlugin.swift + + Services/Network/Errors/HTTPNetworkError.swift + + Group + + Services + Network + Errors + + Path + HTTPNetworkError.swift + + Services/Network/Errors/NetworkReachabilityError.swift + + Group + + Services + Network + Errors + + Path + NetworkReachabilityError.swift + + Services/Network/ReachabilityManager.swift + + Group + + Services + Network + + Path + ReachabilityManager.swift + + + + diff --git a/HandsApp Network iOS App.xctemplate/UserMessagesView.swift b/HandsApp Network iOS App.xctemplate/UserMessagesView.swift new file mode 100644 index 0000000..42741a5 --- /dev/null +++ b/HandsApp Network iOS App.xctemplate/UserMessagesView.swift @@ -0,0 +1,19 @@ +import UIKit + +protocol UserMessagesView { + func showAlert(withTitle title: String?, message: String?) + func showErrorAlert(withMessage message: String) +} + +extension UserMessagesView where Self: UIViewController { + func showAlert(withTitle title: String?, message: String?) { + let alertController = UIAlertController(title: title, message: message, preferredStyle: .alert) + let okAction = UIAlertAction(title: R.string.localizable.ok(), style: .default, handler: nil) + alertController.addAction(okAction) + present(alertController, animated: true) + } + + func showErrorAlert(withMessage message: String) { + showAlert(withTitle: R.string.localizable.error_text(), message: message) + } +} diff --git a/HandsApp iOS App Template.xctemplate/.gitignore b/HandsApp iOS App.xctemplate/.gitignore similarity index 100% rename from HandsApp iOS App Template.xctemplate/.gitignore rename to HandsApp iOS App.xctemplate/.gitignore diff --git a/HandsApp iOS App Template.xctemplate/.swiftformat b/HandsApp iOS App.xctemplate/.swiftformat similarity index 100% rename from HandsApp iOS App Template.xctemplate/.swiftformat rename to HandsApp iOS App.xctemplate/.swiftformat diff --git a/HandsApp iOS App Template.xctemplate/.swiftlint.yml b/HandsApp iOS App.xctemplate/.swiftlint.yml similarity index 100% rename from HandsApp iOS App Template.xctemplate/.swiftlint.yml rename to HandsApp iOS App.xctemplate/.swiftlint.yml diff --git a/HandsApp iOS App Template.xctemplate/ApiKeys.swift b/HandsApp iOS App.xctemplate/ApiKeys.swift similarity index 100% rename from HandsApp iOS App Template.xctemplate/ApiKeys.swift rename to HandsApp iOS App.xctemplate/ApiKeys.swift diff --git a/HandsApp iOS App Template.xctemplate/AppDelegate.swift b/HandsApp iOS App.xctemplate/AppDelegate.swift similarity index 100% rename from HandsApp iOS App Template.xctemplate/AppDelegate.swift rename to HandsApp iOS App.xctemplate/AppDelegate.swift diff --git a/HandsApp iOS App Template.xctemplate/Assets.xcassets/.gitkeep b/HandsApp iOS App.xctemplate/Assets.xcassets/.gitkeep similarity index 100% rename from HandsApp iOS App Template.xctemplate/Assets.xcassets/.gitkeep rename to HandsApp iOS App.xctemplate/Assets.xcassets/.gitkeep diff --git a/HandsApp iOS App Template.xctemplate/Gemfile b/HandsApp iOS App.xctemplate/Gemfile similarity index 83% rename from HandsApp iOS App Template.xctemplate/Gemfile rename to HandsApp iOS App.xctemplate/Gemfile index 4ffbcab..8ae4009 100755 --- a/HandsApp iOS App Template.xctemplate/Gemfile +++ b/HandsApp iOS App.xctemplate/Gemfile @@ -8,4 +8,4 @@ git_source(:github) do |repo_name| end if Gem::Version.new(Bundler::VERSION) < Gem::Version.new('2') gem 'cocoapods' -gem 'generamba', github: 'surfstudio/Generamba', branch: 'develop' +gem 'generamba' diff --git a/HandsApp iOS App Template.xctemplate/Info.plist b/HandsApp iOS App.xctemplate/Info.plist similarity index 100% rename from HandsApp iOS App Template.xctemplate/Info.plist rename to HandsApp iOS App.xctemplate/Info.plist diff --git a/HandsApp iOS App Template.xctemplate/LaunchScreen.storyboard b/HandsApp iOS App.xctemplate/LaunchScreen.storyboard similarity index 100% rename from HandsApp iOS App Template.xctemplate/LaunchScreen.storyboard rename to HandsApp iOS App.xctemplate/LaunchScreen.storyboard diff --git a/HandsApp iOS App Template.xctemplate/Localizable.strings b/HandsApp iOS App.xctemplate/Localizable.strings similarity index 100% rename from HandsApp iOS App Template.xctemplate/Localizable.strings rename to HandsApp iOS App.xctemplate/Localizable.strings diff --git a/HandsApp iOS App Template.xctemplate/Podfile b/HandsApp iOS App.xctemplate/Podfile similarity index 100% rename from HandsApp iOS App Template.xctemplate/Podfile rename to HandsApp iOS App.xctemplate/Podfile diff --git a/HandsApp iOS App Template.xctemplate/Rambafile b/HandsApp iOS App.xctemplate/Rambafile similarity index 100% rename from HandsApp iOS App Template.xctemplate/Rambafile rename to HandsApp iOS App.xctemplate/Rambafile diff --git a/HandsApp iOS App Template.xctemplate/ScreenTransitionable.swift b/HandsApp iOS App.xctemplate/ScreenTransitionable.swift similarity index 100% rename from HandsApp iOS App Template.xctemplate/ScreenTransitionable.swift rename to HandsApp iOS App.xctemplate/ScreenTransitionable.swift diff --git a/HandsApp iOS App Template.xctemplate/TemplateIcon.png b/HandsApp iOS App.xctemplate/TemplateIcon.png similarity index 100% rename from HandsApp iOS App Template.xctemplate/TemplateIcon.png rename to HandsApp iOS App.xctemplate/TemplateIcon.png diff --git a/HandsApp iOS App Template.xctemplate/TemplateIcon@2x.png b/HandsApp iOS App.xctemplate/TemplateIcon@2x.png similarity index 100% rename from HandsApp iOS App Template.xctemplate/TemplateIcon@2x.png rename to HandsApp iOS App.xctemplate/TemplateIcon@2x.png diff --git a/HandsApp iOS App Template.xctemplate/TemplateInfo.plist b/HandsApp iOS App.xctemplate/TemplateInfo.plist similarity index 98% rename from HandsApp iOS App Template.xctemplate/TemplateInfo.plist rename to HandsApp iOS App.xctemplate/TemplateInfo.plist index 7ee71f1..7ef2c71 100644 --- a/HandsApp iOS App Template.xctemplate/TemplateInfo.plist +++ b/HandsApp iOS App.xctemplate/TemplateInfo.plist @@ -151,7 +151,7 @@ Services/.gitkeep Screens/.gitkeep Resources/Assets.xcassets - Resources/Strings/.gitkeep + Resources/Strings/Localizable.strings Resources/Images/.gitkeep Resources/Constants/ApiKeys.swift Resources/Fonts/.gitkeep @@ -250,6 +250,18 @@ Group Application + Resources/Strings/Localizable.strings + + TargetIndices + + Path + Localizable.strings + Group + + Resources + Strings + + Library/Base Classes/.gitkeep Group @@ -315,7 +327,7 @@ Group Models - Entity + Presentation Path .gitkeep @@ -329,18 +341,6 @@ Group Resources - Resources/Strings/.gitkeep - - Group - - Resources - Strings - - Path - .gitkeep - TargetIndices - - Resources/Images/.gitkeep Group diff --git a/HandsApp iOS App Template.xctemplate/appcenter-post-clone.sh b/HandsApp iOS App.xctemplate/appcenter-post-clone.sh similarity index 100% rename from HandsApp iOS App Template.xctemplate/appcenter-post-clone.sh rename to HandsApp iOS App.xctemplate/appcenter-post-clone.sh diff --git a/install_empty_swift_file_template.sh b/install_empty_swift_file_template.sh index 0aa43f9..a9f1c42 100755 --- a/install_empty_swift_file_template.sh +++ b/install_empty_swift_file_template.sh @@ -13,7 +13,7 @@ if [ ! -d "$TEMPLATE_DIR" ]; then fi if [ -d "$TEMPLATE_DIR/$TEMPLATE_NAME" ]; then - echo "Delete previously created directory for the templates..." + echo "Delete previously created templates..." rm -rf "$TEMPLATE_DIR/$TEMPLATE_NAME" echo "Deleted $TEMPLATE_DIR/$TEMPLATE_NAME" fi diff --git a/install_handsapp_ios_app_template.sh b/install_handsapp_ios_app_template.sh index a525735..fd42d70 100755 --- a/install_handsapp_ios_app_template.sh +++ b/install_handsapp_ios_app_template.sh @@ -4,7 +4,7 @@ set -o errexit set -o errtrace TEMPLATE_DIR=${HOME}/"Library/Developer/Xcode/Templates/Project Templates/HandsApp" -TEMPLATE_NAME="HandsApp iOS App Template.xctemplate" +TEMPLATE_NAME="HandsApp iOS App.xctemplate" if [ ! -d "$TEMPLATE_DIR" ]; then echo "Didn't find a directory for the templates, so creating it..." @@ -13,7 +13,7 @@ if [ ! -d "$TEMPLATE_DIR" ]; then fi if [ -d "$TEMPLATE_DIR/$TEMPLATE_NAME" ]; then - echo "Delete previously created directory for the templates..." + echo "Delete previously created templates..." rm -rf "$TEMPLATE_DIR/$TEMPLATE_NAME" echo "Deleted $TEMPLATE_DIR/$TEMPLATE_NAME" fi diff --git a/install_handsapp_network_ios_app_template.sh b/install_handsapp_network_ios_app_template.sh new file mode 100755 index 0000000..a6650c0 --- /dev/null +++ b/install_handsapp_network_ios_app_template.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash + +set -o errexit +set -o errtrace + +TEMPLATE_DIR=${HOME}/"Library/Developer/Xcode/Templates/Project Templates/HandsApp" +PARENT_TEMPLATE_NAME="HandsApp iOS App.xctemplate" +TEMPLATE_NAME="HandsApp Network iOS App.xctemplate" + +if [ ! -d "$TEMPLATE_DIR" ]; then + echo "Didn't find a directory for the templates, so creating it..." + mkdir -p "${TEMPLATE_DIR}" + echo "Created $TEMPLATE_DIR" +fi + +if [ -d "$TEMPLATE_DIR/$TEMPLATE_NAME" ]; then + echo "Delete previously created templates..." + rm -rf "$TEMPLATE_DIR/$TEMPLATE_NAME" + echo "Deleted $TEMPLATE_DIR/$TEMPLATE_NAME" +fi + +if [ -d "$TEMPLATE_DIR/$PARENT_TEMPLATE_NAME" ]; then + echo "Delete previously created templates..." + rm -rf "$TEMPLATE_DIR/$PARENT_TEMPLATE_NAME" + echo "Deleted $TEMPLATE_DIR/$PARENT_TEMPLATE_NAME" +fi + +echo "Copying template files..." +cp -rf "./$PARENT_TEMPLATE_NAME" "$TEMPLATE_DIR" +cp -rf "./$TEMPLATE_NAME" "$TEMPLATE_DIR" + +echo "Done." From db9068cf637e3124d3caa99576415e98419c8341 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=9A=D1=80=D0=B0?= =?UTF-8?q?=D1=81=D0=B0=D0=B2=D0=B8=D0=BD?= <6nike6@bk.ru> Date: Thu, 6 Feb 2020 18:03:46 +0300 Subject: [PATCH 30/30] add updated podfile and .strings --- HandsApp Network iOS App.xctemplate/Podfile | 2 +- .../TemplateInfo.plist | 60 +++++++++++++++++++ .../TemplateInfo.plist | 6 +- 3 files changed, 63 insertions(+), 5 deletions(-) diff --git a/HandsApp Network iOS App.xctemplate/Podfile b/HandsApp Network iOS App.xctemplate/Podfile index 3ab9dcf..15c6d85 100644 --- a/HandsApp Network iOS App.xctemplate/Podfile +++ b/HandsApp Network iOS App.xctemplate/Podfile @@ -9,7 +9,7 @@ def appcenter pod 'AppCenter/Crashes' end -target 'TestNetworkTemplate' do +target '___PACKAGENAME___' do # Code Tools pod 'R.swift' pod 'SwiftFormat/CLI' diff --git a/HandsApp Network iOS App.xctemplate/TemplateInfo.plist b/HandsApp Network iOS App.xctemplate/TemplateInfo.plist index 65dda56..ebf0a14 100644 --- a/HandsApp Network iOS App.xctemplate/TemplateInfo.plist +++ b/HandsApp Network iOS App.xctemplate/TemplateInfo.plist @@ -18,6 +18,8 @@ 1 Nodes + ../Podfile + Resources/Strings/Localizable.strings Resources/Constants/AppDefaults.swift Resources/Constants/KeychainKeys.swift Library/Error Handling/ErrorHandler.swift @@ -29,9 +31,29 @@ Services/Network/Errors/HTTPNetworkError.swift Services/Network/Errors/NetworkReachabilityError.swift Services/Network/ReachabilityManager.swift + Models/Network/Responses/.gitkeep + Models/Network/Requests/.gitkeep + Models/Mapping/.gitkeep Definitions + ../Podfile + + Path + Podfile + Group + Non-iOS Resources + + Resources/Strings/Localizable.strings + + Path + Localizable.strings + Group + + Resources + Strings + + Resources/Constants/AppDefaults.swift Group @@ -144,6 +166,44 @@ Path ReachabilityManager.swift + Models/Network/Requests/.gitkeep + + Group + + Models + Network + Requests + + Path + .gitkeep + TargetIndices + + + Models/Network/Responses/.gitkeep + + Group + + Models + Network + Responses + + Path + .gitkeep + TargetIndices + + + Models/Mapping/.gitkeep + + Group + + Models + Mapping + + Path + .gitkeep + TargetIndices + + diff --git a/HandsApp iOS App.xctemplate/TemplateInfo.plist b/HandsApp iOS App.xctemplate/TemplateInfo.plist index 7ef2c71..c84bbc4 100644 --- a/HandsApp iOS App.xctemplate/TemplateInfo.plist +++ b/HandsApp iOS App.xctemplate/TemplateInfo.plist @@ -155,7 +155,7 @@ Resources/Images/.gitkeep Resources/Constants/ApiKeys.swift Resources/Fonts/.gitkeep - Models/.gitkeep + Models/Presentation/.gitkeep Library/Base Classes/.gitkeep Library/Utils/.gitkeep Library/Extensions/.gitkeep @@ -252,8 +252,6 @@ Resources/Strings/Localizable.strings - TargetIndices - Path Localizable.strings Group @@ -322,7 +320,7 @@ TargetIndices - Models/.gitkeep + Models/Presentation/.gitkeep Group