git.iko.soy/dashared/GDproject
on master help sign in
improved navigation using coordinators. improved card in channels. needs modifications
commitb9768d66c5e77a0697b638118238c146c803c192 authorDarya Rednikina <rednikina.com@yandex.ru> dateTue 23 Apr 2019, 06:58 (7 years ago) parent1520ef7
10 files changed+247−119
Cartfile+3−4 GDproject.xcodeproj/project.pbxproj+68−76 GDproject.xcodeproj/xcshareddata/xcschemes/GDproject.xcscheme+2−2 GDproject/Base.lproj/Main.storyboard+97−1 GDproject/Controller/ News and channels/AnonimousChannelController.swift+18 GDproject/Controller/ News and channels/ChannelListController.swift+11−12 GDproject/Controller/ News and channels/NewPostViewController.swift+12−12 GDproject/Controller/Coordinators/ChannelsCoordinator.swift+24−3 GDproject/Controller/Log In/LogInViewController.swift+2−2 GDproject/Simple model/Model.swift+10−7
Cartfile+3−4
@@ -2,8 +2,7 @@ github "robb/Cartography"
22github "ivanbruel/MarkdownKit"
33github "roberthein/TinyConstraints"
44github "macteo/Marklight"
5−github "Alamofire/Alamofire" "5.0.0-beta.2"
6−github "whitesmith/WSTagsField"
7−github "ReactiveCocoa/ReactiveCocoa" ~> 8.0
5+github "Alamofire/Alamofire" "5.0.0-beta.5"
86github "52inc/Pulley"
9−github "HeroTransitions/Hero"
7+github "HeroTransitions/Hero"
8+github "ReactiveCocoa/ReactiveCocoa" "1c089a8"
GDproject.xcodeproj/project.pbxproj+68−76
@@ -8,13 +8,10 @@
88
99/* Begin PBXBuildFile section */
1010 1210A0BB223940310080686D /* SimplifiedChannelsList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1210A0BA223940310080686D /* SimplifiedChannelsList.swift */; };
11− 123AD0E3223C1C3900326173 /* WSTagsField.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 123AD0E2223C1C3900326173 /* WSTagsField.framework */; };
12− 123AD0E5223C1C4300326173 /* WSTagsField.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 123AD0E2223C1C3900326173 /* WSTagsField.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
11+ 121A8972226B1EAC005EE599 /* AnonimousChannelController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 121A8971226B1EAC005EE599 /* AnonimousChannelController.swift */; };
1312 123E37A5221F1B3200F6E42A /* LogInViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 123E37A4221F1B3200F6E42A /* LogInViewController.swift */; };
1413 123E37A7221F1DD700F6E42A /* MainController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 123E37A6221F1DD700F6E42A /* MainController.swift */; };
1514 124CC7032221C00C009DF531 /* Model.swift in Sources */ = {isa = PBXBuildFile; fileRef = 124CC7022221C00C009DF531 /* Model.swift */; };
16− 124CC7052221C2BB009DF531 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 124CC7042221C2BA009DF531 /* Alamofire.framework */; };
17− 124CC7072221C2C3009DF531 /* Alamofire.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 124CC7042221C2BA009DF531 /* Alamofire.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
1815 125BD57D22171D2A008A3575 /* ProfileViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 125BD57C22171D2A008A3575 /* ProfileViewController.swift */; };
1916 125BD57F22171D73008A3575 /* Extentions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 125BD57E22171D73008A3575 /* Extentions.swift */; };
2017 125BD5812217314A008A3575 /* NewsVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 125BD5802217314A008A3575 /* NewsVC.swift */; };
@@ -22,8 +19,6 @@
2219 1291BE2D2221312D009D3F23 /* ChannelsCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1291BE2C2221312C009D3F23 /* ChannelsCoordinator.swift */; };
2320 1291BE342221569B009D3F23 /* TabbarCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1291BE332221569B009D3F23 /* TabbarCoordinator.swift */; };
2421 1291BE3622218DBF009D3F23 /* LogInCoordinator1.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1291BE3522218DBF009D3F23 /* LogInCoordinator1.swift */; };
25− 12924BD6224401D4003813B9 /* Hero.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12924BD5224401D4003813B9 /* Hero.framework */; };
26− 12924BD8224401DC003813B9 /* Hero.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 12924BD5224401D4003813B9 /* Hero.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
2722 12BA4B9B224101A400DF93D7 /* ApplicationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12BA4B9A224101A400DF93D7 /* ApplicationCoordinator.swift */; };
2823 12BA4B9D224101E700DF93D7 /* BaseCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12BA4B9C224101E700DF93D7 /* BaseCoordinator.swift */; };
2924 12BA4B9F224102B700DF93D7 /* LogInCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12BA4B9E224102B700DF93D7 /* LogInCoordinator.swift */; };
@@ -40,54 +35,54 @@
4035 12E36DA1221424EA006FCDD7 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 12E36D9F221424EA006FCDD7 /* Main.storyboard */; };
4136 12E36DA3221424ED006FCDD7 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 12E36DA2221424ED006FCDD7 /* Assets.xcassets */; };
4237 12E36DA6221424ED006FCDD7 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 12E36DA4221424ED006FCDD7 /* LaunchScreen.storyboard */; };
43− 12E36DAF22143D40006FCDD7 /* Cartography.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12E36DAE22143D40006FCDD7 /* Cartography.framework */; };
44− 12E36DB322143D4E006FCDD7 /* Marklight.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12E36DB222143D4E006FCDD7 /* Marklight.framework */; };
45− 12E36DB522143D54006FCDD7 /* TinyConstraints.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12E36DB422143D54006FCDD7 /* TinyConstraints.framework */; };
4638 12E36DB72214400A006FCDD7 /* Post.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12E36DB62214400A006FCDD7 /* Post.swift */; };
4739 12E36DB922144016006FCDD7 /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12E36DB822144016006FCDD7 /* User.swift */; };
48− 12E36DBD221441D5006FCDD7 /* TinyConstraints.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 12E36DB422143D54006FCDD7 /* TinyConstraints.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
49− 12E36DC0221441DB006FCDD7 /* Marklight.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 12E36DB222143D4E006FCDD7 /* Marklight.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
50− 12E36DC2221441E1006FCDD7 /* MarkdownKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 12E36DB022143D47006FCDD7 /* MarkdownKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
51− 12E36DC4221441EA006FCDD7 /* Cartography.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 12E36DAE22143D40006FCDD7 /* Cartography.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
5240 12E36DCA22144635006FCDD7 /* NewPostViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12E36DC922144635006FCDD7 /* NewPostViewController.swift */; };
5341 12E36DCC22144725006FCDD7 /* PostViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12E36DCB22144725006FCDD7 /* PostViewCell.swift */; };
5442 12E36DCE22144756006FCDD7 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12E36DCD22144756006FCDD7 /* Constants.swift */; };
5543 12E36DD122148122006FCDD7 /* FullPostController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12E36DD022148122006FCDD7 /* FullPostController.swift */; };
5644 12E36DD522156559006FCDD7 /* MyStackView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12E36DD422156559006FCDD7 /* MyStackView.swift */; };
57− 12E36DDB221594B1006FCDD7 /* MarkdownKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12E36DB022143D47006FCDD7 /* MarkdownKit.framework */; };
5845 12F3D6B0224106F700A69214 /* TabbarController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12F3D6AF224106F700A69214 /* TabbarController.swift */; };
5946 12F3D6B22241097B00A69214 /* ProfileCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12F3D6B12241097B00A69214 /* ProfileCoordinator.swift */; };
60− 12F3D6B4224112D600A69214 /* ReactiveMapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12F3D6B3224112D600A69214 /* ReactiveMapKit.framework */; };
61− 12F3D6B6224112E100A69214 /* ReactiveSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12F3D6B5224112E000A69214 /* ReactiveSwift.framework */; };
62− 12F3D6B8224112E900A69214 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12F3D6B7224112E800A69214 /* Result.framework */; };
63− 12F3D6BB224112FD00A69214 /* ReactiveCocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12F3D6B9224112F500A69214 /* ReactiveCocoa.framework */; };
64− 12F3D6BC224112FD00A69214 /* ReactiveCocoa.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 12F3D6B9224112F500A69214 /* ReactiveCocoa.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
65− 12F3D6BE2241130000A69214 /* Result.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 12F3D6B7224112E800A69214 /* Result.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
66− 12F3D6C02241130200A69214 /* ReactiveSwift.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 12F3D6B5224112E000A69214 /* ReactiveSwift.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
67− 12F3D6C22241130400A69214 /* ReactiveMapKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 12F3D6B3224112D600A69214 /* ReactiveMapKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
68− 12F3D6C92242645800A69214 /* Pulley.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12F3D6C72242644D00A69214 /* Pulley.framework */; };
69− 12F3D6CA2242645800A69214 /* Pulley.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 12F3D6C72242644D00A69214 /* Pulley.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
47+ 12FDAC7C226B5E2900995B4E /* Marklight.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12FDAC75226B5E2800995B4E /* Marklight.framework */; };
48+ 12FDAC7D226B5E2900995B4E /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12FDAC76226B5E2800995B4E /* Result.framework */; };
49+ 12FDAC7E226B5E2900995B4E /* Cartography.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12FDAC77226B5E2900995B4E /* Cartography.framework */; };
50+ 12FDAC81226B5E2900995B4E /* MarkdownKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12FDAC7A226B5E2900995B4E /* MarkdownKit.framework */; };
51+ 12FDAC84226B5E3700995B4E /* Alamofire.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 12FDAC79226B5E2900995B4E /* Alamofire.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
52+ 12FDAC88226B5E4800995B4E /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12FDAC79226B5E2900995B4E /* Alamofire.framework */; };
53+ 12FDAC8A226B5E4B00995B4E /* Cartography.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 12FDAC77226B5E2900995B4E /* Cartography.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
54+ 12FDAC8B226B5E4E00995B4E /* Hero.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12FDAC78226B5E2900995B4E /* Hero.framework */; };
55+ 12FDAC8C226B5E4E00995B4E /* Hero.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 12FDAC78226B5E2900995B4E /* Hero.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
56+ 12FDAC8E226B5E5000995B4E /* MarkdownKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 12FDAC7A226B5E2900995B4E /* MarkdownKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
57+ 12FDAC90226B5E5200995B4E /* Marklight.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 12FDAC75226B5E2800995B4E /* Marklight.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
58+ 12FDAC91226B5E5400995B4E /* Pulley.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12FDAC7B226B5E2900995B4E /* Pulley.framework */; };
59+ 12FDAC92226B5E5400995B4E /* Pulley.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 12FDAC7B226B5E2900995B4E /* Pulley.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
60+ 12FDAC94226B5E5600995B4E /* Result.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 12FDAC76226B5E2800995B4E /* Result.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
61+ 12FDAC96226B61C400995B4E /* TinyConstraints.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12FDAC95226B61C400995B4E /* TinyConstraints.framework */; };
62+ 12FDAC98226B61CB00995B4E /* TinyConstraints.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 12FDAC95226B61C400995B4E /* TinyConstraints.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
63+ 12FDAC9B226B652C00995B4E /* ReactiveSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12FDAC99226B652400995B4E /* ReactiveSwift.framework */; };
64+ 12FDAC9C226B652C00995B4E /* ReactiveSwift.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 12FDAC99226B652400995B4E /* ReactiveSwift.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
65+ 12FDAC9F226B9E7C00995B4E /* ReactiveCocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12FDAC9D226B9E7600995B4E /* ReactiveCocoa.framework */; };
66+ 12FDACA0226B9E7C00995B4E /* ReactiveCocoa.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 12FDAC9D226B9E7600995B4E /* ReactiveCocoa.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
7067/* End PBXBuildFile section */
7168
7269/* Begin PBXCopyFilesBuildPhase section */
73− 12E36DBE221441D5006FCDD7 /* Embed Frameworks */ = {
70+ 12FDAC85226B5E3700995B4E /* Embed Frameworks */ = {
7471 isa = PBXCopyFilesBuildPhase;
7572 buildActionMask = 2147483647;
7673 dstPath = "";
7774 dstSubfolderSpec = 10;
7875 files = (
79− 12E36DC0221441DB006FCDD7 /* Marklight.framework in Embed Frameworks */,
80− 12F3D6C22241130400A69214 /* ReactiveMapKit.framework in Embed Frameworks */,
81− 124CC7072221C2C3009DF531 /* Alamofire.framework in Embed Frameworks */,
82− 12E36DC4221441EA006FCDD7 /* Cartography.framework in Embed Frameworks */,
83− 12F3D6BE2241130000A69214 /* Result.framework in Embed Frameworks */,
84− 12E36DBD221441D5006FCDD7 /* TinyConstraints.framework in Embed Frameworks */,
85− 12F3D6C02241130200A69214 /* ReactiveSwift.framework in Embed Frameworks */,
86− 12F3D6BC224112FD00A69214 /* ReactiveCocoa.framework in Embed Frameworks */,
87− 12924BD8224401DC003813B9 /* Hero.framework in Embed Frameworks */,
88− 123AD0E5223C1C4300326173 /* WSTagsField.framework in Embed Frameworks */,
89− 12F3D6CA2242645800A69214 /* Pulley.framework in Embed Frameworks */,
90− 12E36DC2221441E1006FCDD7 /* MarkdownKit.framework in Embed Frameworks */,
76+ 12FDAC8E226B5E5000995B4E /* MarkdownKit.framework in Embed Frameworks */,
77+ 12FDAC98226B61CB00995B4E /* TinyConstraints.framework in Embed Frameworks */,
78+ 12FDAC94226B5E5600995B4E /* Result.framework in Embed Frameworks */,
79+ 12FDAC84226B5E3700995B4E /* Alamofire.framework in Embed Frameworks */,
80+ 12FDAC8A226B5E4B00995B4E /* Cartography.framework in Embed Frameworks */,
81+ 12FDAC9C226B652C00995B4E /* ReactiveSwift.framework in Embed Frameworks */,
82+ 12FDAC92226B5E5400995B4E /* Pulley.framework in Embed Frameworks */,
83+ 12FDAC8C226B5E4E00995B4E /* Hero.framework in Embed Frameworks */,
84+ 12FDAC90226B5E5200995B4E /* Marklight.framework in Embed Frameworks */,
85+ 12FDACA0226B9E7C00995B4E /* ReactiveCocoa.framework in Embed Frameworks */,
9186 );
9287 name = "Embed Frameworks";
9388 runOnlyForDeploymentPostprocessing = 0;
@@ -96,11 +91,10 @@
9691
9792/* Begin PBXFileReference section */
9893 1210A0BA223940310080686D /* SimplifiedChannelsList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimplifiedChannelsList.swift; sourceTree = "<group>"; };
99− 123AD0E2223C1C3900326173 /* WSTagsField.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WSTagsField.framework; path = Carthage/Build/iOS/WSTagsField.framework; sourceTree = "<group>"; };
94+ 121A8971226B1EAC005EE599 /* AnonimousChannelController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnonimousChannelController.swift; sourceTree = "<group>"; };
10095 123E37A4221F1B3200F6E42A /* LogInViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogInViewController.swift; sourceTree = "<group>"; };
10196 123E37A6221F1DD700F6E42A /* MainController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainController.swift; sourceTree = "<group>"; };
10297 124CC7022221C00C009DF531 /* Model.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Model.swift; sourceTree = "<group>"; };
103− 124CC7042221C2BA009DF531 /* Alamofire.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Alamofire.framework; path = Carthage/Build/iOS/Alamofire.framework; sourceTree = "<group>"; };
10498 125BD57C22171D2A008A3575 /* ProfileViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileViewController.swift; sourceTree = "<group>"; };
10599 125BD57E22171D73008A3575 /* Extentions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Extentions.swift; sourceTree = "<group>"; };
106100 125BD5802217314A008A3575 /* NewsVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewsVC.swift; sourceTree = "<group>"; };
@@ -108,7 +102,6 @@
108102 1291BE2C2221312C009D3F23 /* ChannelsCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelsCoordinator.swift; sourceTree = "<group>"; };
109103 1291BE332221569B009D3F23 /* TabbarCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabbarCoordinator.swift; sourceTree = "<group>"; };
110104 1291BE3522218DBF009D3F23 /* LogInCoordinator1.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogInCoordinator1.swift; sourceTree = "<group>"; };
111− 12924BD5224401D4003813B9 /* Hero.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Hero.framework; path = Carthage/Build/iOS/Hero.framework; sourceTree = "<group>"; };
112105 12BA4B9A224101A400DF93D7 /* ApplicationCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApplicationCoordinator.swift; sourceTree = "<group>"; };
113106 12BA4B9C224101E700DF93D7 /* BaseCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaseCoordinator.swift; sourceTree = "<group>"; };
114107 12BA4B9E224102B700DF93D7 /* LogInCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogInCoordinator.swift; sourceTree = "<group>"; };
@@ -127,10 +120,6 @@
127120 12E36DA2221424ED006FCDD7 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
128121 12E36DA5221424ED006FCDD7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
129122 12E36DA7221424ED006FCDD7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
130− 12E36DAE22143D40006FCDD7 /* Cartography.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cartography.framework; path = Carthage/Build/iOS/Cartography.framework; sourceTree = "<group>"; };
131− 12E36DB022143D47006FCDD7 /* MarkdownKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MarkdownKit.framework; path = Carthage/Build/iOS/MarkdownKit.framework; sourceTree = "<group>"; };
132− 12E36DB222143D4E006FCDD7 /* Marklight.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Marklight.framework; path = Carthage/Build/iOS/Marklight.framework; sourceTree = "<group>"; };
133− 12E36DB422143D54006FCDD7 /* TinyConstraints.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = TinyConstraints.framework; path = Carthage/Build/iOS/TinyConstraints.framework; sourceTree = "<group>"; };
134123 12E36DB62214400A006FCDD7 /* Post.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Post.swift; sourceTree = "<group>"; };
135124 12E36DB822144016006FCDD7 /* User.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = User.swift; sourceTree = "<group>"; };
136125 12E36DC922144635006FCDD7 /* NewPostViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPostViewController.swift; sourceTree = "<group>"; };
@@ -140,11 +129,16 @@
140129 12E36DD422156559006FCDD7 /* MyStackView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyStackView.swift; sourceTree = "<group>"; };
141130 12F3D6AF224106F700A69214 /* TabbarController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabbarController.swift; sourceTree = "<group>"; };
142131 12F3D6B12241097B00A69214 /* ProfileCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileCoordinator.swift; sourceTree = "<group>"; };
143− 12F3D6B3224112D600A69214 /* ReactiveMapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ReactiveMapKit.framework; path = Carthage/Build/iOS/ReactiveMapKit.framework; sourceTree = "<group>"; };
144− 12F3D6B5224112E000A69214 /* ReactiveSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ReactiveSwift.framework; path = Carthage/Build/iOS/ReactiveSwift.framework; sourceTree = "<group>"; };
145− 12F3D6B7224112E800A69214 /* Result.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Result.framework; path = Carthage/Build/iOS/Result.framework; sourceTree = "<group>"; };
146− 12F3D6B9224112F500A69214 /* ReactiveCocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ReactiveCocoa.framework; path = Carthage/Build/iOS/ReactiveCocoa.framework; sourceTree = "<group>"; };
147− 12F3D6C72242644D00A69214 /* Pulley.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Pulley.framework; path = Carthage/Build/iOS/Pulley.framework; sourceTree = "<group>"; };
132+ 12FDAC75226B5E2800995B4E /* Marklight.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Marklight.framework; path = Carthage/Build/iOS/Marklight.framework; sourceTree = "<group>"; };
133+ 12FDAC76226B5E2800995B4E /* Result.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Result.framework; path = Carthage/Build/iOS/Result.framework; sourceTree = "<group>"; };
134+ 12FDAC77226B5E2900995B4E /* Cartography.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cartography.framework; path = Carthage/Build/iOS/Cartography.framework; sourceTree = "<group>"; };
135+ 12FDAC78226B5E2900995B4E /* Hero.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Hero.framework; path = Carthage/Build/iOS/Hero.framework; sourceTree = "<group>"; };
136+ 12FDAC79226B5E2900995B4E /* Alamofire.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Alamofire.framework; path = Carthage/Build/iOS/Alamofire.framework; sourceTree = "<group>"; };
137+ 12FDAC7A226B5E2900995B4E /* MarkdownKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MarkdownKit.framework; path = Carthage/Build/iOS/MarkdownKit.framework; sourceTree = "<group>"; };
138+ 12FDAC7B226B5E2900995B4E /* Pulley.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Pulley.framework; path = Carthage/Build/iOS/Pulley.framework; sourceTree = "<group>"; };
139+ 12FDAC95226B61C400995B4E /* TinyConstraints.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = TinyConstraints.framework; path = Carthage/Build/iOS/TinyConstraints.framework; sourceTree = "<group>"; };
140+ 12FDAC99226B652400995B4E /* ReactiveSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ReactiveSwift.framework; path = Carthage/Build/iOS/ReactiveSwift.framework; sourceTree = "<group>"; };
141+ 12FDAC9D226B9E7600995B4E /* ReactiveCocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ReactiveCocoa.framework; path = Carthage/Build/iOS/ReactiveCocoa.framework; sourceTree = "<group>"; };
148142/* End PBXFileReference section */
149143
150144/* Begin PBXFrameworksBuildPhase section */
@@ -152,18 +146,16 @@
152146 isa = PBXFrameworksBuildPhase;
153147 buildActionMask = 2147483647;
154148 files = (
155− 12E36DB522143D54006FCDD7 /* TinyConstraints.framework in Frameworks */,
156− 12F3D6B4224112D600A69214 /* ReactiveMapKit.framework in Frameworks */,
157− 124CC7052221C2BB009DF531 /* Alamofire.framework in Frameworks */,
158− 12F3D6C92242645800A69214 /* Pulley.framework in Frameworks */,
159− 12F3D6BB224112FD00A69214 /* ReactiveCocoa.framework in Frameworks */,
160− 12F3D6B8224112E900A69214 /* Result.framework in Frameworks */,
161− 12F3D6B6224112E100A69214 /* ReactiveSwift.framework in Frameworks */,
162− 12E36DDB221594B1006FCDD7 /* MarkdownKit.framework in Frameworks */,
163− 12924BD6224401D4003813B9 /* Hero.framework in Frameworks */,
164− 12E36DAF22143D40006FCDD7 /* Cartography.framework in Frameworks */,
165− 123AD0E3223C1C3900326173 /* WSTagsField.framework in Frameworks */,
166− 12E36DB322143D4E006FCDD7 /* Marklight.framework in Frameworks */,
149+ 12FDAC7C226B5E2900995B4E /* Marklight.framework in Frameworks */,
150+ 12FDAC96226B61C400995B4E /* TinyConstraints.framework in Frameworks */,
151+ 12FDAC91226B5E5400995B4E /* Pulley.framework in Frameworks */,
152+ 12FDAC9F226B9E7C00995B4E /* ReactiveCocoa.framework in Frameworks */,
153+ 12FDAC88226B5E4800995B4E /* Alamofire.framework in Frameworks */,
154+ 12FDAC81226B5E2900995B4E /* MarkdownKit.framework in Frameworks */,
155+ 12FDAC7D226B5E2900995B4E /* Result.framework in Frameworks */,
156+ 12FDAC9B226B652C00995B4E /* ReactiveSwift.framework in Frameworks */,
157+ 12FDAC7E226B5E2900995B4E /* Cartography.framework in Frameworks */,
158+ 12FDAC8B226B5E4E00995B4E /* Hero.framework in Frameworks */,
167159 );
168160 runOnlyForDeploymentPostprocessing = 0;
169161 };
@@ -209,18 +201,16 @@
209201 12E36D8F221424EA006FCDD7 = {
210202 isa = PBXGroup;
211203 children = (
212− 12924BD5224401D4003813B9 /* Hero.framework */,
213− 12F3D6C72242644D00A69214 /* Pulley.framework */,
214− 12F3D6B9224112F500A69214 /* ReactiveCocoa.framework */,
215− 12F3D6B7224112E800A69214 /* Result.framework */,
216− 12F3D6B5224112E000A69214 /* ReactiveSwift.framework */,
217− 12F3D6B3224112D600A69214 /* ReactiveMapKit.framework */,
218− 123AD0E2223C1C3900326173 /* WSTagsField.framework */,
219− 124CC7042221C2BA009DF531 /* Alamofire.framework */,
220− 12E36DB422143D54006FCDD7 /* TinyConstraints.framework */,
221− 12E36DB222143D4E006FCDD7 /* Marklight.framework */,
222− 12E36DB022143D47006FCDD7 /* MarkdownKit.framework */,
223− 12E36DAE22143D40006FCDD7 /* Cartography.framework */,
204+ 12FDAC9D226B9E7600995B4E /* ReactiveCocoa.framework */,
205+ 12FDAC99226B652400995B4E /* ReactiveSwift.framework */,
206+ 12FDAC95226B61C400995B4E /* TinyConstraints.framework */,
207+ 12FDAC79226B5E2900995B4E /* Alamofire.framework */,
208+ 12FDAC77226B5E2900995B4E /* Cartography.framework */,
209+ 12FDAC78226B5E2900995B4E /* Hero.framework */,
210+ 12FDAC7A226B5E2900995B4E /* MarkdownKit.framework */,
211+ 12FDAC75226B5E2800995B4E /* Marklight.framework */,
212+ 12FDAC7B226B5E2900995B4E /* Pulley.framework */,
213+ 12FDAC76226B5E2800995B4E /* Result.framework */,
224214 12E36D9A221424EA006FCDD7 /* GDproject */,
225215 12E36D99221424EA006FCDD7 /* Products */,
226216 12E36DDA221594B1006FCDD7 /* Frameworks */,
@@ -288,6 +278,7 @@
288278 isa = PBXGroup;
289279 children = (
290280 12D7D134221C42B700B35452 /* ChannelController.swift */,
281+ 121A8971226B1EAC005EE599 /* AnonimousChannelController.swift */,
291282 12D7D132221C321600B35452 /* ChannelListController.swift */,
292283 1210A0BA223940310080686D /* SimplifiedChannelsList.swift */,
293284 12E36DC922144635006FCDD7 /* NewPostViewController.swift */,
@@ -316,7 +307,7 @@
316307 12E36D94221424EA006FCDD7 /* Sources */,
317308 12E36D95221424EA006FCDD7 /* Frameworks */,
318309 12E36D96221424EA006FCDD7 /* Resources */,
319− 12E36DBE221441D5006FCDD7 /* Embed Frameworks */,
310+ 12FDAC85226B5E3700995B4E /* Embed Frameworks */,
320311 );
321312 buildRules = (
322313 );
@@ -393,6 +384,7 @@
393384 125BD5812217314A008A3575 /* NewsVC.swift in Sources */,
394385 12E36DB72214400A006FCDD7 /* Post.swift in Sources */,
395386 12DB7FDF221877160096878E /* InviteViewController.swift in Sources */,
387+ 121A8972226B1EAC005EE599 /* AnonimousChannelController.swift in Sources */,
396388 12E36DCA22144635006FCDD7 /* NewPostViewController.swift in Sources */,
397389 12E36D9E221424EA006FCDD7 /* NewsController.swift in Sources */,
398390 12E36DCC22144725006FCDD7 /* PostViewCell.swift in Sources */,
@@ -576,7 +568,7 @@
576568 PRODUCT_BUNDLE_IDENTIFIER = rednikina.com.drHSE.GDproject.sos;
577569 PRODUCT_NAME = "$(TARGET_NAME)";
578570 PROVISIONING_PROFILE_SPECIFIER = "";
579− SWIFT_VERSION = 4.2;
571+ SWIFT_VERSION = 5.0;
580572 TARGETED_DEVICE_FAMILY = "1,2";
581573 };
582574 name = Debug;
@@ -600,7 +592,7 @@
600592 PRODUCT_BUNDLE_IDENTIFIER = rednikina.com.drHSE.GDproject.sos;
601593 PRODUCT_NAME = "$(TARGET_NAME)";
602594 PROVISIONING_PROFILE_SPECIFIER = "";
603− SWIFT_VERSION = 4.2;
595+ SWIFT_VERSION = 5.0;
604596 TARGETED_DEVICE_FAMILY = "1,2";
605597 };
606598 name = Release;
GDproject.xcodeproj/xcshareddata/xcschemes/GDproject.xcscheme+2−2
@@ -43,8 +43,8 @@
4343 </TestAction>
4444 <LaunchAction
4545 buildConfiguration = "Debug"
46− selectedDebuggerIdentifier = ""
47− selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
46+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
47+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
4848 launchStyle = "0"
4949 useCustomWorkingDirectory = "NO"
5050 ignoresPersistentStateOnLaunch = "NO"
GDproject/Base.lproj/Main.storyboard+97−1
@@ -354,7 +354,7 @@
354354 </viewController>
355355 <placeholder placeholderIdentifier="IBFirstResponder" id="fzv-8a-15V" userLabel="First Responder" sceneMemberID="firstResponder"/>
356356 </objects>
357− <point key="canvasLocation" x="3560.8000000000002" y="-597.75112443778119"/>
357+ <point key="canvasLocation" x="3577" y="-598"/>
358358 </scene>
359359 <!--New Post View Controller-->
360360 <scene sceneID="TVK-xu-UdJ">
@@ -506,6 +506,45 @@
506506 </objects>
507507 <point key="canvasLocation" x="-466" y="641"/>
508508 </scene>
509+ <!--Pulley View Controller-->
510+ <scene sceneID="UoF-Qk-BM8">
511+ <objects>
512+ <viewController id="2Yu-1o-yft" customClass="PulleyViewController" customModule="Pulley" sceneMemberID="viewController">
513+ <view key="view" contentMode="scaleToFill" id="3et-u3-dSP">
514+ <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
515+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
516+ <subviews>
517+ <containerView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="za7-bL-mv7">
518+ <rect key="frame" x="0.0" y="20" width="375" height="323.5"/>
519+ <connections>
520+ <segue destination="ulF-DZ-X8U" kind="embed" id="AAL-by-ugl"/>
521+ </connections>
522+ </containerView>
523+ <containerView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="iWE-c6-fco">
524+ <rect key="frame" x="0.0" y="343.5" width="375" height="323.5"/>
525+ <connections>
526+ <segue destination="WeI-zO-7Eh" kind="embed" id="JkK-vq-eWP"/>
527+ </connections>
528+ </containerView>
529+ </subviews>
530+ <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
531+ <constraints>
532+ <constraint firstItem="iWE-c6-fco" firstAttribute="leading" secondItem="3L3-Xf-lna" secondAttribute="leading" id="Exq-4M-b4b"/>
533+ <constraint firstItem="3L3-Xf-lna" firstAttribute="trailing" secondItem="iWE-c6-fco" secondAttribute="trailing" id="FCK-0g-Hkx"/>
534+ <constraint firstItem="3L3-Xf-lna" firstAttribute="trailing" secondItem="za7-bL-mv7" secondAttribute="trailing" id="HQc-5t-Y2J"/>
535+ <constraint firstItem="iWE-c6-fco" firstAttribute="height" secondItem="za7-bL-mv7" secondAttribute="height" id="Lnu-CN-lkp"/>
536+ <constraint firstItem="za7-bL-mv7" firstAttribute="top" secondItem="3L3-Xf-lna" secondAttribute="top" id="XlM-4t-IZF"/>
537+ <constraint firstItem="za7-bL-mv7" firstAttribute="leading" secondItem="3L3-Xf-lna" secondAttribute="leading" id="gft-5C-vKC"/>
538+ <constraint firstItem="3L3-Xf-lna" firstAttribute="bottom" secondItem="iWE-c6-fco" secondAttribute="bottom" id="ied-zS-PJe"/>
539+ <constraint firstItem="iWE-c6-fco" firstAttribute="top" secondItem="za7-bL-mv7" secondAttribute="bottom" id="wJe-FE-o3y"/>
540+ </constraints>
541+ <viewLayoutGuide key="safeArea" id="3L3-Xf-lna"/>
542+ </view>
543+ </viewController>
544+ <placeholder placeholderIdentifier="IBFirstResponder" id="LNf-NC-tIC" userLabel="First Responder" sceneMemberID="firstResponder"/>
545+ </objects>
546+ <point key="canvasLocation" x="6568.8000000000002" y="-536.58170914542734"/>
547+ </scene>
509548 <!--News Controller-->
510549 <scene sceneID="6SA-L8-PwW">
511550 <objects>
@@ -551,6 +590,63 @@
551590 </objects>
552591 <point key="canvasLocation" x="5888.8000000000002" y="999.40029985007504"/>
553592 </scene>
593+ <!--View Controller-->
594+ <scene sceneID="wC5-hU-UvA">
595+ <objects>
596+ <viewController storyboardIdentifier="DrawerContentViewController1" id="WeI-zO-7Eh" sceneMemberID="viewController">
597+ <view key="view" contentMode="scaleToFill" id="JLv-bg-XLk">
598+ <rect key="frame" x="0.0" y="0.0" width="375" height="323.5"/>
599+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
600+ <subviews>
601+ <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="zww-sy-694">
602+ <rect key="frame" x="162" y="9" width="51" height="7"/>
603+ <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
604+ <constraints>
605+ <constraint firstAttribute="height" constant="7" id="5CW-MN-dqc"/>
606+ <constraint firstAttribute="width" constant="51" id="RzS-Ug-nLj"/>
607+ </constraints>
608+ </view>
609+ </subviews>
610+ <constraints>
611+ <constraint firstAttribute="bottom" relation="greaterThanOrEqual" secondItem="zww-sy-694" secondAttribute="bottom" constant="293.5" id="YkN-uN-QpE"/>
612+ <constraint firstItem="zww-sy-694" firstAttribute="centerX" secondItem="JLv-bg-XLk" secondAttribute="centerX" id="drj-8r-0tX"/>
613+ <constraint firstItem="zww-sy-694" firstAttribute="top" secondItem="JLv-bg-XLk" secondAttribute="top" constant="9" id="qA5-6a-1F4"/>
614+ </constraints>
615+ </view>
616+ </viewController>
617+ <placeholder placeholderIdentifier="IBFirstResponder" id="2Qo-34-wZp" userLabel="First Responder" sceneMemberID="firstResponder"/>
618+ </objects>
619+ <point key="canvasLocation" x="7640.8000000000002" y="-336.43178410794604"/>
620+ </scene>
621+ <!--News Controller-->
622+ <scene sceneID="RDE-dJ-rKL">
623+ <objects>
624+ <viewController storyboardIdentifier="NewsController1" id="ulF-DZ-X8U" customClass="NewsController" customModule="GDproject" customModuleProvider="target" sceneMemberID="viewController">
625+ <view key="view" contentMode="scaleToFill" id="mOG-nL-CRD">
626+ <rect key="frame" x="0.0" y="0.0" width="375" height="323.5"/>
627+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
628+ <subviews>
629+ <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="FSV-Pu-wlS">
630+ <rect key="frame" x="0.0" y="0.0" width="375" height="323.5"/>
631+ <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
632+ </tableView>
633+ </subviews>
634+ <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
635+ <constraints>
636+ <constraint firstAttribute="trailing" secondItem="FSV-Pu-wlS" secondAttribute="trailing" id="8wp-yX-8TF"/>
637+ <constraint firstItem="FSV-Pu-wlS" firstAttribute="leading" secondItem="mOG-nL-CRD" secondAttribute="leading" id="Hah-NN-nNj"/>
638+ <constraint firstAttribute="bottom" secondItem="FSV-Pu-wlS" secondAttribute="bottom" id="PSp-HL-Xpi"/>
639+ <constraint firstItem="FSV-Pu-wlS" firstAttribute="top" secondItem="mOG-nL-CRD" secondAttribute="top" id="piA-Z5-euY"/>
640+ </constraints>
641+ </view>
642+ <connections>
643+ <outlet property="tableView" destination="FSV-Pu-wlS" id="Ti9-HQ-24K"/>
644+ </connections>
645+ </viewController>
646+ <placeholder placeholderIdentifier="IBFirstResponder" id="mMa-G9-Ygw" userLabel="First Responder" sceneMemberID="firstResponder"/>
647+ </objects>
648+ <point key="canvasLocation" x="7643" y="-796"/>
649+ </scene>
554650 </scenes>
555651 <resources>
556652 <image name="1" width="30" height="30"/>
GDproject/Controller/ News and channels/AnonimousChannelController.swiftnew file+18
@@ -0,0 +1,18 @@
1+//
2+// AnonimousChannelController.swift
3+// GDproject
4+//
5+// Created by cstore on 20/04/2019.
6+// Copyright © 2019 drHSE. All rights reserved.
7+//
8+
9+import UIKit
10+
11+class AnonimousChannelController: UITableViewController {
12+
13+ override func viewDidLoad() {
14+ super.viewDidLoad()
15+ }
16+
17+
18+}
GDproject/Controller/ News and channels/ChannelListController.swift+11−12
@@ -13,11 +13,16 @@ struct ChannelData{
1313 var subtitle = String()
1414}
1515
16+protocol ChannelListData: class {
17+ func reloadData (with channels: [Model.Channels])
18+}
19+
1620// TODO: make search controller availiable
1721class ChannelListController: UITableViewController {
1822
1923 // MARK: - Output -
2024 var onChannelSelected: ((Model.Channels) -> Void)?
25+ var onEditingModeBegins: ((Model.Channels, IndexPath)->Void)?
2126
2227 // MARK: - filter search controller
2328 var filteredDataSource = [Model.Channels]()
@@ -88,16 +93,14 @@ class ChannelListController: UITableViewController {
8893
8994 override func viewWillAppear(_ animated: Bool) {
9095 super.viewWillAppear(true)
91− askForUpdates()
96+ //askForUpdates()
97+ tabBarController?.tabBar.isHidden = false
9298 }
9399
94100 @objc func addChannel()
95101 {
96102 // editing mode is on automatically
97− let vc = storyboard?.instantiateViewController(withIdentifier: channelControllerId) as! ChannelController
98− vc.index = 1
99− vc.channel = Model.Channels(people: [], name: "Untitled", tags: [])
100− navigationController?.pushViewController(vc, animated: true)
103+ onEditingModeBegins?(Model.Channels(people: [], name: "Untitled", tags: []),IndexPath(row: 1, section: 0))
101104 }
102105
103106 static let generalChannel = Model.Channels(people: [], name: "General", tags: [])
@@ -141,15 +144,11 @@ class ChannelListController: UITableViewController {
141144
142145 override func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]?
143146 {
144−
145− let editButton = UITableViewRowAction(style: .normal, title: "Edit") { [weak self] (action, indexPath) in
146− let vc = self?.storyboard?.instantiateViewController(withIdentifier: channelControllerId) as! ChannelController
147− vc.index = indexPath.row
148− vc.channel = self?.dataSource[indexPath.row]
149− self?.navigationController?.pushViewController(vc, animated: true)
147+ let editButton = UITableViewRowAction(style: .normal, title: "Edit") { [unowned self] (rowAction, indexPath) in
148+ self.onEditingModeBegins?(self.dataSource[indexPath.row], indexPath)
150149 }
151− editButton.backgroundColor = #colorLiteral(red: 0.8039215803, green: 0.8039215803, blue: 0.8039215803, alpha: 1)
152150
151+ editButton.backgroundColor = #colorLiteral(red: 0.8039215803, green: 0.8039215803, blue: 0.8039215803, alpha: 1)
153152
154153 let deleteButton = UITableViewRowAction(style: .normal, title: "Delete") { [weak self] (action, indexPath) in
155154
GDproject/Controller/ News and channels/NewPostViewController.swift+12−12
@@ -10,7 +10,7 @@ import UIKit
1010import Cartography
1111import Marklight
1212import TinyConstraints
13−import WSTagsField
13+// import WSTagsField
1414
1515class NewPostViewController: UIViewController, UITextViewDelegate {
1616
@@ -18,7 +18,7 @@ class NewPostViewController: UIViewController, UITextViewDelegate {
1818
1919 @IBOutlet weak var viewForTags: UIView!
2020
21− fileprivate let tagsField = WSTagsField()
21+ // fileprivate let tagsField = WSTagsField()
2222 // Keep strong instance of the `NSTextStorage` subclass
2323 let textStorage = MarklightTextStorage()
2424
@@ -55,10 +55,10 @@ class NewPostViewController: UIViewController, UITextViewDelegate {
5555 setUpMD()
5656 setUpTextView()
5757 setUpAccessoryView()
58− setUpTagsView()
58+ //setUpTagsView()
5959 }
6060
61− func setUpTagsView(){
61+ /* func setUpTagsView(){
6262 tagsField.frame = viewForTags.bounds
6363 viewForTags.addSubview(tagsField)
6464
@@ -86,7 +86,7 @@ class NewPostViewController: UIViewController, UITextViewDelegate {
8686 tagsField.acceptTagOption = .space
8787
8888 textFieldEvents()
89− }
89+ }*/
9090
9191 override func viewWillAppear(_ animated: Bool) {
9292 super.viewWillAppear(animated)
@@ -94,7 +94,7 @@ class NewPostViewController: UIViewController, UITextViewDelegate {
9494 navigationController?.navigationBar.prefersLargeTitles = false
9595 navigationItem.title = "New post"
9696 textView.text = NewPostViewController.draft
97− tagsField.addTags(NewPostViewController.hashTagsDraft)
97+ // tagsField.addTags(NewPostViewController.hashTagsDraft)
9898
9999 }
100100
@@ -213,7 +213,7 @@ class NewPostViewController: UIViewController, UITextViewDelegate {
213213 var indexOfPost = 0
214214 // MARK:- new post
215215 @objc func newPost(){
216− Model.createAndPublish(body: [Model.Attachments(markdown: textView!.text)], tags: tagsField.tags.map { $0.text })
216+ Model.createAndPublish(body: [Model.Attachments(markdown: textView!.text)], tags: /*tagsField.tags.map { $0.text }*/ [])
217217 // adding row to uiTableView after adding new post
218218 // myProtocol?.addPost(post: p)
219219 moveBackToParentVC?()
@@ -228,7 +228,7 @@ class NewPostViewController: UIViewController, UITextViewDelegate {
228228 [weak self]
229229 _ in
230230 NewPostViewController.draft = self?.textView.text ?? ""
231− NewPostViewController.hashTagsDraft = self?.tagsField.tags.map { $0.text } ?? []
231+ NewPostViewController.hashTagsDraft = /*self?.tagsField.tags.map { $0.text } ??*/ []
232232 self?.moveBackToParentVC?()
233233 }
234234
@@ -269,7 +269,7 @@ class NewPostViewController: UIViewController, UITextViewDelegate {
269269 textView.scrollRectToVisible(rect, animated: animated)
270270 }
271271
272− fileprivate func textFieldEvents() {
272+ /*fileprivate func textFieldEvents() {
273273 tagsField.onDidAddTag = { _, _ in
274274 print("onDidAddTag")
275275 }
@@ -293,16 +293,16 @@ class NewPostViewController: UIViewController, UITextViewDelegate {
293293 tagsField.onDidUnselectTagView = { _, tagView in
294294 print("Unselect \(tagView)")
295295 }
296− }
296+ }*/
297297}
298298
299299
300300extension NewPostViewController: UITextFieldDelegate {
301301
302302 func textFieldShouldReturn(_ textField: UITextField) -> Bool {
303− if textField == tagsField {
303+ /*if textField == tagsField {
304304 textView.becomeFirstResponder()
305− }
305+ }*/
306306 return true
307307 }
308308
GDproject/Controller/Coordinators/ChannelsCoordinator.swift+24−3
@@ -31,13 +31,34 @@ class ChannelsCoordinator: BaseCoordinator{
3131 (channel) in
3232 self?.navigationController?.pushViewController(self!.presentNewsController(with: channel), animated: true)
3333 }
34− navigationController?.setViewControllers([channels,presentNewsController()], animated: false)
34+
35+ channels.onEditingModeBegins = { [unowned self] (channel, indexPath) in
36+ let vc = self.presentEditingChannelController(with: channel)
37+ self.navigationController?.pushViewController(vc, animated: true)
38+ vc.tabBarController?.tabBar.isHidden = true
39+ }
40+
41+ let nc = presentNewsController()
42+ navigationController?.setViewControllers([channels, nc], animated: false)
43+ }
44+
45+ func presentEditingChannelController(with channel: Model.Channels? = nil) -> PulleyViewController {
46+
47+ let mainContentVC = storyboard.instantiateViewController(withIdentifier: newsController+"1") as! NewsController
48+ let drawerContentVC = storyboard.instantiateViewController(withIdentifier: "DrawerContentViewController1")
49+
50+ mainContentVC.channel = channel
51+ let pulleyDrawerVC = PulleyViewController(contentViewController: mainContentVC, drawerViewController: drawerContentVC)
52+
53+ pulleyDrawerVC.initialDrawerPosition = .collapsed
54+
55+ return pulleyDrawerVC
3556 }
3657
3758 func presentNewsController(with channel: Model.Channels? = nil) -> PulleyViewController {
3859
39− let mainContentVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: newsController) as! NewsController
40− let drawerContentVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "DrawerContentViewController")
60+ let mainContentVC = storyboard.instantiateViewController(withIdentifier: newsController) as! NewsController
61+ let drawerContentVC = storyboard.instantiateViewController(withIdentifier: "DrawerContentViewController")
4162
4263 mainContentVC.channel = channel
4364 mainContentVC.news.onFullPost = {
GDproject/Controller/Log In/LogInViewController.swift+2−2
@@ -79,7 +79,7 @@ class LogInViewController: UIViewController {
7979 func logicOfLogInInputValidation() -> ((String?)->()) {
8080
8181 let logic: ((String?)->()) = { [weak self] (someText) in
82− if let text = someText, !text.isEmpty, let id = Int(text) {
82+ if let text = someText, !text.isEmpty, let _ = Int(text) {
8383 self?.logInButton.isEnabled = true
8484 } else {
8585 self?.logInButton.isEnabled = false
@@ -95,7 +95,7 @@ class LogInViewController: UIViewController {
9595 setUpView()
9696 configureKeyboard()
9797
98− let mailFieldValuesSignal: Signal<String?, NoError> = mailTextField.reactive.continuousTextValues
98+ let mailFieldValuesSignal: Signal<String, Never> = mailTextField.reactive.continuousTextValues
9999
100100 mailFieldValuesSignal.observeValues(logicOfLogInInputValidation())
101101
GDproject/Simple model/Model.swift+10−7
@@ -37,11 +37,11 @@ class Model{
3737 static let channelsCreateURL = URL(string: "\(baseUrl)/channels/create")!
3838 static let channelsDeleteURL = URL(string: "\(baseUrl)/channels/delete")!
3939 static let channelsGetAnonURL = URL(string: "\(baseUrl)/channels/getAnonymous")!
40+ static let complexURL = URL(string: "\(baseUrl)/complex")!
4041
41−
42− struct QueryPosts: Codable{
42+ struct QueryPosts: Codable {
4343 var users: [Int: Users]
44− var posts: [Posts]
44+ var response: [Posts]
4545 }
4646
4747 struct Posts: Codable {
@@ -227,7 +227,7 @@ class Model{
227227 return }
228228
229229 idUser = newQueery.users
230− completion((newQueery.users, newQueery.posts))
230+ completion((newQueery.users, newQueery.response))
231231 }
232232 }
233233
@@ -274,7 +274,7 @@ class Model{
274274
275275 guard let newPost = try? decoder.decode(QueryPosts.self, from: json) else { return }
276276
277− completion(newPost.posts)
277+ completion(newPost.response)
278278 }
279279 }
280280
@@ -336,7 +336,7 @@ class Model{
336336 guard let newQueery = try? decoder.decode(QueryPosts.self, from: json) else { return }
337337
338338 idUser = newQueery.users
339− completion((newQueery.users, newQueery.posts))
339+ completion((newQueery.users, newQueery.response))
340340 }
341341 }
342342
@@ -498,7 +498,10 @@ class Model{
498498 guard let newQueery = try? decoder.decode(QueryPosts.self, from: json) else { return }
499499
500500 // idUser = newQueery.users
501− completion((newQueery.users, newQueery.posts))
501+ completion((newQueery.users, newQueery.response))
502502 }
503503 }
504+
505+
506+
504507}