DiscordKit
The Discord API implementation that powers Swiftcord
This implementation has fully functional REST and Gateway support, but is mainly geared towards human accounts and not bots.
If you like DiscordKit, please give it a
The Discord API implementation that powers Swiftcord
This implementation has fully functional REST and Gateway support, but is mainly geared towards human accounts and not bots.
If you like DiscordKit, please give it a
This adds support for the active developer badge on the backend.
The Update DiscordKitCore.swift commit was needed for compilation on my end (with the frontend), you may not need it
This is a non-breaking PR to migrate all uses of OSLog
to the cross-platform SwiftLog
package. This is done mainly to prepare DiscordKit for life on Linux, and because OSLog
wasn't that useful anyways and more troublesome in many ways.
This PR has major changes to the architecture of DiscordKit, to allow supporting bots easier in the future. There are major breaking changes, which are supported by the discordkit-rearchitect branch in Swiftcord.
Performance improvements. Corresponding PR for butter branch in Swiftcord.
Optimisations are not as major as those in Swiftcord, and changes were more to support those made in Swiftcord.
Breaking change: user in gateway cache is now a CurrentUser
struct.,
Previously, only the guild ordering user setting was handled. This PR handles some other settings, and stores the whole user settings struct in the gateway cache. It also merges the updated user setting with the old struct when an update event is received since Discord only sends partial user settings in the update event.
This is the corresponding PR in Swiftcord
Handles some events and updates cache with users sent in ready event. Allows proper first-class DM support in Swiftcord.
What changed:
last_message_id
in channels are now updated (allows proper ordering of DMs)[Snowflake: User]
dict instead of a [User]
arrayThis PR handles channel and guild gateway events to keep cached data fresh. Please also view the corresponding PR in Swiftcord for more info. This also ensures proper SwiftUI view rendering by calling objectWillChange.send()
whenever the cache is modified.
Note: Breaking API changes were introduced, including changing the cached guilds from an array to a [guildID: guild] dictionary. They are relatively minor and should make it easier to use DiscordKit. Please look at Swiftcord for an implementation example.
This PR aims to bring 1st-class bot support to DiscordKit. The checkboxes below outlines what's completed and what's still in the pipeline. The list, as is the bot API, subject to change at any time since this is under intense development and certain parts of the API are still yet to be decided.
NotificationCenter
for message
create and ready eventsresultBuilder
- supported application command types:
chatInput
- Slash commandsuser
- Actions that appear in context menu of usersmessage
- Actions that appear in context menu of messagesresultBuilder
- supported types:
subCommand
- A "sub-command" with no optionssubCommandGroup
- A group for nesting other optionsstring
- An option accepting a String
valueinteger
- An option accepting an Int
valueboolean
- An option accepting a Bool
valueuser
- An option accepting a user as its valuechannel
- An option accepting a channel as its valuerole
- An option accepting a role as its valuementionable
- An option accepting a @mention as its valuenumber
- An option accepting a Double
valueattachment
- An option accepting a file attachment as its valueresultBuilder
WIP beginner-friendly guide for building a bot with DiscordKit is available!
The initial release of DiscordKit. Currently, DiscordKit is tailor-made for Swiftcord, but it can also be used on its own or as a reference for another package.
It supports most documented REST endpoints that use POST, GET or DELETE requests, as well as a very robust Gateway implementation, albeit only for human accounts.
Source code(tar.gz)Quotes App is quotes browsing app which is built with Quotable Free API completely in SwiftUI. You can watch the whole journey of building this
Quotes App is quotes browsing app which is built with Quotable Free API completely in UIKit
Starter-iOS Don't start from scratch, start from Here! This is a starter project for iOS projects. It contains all the basic configurations and common
"Create a weather app from scratch with this SwiftUI Crash Course" https://youtu
iOS desde cero ¿Qué es esto? iOS desde Cero es un Streaming en ???? sobre desarr
Moments SwiftUI This is a re-implementation of Moments App using Swift 5.5 and SwiftUI. Features: Aysnc/Await Actor AysncImage MVVM BFF Screenshot Als
Beers is a simple experimental app implemented using the new amazing SwiftUI. The app shows a list of beers fetched from Punk API
BreakingBad BreakingBad API doc Implemented MVVM-C (Coordinator) architecture pattern for the project. Which is satisfying SOLID principples altogethe
Orbit is a SwiftUI component library which provides developers the easiest possi
CombineMarbles for iOS Diagrams of Combine Publishers implemented with SwiftUI Combine is a new library for composing asynchronous events over time (R
MastodonNormalizedCacheSample This is a mastodon sample SwiftUI app. This app is implemented with the architecture of state management with Normalized
MovieSwiftUI MovieSwiftUI is an application that uses the MovieDB API and is built with SwiftUI. It demos some SwiftUI (& Combine) concepts. The goal
Polls Client This is a Swift iPhone and iPad client for the Polls API - a simple application allowing users to view polls and vote in them. Polls is a
?? Kinopoisk clone iOS app using Swift, TMDb API, Youtube API and SDWebImage. App mainly developed to learn about Swift(UIKit), working with JSON, using MVVM architectural pattern.
Cat-Or-Dog-App A SwiftUI app that fetch images from The Dog API and The Cat API, then classify the species of dogs or cats with confidence level. The
MovieAppSwiftUI The Application is using TMDB API and Server API to reduce user searching movies resources time with search engine.This Application is
Swiftea If you were looking for a something like this: TEA (The Elm Architecture) MVU (Model-View-Update) MVI (Model-View-Intent) Redux-like Flux-like
SwiftWebUI More details can be found on the related blog post at the Always Right Institute. At WWDC 2019 Apple announced SwiftUI. A single "cross pla
Life Conway’s Game of Life SwiftUI implementation of Conway’s Game of Life — also known simply as “Life”. About I’m Martin, an indie dev from Berlin.