+7
-1
README.md
+7
-1
README.md
···
1
-
# at_toolbox_opensource
1
+
# AT Toolbox
2
+
3
+

4
+
5
+
This is the source code for the [iOS app AT Toolbox](https://apps.apple.com/us/app/at-toolbox/id6747999688) as of release 1.0.4. The code is a bit rough in places and will not find much in the way of documentation. It is my first iOS app and I never expected to open source it. I am sharing this source code with the hope that it can help other atproto developers build iOS apps with swift. Things like maybe an app to backup your account to your phone? If you have any questions on it please feel free to reach out to me [@baileytownsend](https://bsky.app/profile/baileytownsend.dev). I'm not sure how often this repo will see updates, but I do plan on pushing things here and there if I think it can benefit the community as a whole.
6
+
7
+
This repo does depend on two forks. Which is [fatfingers23/ATProtoKit](https://github.com/fatfingers23/ATProtoKit/tree/feature/UserSessionRegistryProtocol) and [fatfingers23/ATIdentityTools](https://github.com/fatfingers23/ATIdentityTools). The plan is to eventually merge these changes back up stream, but it has not happen yet.
+50
-13
at_toolbox.xcodeproj/project.pbxproj
+50
-13
at_toolbox.xcodeproj/project.pbxproj
···
10
10
4B9388BE2E20B74C0067CD4B /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B9388BD2E20B74C0067CD4B /* StoreKit.framework */; };
11
11
4B9E72CB2E255D7600DC1E77 /* AT Toolbox.storekit in Resources */ = {isa = PBXBuildFile; fileRef = 4B9E72CA2E255D7600DC1E77 /* AT Toolbox.storekit */; };
12
12
4B9E72D82E25FAC300DC1E77 /* ZIPFoundation in Frameworks */ = {isa = PBXBuildFile; productRef = 4B9E72D72E25FAC300DC1E77 /* ZIPFoundation */; };
13
+
4BC2E75C2E5D0E2F00003BF2 /* ATIdentityTools in Frameworks */ = {isa = PBXBuildFile; productRef = 4BC2E75B2E5D0E2F00003BF2 /* ATIdentityTools */; };
14
+
4BC2E75E2E5D0E2F00003BF2 /* DIDCore in Frameworks */ = {isa = PBXBuildFile; productRef = 4BC2E75D2E5D0E2F00003BF2 /* DIDCore */; };
15
+
4BC2E7612E5D0E9100003BF2 /* ATMacro in Frameworks */ = {isa = PBXBuildFile; productRef = 4BC2E7602E5D0E9100003BF2 /* ATMacro */; };
16
+
4BC2E7632E5D0E9100003BF2 /* ATProtoKit in Frameworks */ = {isa = PBXBuildFile; productRef = 4BC2E7622E5D0E9100003BF2 /* ATProtoKit */; };
13
17
4BC6D6712E0C810F00967DB4 /* ATMacro in Frameworks */ = {isa = PBXBuildFile; productRef = 4BC6D6702E0C810F00967DB4 /* ATMacro */; };
14
18
4BC6D6732E0C810F00967DB4 /* ATProtoKit in Frameworks */ = {isa = PBXBuildFile; productRef = 4BC6D6722E0C810F00967DB4 /* ATProtoKit */; };
15
19
4BCBC0A12E0E0EC1003753C8 /* ATIdentityTools in Frameworks */ = {isa = PBXBuildFile; productRef = 4BCBC0A02E0E0EC1003753C8 /* ATIdentityTools */; };
···
81
85
4BC6D6712E0C810F00967DB4 /* ATMacro in Frameworks */,
82
86
4BCBC0A32E0E0EC1003753C8 /* DIDCore in Frameworks */,
83
87
4BCBC0A12E0E0EC1003753C8 /* ATIdentityTools in Frameworks */,
88
+
4BC2E75E2E5D0E2F00003BF2 /* DIDCore in Frameworks */,
89
+
4BC2E7612E5D0E9100003BF2 /* ATMacro in Frameworks */,
84
90
4B9388BE2E20B74C0067CD4B /* StoreKit.framework in Frameworks */,
85
91
4BC6D6732E0C810F00967DB4 /* ATProtoKit in Frameworks */,
86
92
4BDB7D1C2E16225900439106 /* Cache in Frameworks */,
87
93
4B9E72D82E25FAC300DC1E77 /* ZIPFoundation in Frameworks */,
94
+
4BC2E75C2E5D0E2F00003BF2 /* ATIdentityTools in Frameworks */,
95
+
4BC2E7632E5D0E9100003BF2 /* ATProtoKit in Frameworks */,
88
96
);
89
97
runOnlyForDeploymentPostprocessing = 0;
90
98
};
···
161
169
4BCBC0A22E0E0EC1003753C8 /* DIDCore */,
162
170
4BDB7D1B2E16225900439106 /* Cache */,
163
171
4B9E72D72E25FAC300DC1E77 /* ZIPFoundation */,
172
+
4BC2E75B2E5D0E2F00003BF2 /* ATIdentityTools */,
173
+
4BC2E75D2E5D0E2F00003BF2 /* DIDCore */,
174
+
4BC2E7602E5D0E9100003BF2 /* ATMacro */,
175
+
4BC2E7622E5D0E9100003BF2 /* ATProtoKit */,
164
176
);
165
177
productName = shortcut;
166
178
productReference = 4BBE4EE82E09F976009F9D3E /* shortcut.app */;
···
245
257
mainGroup = 4BBE4EDF2E09F975009F9D3E;
246
258
minimizedProjectReferenceProxies = 1;
247
259
packageReferences = (
248
-
4BC6D66F2E0C810F00967DB4 /* XCLocalSwiftPackageReference "../ATProtoKit" */,
249
-
4BCBC09F2E0E0EC1003753C8 /* XCLocalSwiftPackageReference "../ATIdentityTools" */,
250
260
4BDB7D1A2E16225900439106 /* XCRemoteSwiftPackageReference "Cache" */,
251
261
4B9E72D62E25FAC300DC1E77 /* XCRemoteSwiftPackageReference "ZIPFoundation" */,
262
+
4BC2E75A2E5D0E2F00003BF2 /* XCRemoteSwiftPackageReference "ATIdentityTools" */,
263
+
4BC2E75F2E5D0E9100003BF2 /* XCRemoteSwiftPackageReference "ATProtoKit" */,
252
264
);
253
265
preferredProjectObjectVersion = 77;
254
266
productRefGroup = 4BBE4EE92E09F976009F9D3E /* Products */;
···
623
635
};
624
636
/* End XCConfigurationList section */
625
637
626
-
/* Begin XCLocalSwiftPackageReference section */
627
-
4BC6D66F2E0C810F00967DB4 /* XCLocalSwiftPackageReference "../ATProtoKit" */ = {
628
-
isa = XCLocalSwiftPackageReference;
629
-
relativePath = ../ATProtoKit;
630
-
};
631
-
4BCBC09F2E0E0EC1003753C8 /* XCLocalSwiftPackageReference "../ATIdentityTools" */ = {
632
-
isa = XCLocalSwiftPackageReference;
633
-
relativePath = ../ATIdentityTools;
634
-
};
635
-
/* End XCLocalSwiftPackageReference section */
636
-
637
638
/* Begin XCRemoteSwiftPackageReference section */
638
639
4B9E72D62E25FAC300DC1E77 /* XCRemoteSwiftPackageReference "ZIPFoundation" */ = {
639
640
isa = XCRemoteSwiftPackageReference;
···
643
644
minimumVersion = 0.9.19;
644
645
};
645
646
};
647
+
4BC2E75A2E5D0E2F00003BF2 /* XCRemoteSwiftPackageReference "ATIdentityTools" */ = {
648
+
isa = XCRemoteSwiftPackageReference;
649
+
repositoryURL = "https://github.com/fatfingers23/ATIdentityTools.git";
650
+
requirement = {
651
+
branch = main;
652
+
kind = branch;
653
+
};
654
+
};
655
+
4BC2E75F2E5D0E9100003BF2 /* XCRemoteSwiftPackageReference "ATProtoKit" */ = {
656
+
isa = XCRemoteSwiftPackageReference;
657
+
repositoryURL = "https://github.com/fatfingers23/ATProtoKit.git";
658
+
requirement = {
659
+
branch = feature/UserSessionRegistryProtocol;
660
+
kind = branch;
661
+
};
662
+
};
646
663
4BDB7D1A2E16225900439106 /* XCRemoteSwiftPackageReference "Cache" */ = {
647
664
isa = XCRemoteSwiftPackageReference;
648
665
repositoryURL = "https://github.com/hyperoslo/Cache.git";
···
658
675
isa = XCSwiftPackageProductDependency;
659
676
package = 4B9E72D62E25FAC300DC1E77 /* XCRemoteSwiftPackageReference "ZIPFoundation" */;
660
677
productName = ZIPFoundation;
678
+
};
679
+
4BC2E75B2E5D0E2F00003BF2 /* ATIdentityTools */ = {
680
+
isa = XCSwiftPackageProductDependency;
681
+
package = 4BC2E75A2E5D0E2F00003BF2 /* XCRemoteSwiftPackageReference "ATIdentityTools" */;
682
+
productName = ATIdentityTools;
683
+
};
684
+
4BC2E75D2E5D0E2F00003BF2 /* DIDCore */ = {
685
+
isa = XCSwiftPackageProductDependency;
686
+
package = 4BC2E75A2E5D0E2F00003BF2 /* XCRemoteSwiftPackageReference "ATIdentityTools" */;
687
+
productName = DIDCore;
688
+
};
689
+
4BC2E7602E5D0E9100003BF2 /* ATMacro */ = {
690
+
isa = XCSwiftPackageProductDependency;
691
+
package = 4BC2E75F2E5D0E9100003BF2 /* XCRemoteSwiftPackageReference "ATProtoKit" */;
692
+
productName = ATMacro;
693
+
};
694
+
4BC2E7622E5D0E9100003BF2 /* ATProtoKit */ = {
695
+
isa = XCSwiftPackageProductDependency;
696
+
package = 4BC2E75F2E5D0E9100003BF2 /* XCRemoteSwiftPackageReference "ATProtoKit" */;
697
+
productName = ATProtoKit;
661
698
};
662
699
4BC6D6702E0C810F00967DB4 /* ATMacro */ = {
663
700
isa = XCSwiftPackageProductDependency;