Christopher Jr Riley
@cjrriley.ca
2.2K followers 270 following 4.1K posts
Resilient Autistic that loves solving problems with Swift. Make the world more accessible. 🇨🇦 Currently working on ATProtoKit. #atdev (Profile pic drawn by kaylee_acnh on Twitter.)
Posts Media Videos Starter Packs
Pinned
My #Swiftlang #ATProto API library, ATProtoKit, has been updated to version 0.32.0.

This ended up becoming a much smaller update than originally intended. It’s now been reduced to some tweaks and removals, such as adding new public initializers, as well as removing ATMacro.

#atdev
GitHub - MasterJ93/ATProtoKit at 0.32.0
A straightforward solution for using the AT Protocol and Bluesky, written in Swift. - GitHub - MasterJ93/ATProtoKit at 0.32.0
github.com
Only 93% of their sales target to go!

(Seriously: 100 million sales? Really?)
Reposted by Christopher Jr Riley
They'll need some mascots first.

... I don't know if they have that yet.
When a company that owns a company says they're partnering with their own company:
Meme of Obama awarding Obama a medal.
To clarify, I didn’t expect to reach 185 stars at this time. I expected to reach to this point at around mid-November. Being ahead of schedule like this makes me truly happy.
I didn’t expect to get to 185 stars for ATProtoKit. Thank you very much! I’m humbled for your generosity and support. 🙏

Please do continue to boost this project higher: if you can get it to 200 by the end of the year, I would greatly appreciate it.
ATProtoKit

A straightforward solution for using the AT Protocol and Bluesky, written in Swift.

atprotokit.cjrriley.com/documentation/atprotokit/

185 stars
35 forks
I hope to reach 200 stars on GitHub for ATProtoKit by the end of this year. That seems possible, would it? I have 21 stars left to go. So maybe 10 stars per month.
Once ATLexiconC is released, I'll release this article in the DocC, as the article assumes that ATLexiconC has already been release and is in full force.

I plan on doing more of these in the DocC on all ATProtoKit family Swift packages. Please look forward to it.
All lexicon models are eventually supposed to contain public general initializers, as well as the initializer and method from Decodable and Encodable. However, some have slight deviations, such as converting the date format, or forcibly truncating fields, as required by the lexicon itself.
In an effort to improve documentation, I've been in the process of writing an article that explains how lexicon models are supposed to behave. In general, this should help developers understand what to expect when using them. ATLexiconC will strictly abide by these rules as well.
Serialization and Validation Behavior in Lexicon Models

Learn how lexicon models are expected to behave within ATProtoKit.

ATProtoKit’s lexicon model types implement custom `Codable` logic to support the AT Protocol’s specific data serialization and validation requirements. This article explains the common encoding, decoding, and validation rules applied across lexicon models, including date handling and field length/array size enforcement.

Overview

While lexicon model in ATProtoKit conforms to the `Codable` protocol, not all rely on the standard synthesized implementations. Instead, many models provide explicit implementations of:
- A custom `public` initializer,
- a custom `Decodable` initializer,
- a custom `Encodable` method, and
- a custom `CodingKeys` `enum`.

By having explicit implementations, ATProtoKit can help ensure the models are consistent with the lexicon the `struct`s are following, and the [...]
Thank you for blessing us with another cute Daisy drawing. 🙏🥹
I appreciate that.

I hope I continue to meet your and everyone else's expectations.
Oh yeah: I needed this. Because I was sleeping for the past couple of days of doing nothing and I feel so drained. This is the reassurance I needed to keep going. Seriously. Thanks.
Reposted by Christopher Jr Riley
I been a little all over the page tonight. but watch carefully. every single one of us in the atmosphere is working on something, and it’s all going to change it for y’all. and by “every single one of us” I also mean you, so don’t stop cause you’re doing it
The Wii Remote felt more comfortable to hold for me, especially sideways. So yay.
That’s terrifying, not gonna lie. 🤣
Oh...

That's gonna be a bloodbath... 😰
One thing I'm dreading is whenever they do even a *slight* change to a lexicon. Then I would have to either edit the documentation, or completely rewrite it from scratch.

🫠

Well, I signed up for this, so I shouldn't be complaining...
The reason why I'm not sending them in now is because I want to test as much as I can with each generated model and method in order to ensure things work, as well as read the TypeScript implementation to understand the quirks of the lexicon itself, so I can document it fully.
Currently in the process of working on overruling these damn documentation for each of the API calls. When the lexicon generator arrives, I will add each of them in tandem with each generated Swift model and method.
Bluesky helped me restart my coding career.
Has anything great happened in your life because of social media?
I *really* need to figure out how to just… make a TypeScript/JavaScript to Swift transpiler. That would make life so much easier. I think there’s (at least) a package in npm that pulls out the signatures of each file. That would be a great start.
I just realized the oauth-types package was updated.

… *sigh…

Okay. I will get on that.

… tomorrow.

(But will update it in tandem with the OAuth client.)
All part of my master plan. 😎