A completely native Discord client for macOS built 100% in Swift and SwiftUI

Overview

Swiftcord

A completely native Discord client for macOS built 100% in Swift and SwiftUI

This project aims to create a fully functional native Discord client in Swift for macOS from scratch.

Client Feature Parity

Feature parity with the following Discord client is targeted:

Version 0.0.283
Build # 115689
Release Channel canary

Current State

This project is currently in a non-functional state, with the GUI being completely non-functional. All the magic goes on in the terminal. Connection with the Discord WebSocket Gateway is fully functional (but unstable), and the HTTP REST API is partially implemented (press the button in the header of the UI to test that out)

Contributions

Thank you for popping by! If you know the Discord API well, have Swift knowledge and feel like contributing, feel free to make a pull request! Any (positive) contribution is welcome, no matter how small!

License

Made with ❤️ by Vincent Kwok

Copyright © 2022 Vincent Kwok

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

See https://www.gnu.org/licenses/ for a copy of the GNU General Public License.

Comments
  • 'Swiftcord' will damage your computer

    'Swiftcord' will damage your computer

    Opening the latest release (0.2.2) triggers a gatekeeper alert I had never seen before.

    image

    This is unlike the regular popup for unsigned/unverified apps which require you to bypass it manually in the system settings. This popup suggests that this app was actively flagged as being malicious by Apple.

    waiting for op 
    opened by jasperweiss 47
  • Stuck on

    Stuck on "Establishing Gateway connection"

    Trying this out as a native alternative to Ripcord (by cancel.fm)! Looks like a cool project! When I open the app it seems to just sit on "Establishing Gateway connection" without progressing.

    Looking at its network traffic in LittleSnitch, it sends a request to "discord.gg" when first launched but it never gets a reply and it does not make any more requests.

    Swiftcord v0.2.2(3) - Pre-built provided on GitHub MacOS v12.3.1 Macbook Pro M1 Pro

    bug 
    opened by Melonking906 32
  • Flaky Gateway Connectivity

    Flaky Gateway Connectivity

    When loading channels i get this error

    <E> [DiscordGateway] Unknown close code: 1000
    2022-04-13 07:18:59.697935+0100 Swiftcord[37958:1482007] [SwiftUI] Publishing changes from background threads is not allowed; make sure to publish values from the main thread (via operators like receive(on:)) on model updates.
    

    and when looking into xcode image

    Im not sure if this warning is turning into an error or not due to my account having server folders and Swiftcord not supporting that just yet or its an actual error. So i have 2 questions. How do i log out of my account before fully loading in? and Is there a way to solve this warning?

    opened by bentettmar 21
  • Stuck on

    Stuck on "Loading channels"

    Hello, I love the concept of your app (it's beautiful ❤️) BUT I'm stuck on this screen: Screenshot 2022-04-30 at 18 57 54

    (I'm connected, the "preferences" menu works) Screenshot 2022-04-30 at 18 58 35

    Here are the errors in Xcode :

    Screenshot 2022-04-30 at 18 59 35 Screenshot 2022-04-30 at 18 59 26

    Thank you in advance for your response

    bug 
    opened by CodingForAddicts 12
  • [Bug]: Badge duplication & overlap

    [Bug]: Badge duplication & overlap

    Describe the bug

    For some reason my nitro badge is being duplicated and overlapped ontop of my hypesquad badge. idk if this will occur with other badges or if it happens with a set amount etc. To Reproduce

    Open a users profile who has HS balance & nitro badges

    Expected behavior No duplication and or overlap Screenshots Swiftcord: image

    standard client: image

    Logs

    Additional context

    bug 
    opened by pozm 6
  • [Enhancement]: GIFs not rendered

    [Enhancement]: GIFs not rendered

    version 0.4.1

    Describe the bug

    I checked on servers and in my DMs, but when someone sends a GIF, only the URL is displayed with a block underneath it. You can still click on the link to view the GIF in your browser, but needless to say, this is not the best solution :,)

    Screen Shot 2022-06-19 at 10 58 49 PM enhancement ui 
    opened by aceilort 5
  • Weird menu bar item behaviour

    Weird menu bar item behaviour

    Describe the bug when clicking any menu items (bar at top of screen) they show up for a split second and then disappear, not to mention getting them to trigger is janky for some reason To Reproduce

    1. click any menu item

    Expected behavior for the dropdown to show as intended and stay until unfocused Screenshots https://user-images.githubusercontent.com/44528100/171665531-b5167f99-097a-479e-b293-9443d1e21a70.mov Logs

    Additional context

    bug 
    opened by pozm 5
  • Message field does not wrap

    Message field does not wrap

    Describe the bug When typing a long message into the message field, the text does not wrap once it hits the end of the field. Although newlines work (opt + return), the text does not wrap anymore like it did before with TextEditor

    To Reproduce

    1. Type very long text in the message field
    2. Notice how the text does not scroll, but you can still input text into the field
    3. Send the message and note that the text that was entered beyond the width of the field is present

    Expected behavior The text wraps to the next line

    Screenshots

    Note the cut-off 't' that appears after the cursor

    Screenshot 2022-05-26 at 11 46 25 AM

    Additional context Text wrapping used to work while a TextEditor was used, but newlines didn't. Now, its the opposite xD

    bug 
    opened by cryptoAlgorithm 5
  • Can't compile from source

    Can't compile from source

    Describe the bug Can't compile from source:

    Dependencies could not be resolved because no versions of 'lottie-ios' match the requirement 3.3.0..<4.0.0 and root depends on 'lottie-ios' 3.3.0..<4.0.0.

    To Reproduce Xcode -> Source Control -> Clone...

    bug 
    opened by zohaad 5
  • Rich Embeds Markdown not working

    Rich Embeds Markdown not working

    Describe the bug

    It seems that RichEmbeds containing markdown text are not properly rendering.

    To Reproduce

    1. Go to a channel with RichEmbed messages including markdown text inside.

    Expected behavior

    See screenshots

    Screenshots

    First one is SwiftCord, the other one is Discord https://imgur.com/a/rBOkGFO

    Additional context

    I'm not sure if this is a problem or not as I saw that "Rich message rendering" should work fine on the roadmap. So just in case 🤷‍♂️ ALSO the "author" field does not appear in the Rich Embed either (see the top part of it in the screenshots)

    By the way, I really appreciate your work!! The UI looks soo good and Discord should defintively make a native version instead of electron... Can't wait to see Voice channels haha

    bug 
    opened by selimgr 5
  • Pre-built releases would be nice

    Pre-built releases would be nice

    Not a bug just an extra feature request! Perhaps connecting with GitHub Actions so a new release is built on every new version/milestone. Because right now building the entire project would be quite a hassle, and as the other issue states, building isn't possible in the current state. Awesome project btw looks so much like the original Discord app. Great work!!

    opened by aviwad 5
  • [Bug]: Additional tabs can be created

    [Bug]: Additional tabs can be created

    Describe the Bug

    Bug Description Upon clicking in the menu bar View > Show Tab Bar or View > Show All Tabs, the plus sign button can be clicked to create a new tab. This behaviour is glitchy and is obviously unintended.

    Actual Behaviour Tab creation, deletion, & rearrangement is supported.

    Expected Behavior There should not be any tabbing behaviour supported, these tab-related buttons should not exist in the view menu.

    Reproducing the Bug

    1... click View > Show Tab Bar 2... create a new tab

    Version

    0.4.6

    Category

    Other

    Relevant Log Output

    No response

    Screenshots

    No response

    Additional Info

    No response

    bug ui 
    opened by Dainternetdude 2
  • Fix SIGABRT in $s16CachedAsyncImageAAV4load33_1115941DA3DEE378C52E09DA49AE1AD2LLyyYaYbFyyXEfU1_ (CachedAsyncImage.swift:335)

    Fix SIGABRT in $s16CachedAsyncImageAAV4load33_1115941DA3DEE378C52E09DA49AE1AD2LLyyYaYbFyyXEfU1_ (CachedAsyncImage.swift:335)

    Version 0.4.5(12)

    Stacktrace

    $s16CachedAsyncImageAAV4load33_1115941DA3DEE378C52E09DA49AE1AD2LLyyYaYbFyyXEfU1_ (CachedAsyncImage.swift:335);Swiftcord

    partial apply forwarder for reabstraction thunk helper from @callee_guaranteed () -> (@error @owned Swift.Error) to @escaping @callee_guaranteed () -> (@out (), @error @owned Swift.Error) (:0);Swiftcord

    reabstraction thunk helper from @callee_guaranteed () -> (@error @owned Swift.Error) to @escaping @callee_guaranteed () -> (@out (), @error @owned Swift.Error)partial apply forwarder with unmangled suffix ".8" + 8;Swiftcord

    $s16CachedAsyncImageAAV4load33_1115941DA3DEE378C52E09DA49AE1AD2LLyyYaYbFTQ0_ (CachedAsyncImage.swift:334);Swiftcord

    Reason

    SIGABRT

    Link to App Center

    opened by cryptoAlgorithm 0
  • [Enhancement]: Add Activity tab and friends and more

    [Enhancement]: Add Activity tab and friends and more

    Describe Your Request

    Things to add:

    • Gif search

    • Activity tab

    • Friends

    • Ability to connect to voice chats

    • See people in servers (the tab thing on the right)

    • Improve settings (there are some tabs with missing stuff in there (probably because isn't done yet?))

    • In the billing tab, add the big chilling gif meme ;3

    • Add option to change pfp image and banner

    • fix the roadmap button in the readme it doesn't work

    maybe create a Trello list? I might edit it in the feature 😉

    Category

    Other

    Other Category

    Everything

    Screenshots

    No response

    enhancement 
    opened by TomerGamerTV 5
  • Fix SIGTRAP in SwiftyGif.SwiftyGifManager.startTimerIfNeeded() -> ()

    Fix SIGTRAP in SwiftyGif.SwiftyGifManager.startTimerIfNeeded() -> ()

    Version 0.4.5(12)

    Stacktrace

    SwiftyGif.SwiftyGifManager.startTimerIfNeeded() -> () (SwiftyGifManager.swift:0);Swiftcord

    SwiftyGif.SwiftyGifManager.addImageView(__C.NSImageView) -> Swift.Bool (SwiftyGifManager.swift:104);Swiftcord

    (extension in SwiftyGif):__C.NSImageView.setGifImage(_: __C.NSImage, manager: SwiftyGif.SwiftyGifManager, loopCount: Swift.Int) -> () (NSImageView+SwiftyGif.swift:80);Swiftcord

    (extension in SwiftyGif):__C.NSImageView.(parseDownloadedGif in _E5EE4030BF9707461E2DD62C83815291)(url: Foundation.URL, data: Foundation.Data?, error: Swift.Error?, manager: SwiftyGif.SwiftyGifManager, loopCount: Swift.Int, levelOfIntegrity: Swift.Float) -> () (NSImageView+SwiftyGif.swift:187);Swiftcord

    $sSo11NSImageViewC9SwiftyGifE03setD7FromURL_7manager9loopCount16levelOfIntegrity7session10showLoader06customP0So20NSURLSessionDataTaskCSg10Foundation0G0V_AC0cD7ManagerCSiSfSo0R0CSbSo6NSViewCSgtFyAN0S0VSg_So13NSURLResponseCSgs5Error_pSgtcfU_yyScMYccfU_TA (NSImageView+SwiftyGif.swift:126);Swiftcord

    reabstraction thunk helper from @escaping @callee_guaranteed () -> () to @escaping @callee_unowned @convention(block) () -> () (:0);Swiftcord

    main (SwiftcordApp.swift:15);Swiftcord

    Reason

    SIGTRAP

    Link to App Center

    opened by cryptoAlgorithm 0
  • [Bug]: divider not dividing correctly

    [Bug]: divider not dividing correctly

    Describe the Bug

    server bar goes beyond divider

    it shouldn't do that

    Reproducing the Bug

    do nothing

    Version

    0.4.5

    Category

    Other

    Relevant Log Output

    No response

    Screenshots

    Bildschirmfoto 2022-08-14 um 11 02 26

    Additional Info

    No response

    bug ui 
    opened by Jomyy 3
Releases(v0.4.6)
  • v0.4.6(Aug 27, 2022)

    This is basically a feature drop release 📦 It's packed with some new and improved code (well, at least those that were made in time), as well as better crash analytics to help track down and kill all those pesky bugs!

    Sponsors

    Sponsors allow me to continue supporting Swiftcord with their kind donations!

    Red-hot sponsors 🔥:

    kallisti

    New Features

    • Finally, reply support! Right click on any message to reply to it, even supports pinging/not pinging the OP!
    • Supports new message types, and handle unknown types more gracefully:
      • recipientAdd (member added to a group DM)
      • recipientRemove (member removed from group DM)
      • userPremiumGuildSub (server boosted)
      • userPremiumGuildSubTier1, userPremiumGuildSubTier2, userPremiumGuildSubTier3 (server boosted and achieved tiers 1, 2 or 3 respectively)
    • Migrated from AppCenterCrashes to Sentry! Significantly better crash info helps to pinpoint crashes more easily, so more bugs can be squashed <3

    Bug Fixes

    • More "human" German translations - Thanks to all who helped translate Swiftcord
    • Added new sponsor!

    What's Changed

    • Revamped about section, new credits section by @cryptoAlgorithm in https://github.com/SwiftcordApp/Swiftcord/pull/96
    • Reply support by @cryptoAlgorithm in https://github.com/SwiftcordApp/Swiftcord/pull/98
    • Hide edit context button on non-owned messages by @DanielleMaywood in https://github.com/SwiftcordApp/Swiftcord/pull/101

    New Contributors

    • @DanielleMaywood made their first contribution in https://github.com/SwiftcordApp/Swiftcord/pull/101

    Full Changelog: https://github.com/SwiftcordApp/Swiftcord/compare/v0.4.5...v0.4.6

    Source code(tar.gz)
    Source code(zip)
    Swiftcord.0.4.6.dmg(7.85 MB)
    Swiftcord13-10.delta(2.23 MB)
    Swiftcord13-11.delta(2.23 MB)
    Swiftcord13-12.delta(2.16 MB)
    Swiftcord13-8.delta(2.64 MB)
    Swiftcord13-9.delta(2.26 MB)
  • v0.4.5(Aug 7, 2022)

    A few requested features in the #suggestion channel in Swiftcord's Discord server were implemented, as well as some bug fixes for bugs caught by the community! Not to mention, better translations 🎏!

    PS: If you haven't already, you should probably join Swiftcord's Discord server here! I actively respond to your feature requests and answer bug reports there! I'm also looking for new names for Swiftcord, so send your best name suggestion(s) there!

    New Features

    • GIF support (#92) Note: GIF embeds (e.g. Tenor) don't work since they aren't actually GIFs, Discord returns those as videos
      • Animated avatars, server icons and user banners now animate!
    • Focus message field when a channel is clicked into

    Bug Fixes

    • ~~More "human" German translations - Thanks to all who helped translate Swiftcord~~ This was not merged in time for this release
    • More concise GPL license in about window
    • Fixed broken DM ordering due to last_message_id having different lengths
    • Stop video player playback when channel changed

    What's Changed

    • Translations update from Hosted Weblate by @weblate in https://github.com/SwiftcordApp/Swiftcord/pull/85
    • [Feature]: GIF media support by @cryptoAlgorithm in https://github.com/SwiftcordApp/Swiftcord/pull/92
    • Translations update from Hosted Weblate by @weblate in https://github.com/SwiftcordApp/Swiftcord/pull/88

    Full Changelog: https://github.com/SwiftcordApp/Swiftcord/compare/v0.4.4...v0.4.5


    If you feel Swiftcord benefits you, consider dropping a donation thru GitHub Sponsors or Patreon to support Swiftcord's development!

    Source code(tar.gz)
    Source code(zip)
    Swiftcord.0.4.5.dmg(7.89 MB)
    Swiftcord12-10.delta(773.39 KB)
    Swiftcord12-11.delta(773.89 KB)
    Swiftcord12-7.delta(2.67 MB)
    Swiftcord12-8.delta(1.48 MB)
    Swiftcord12-9.delta(901.75 KB)
  • v0.4.4(Jul 12, 2022)

    This release contains an important bug fix that fixes a crash that would occur during the onboarding. Please do not use v0.4.3 to prevent an immediate crash on launch.

    Bug Fixes

    • @Candygoblen123 - Converted colors to sRGB before getting their components: fixed crash due to FlatButtonStyle during onboarding
    • Use User.public_flags and fallback to User.flags if that is nil to fix verified bot checkbox

    What's Changed

    • Use official blurple color from Discord's Branding Guidelines by @BomberFish in https://github.com/SwiftcordApp/Swiftcord/pull/82

    New Contributors

    • @BomberFish made their first contribution in https://github.com/SwiftcordApp/Swiftcord/pull/82

    Full Changelog: https://github.com/SwiftcordApp/Swiftcord/compare/v0.4.3...v0.4.4

    Source code(tar.gz)
    Source code(zip)
    Swiftcord.0.4.4.dmg(6.99 MB)
    Swiftcord11-10.delta(190.51 KB)
    Swiftcord11-7.delta(2.59 MB)
    Swiftcord11-8.delta(1.36 MB)
    Swiftcord11-9.delta(721.21 KB)
  • v0.4.3(Jul 11, 2022)

    Notice:

    Some people are reporting a crash after first log in, please run defaults write io.cryptoalgo.swiftcord local.seenOnboarding true in a terminal to work around the issue. A patch will be available shortly.

    This release includes Discord-like button styling, better-looking dialogs and properly-bundled localisations. It also contains an important bug fix.

    New Features

    • Discord-styled buttons in more places
    • Better-looking dialogs
    • Skeleton server join dialog (not fully operational)
    • Channel list sidebar can be toggled by clicking on the channel icon in the toolbar (# or @)
    • Show placeholder image and only load video when the play button is clicked
    • Add fade-in animation for images when loaded

    Bug Fixes

    • Properly registered app delegate, fixes the following issues:
      • Temporary files do not get cleared on app launch
      • AppCenter SDK is never initialised, no analytics data and crash stacks are sent
      • UserDefaults default values are not set
    • Added new localisation languages properly so they will be included in the app bundle
    • Workaround for broken toolbar paddings and offsets for macOS 13
    • Use a custom horizontal divider for the day divider so a background does not have to be used to mask the divider

    Note: The join server dialog in this release is non-operational.


    What's Changed

    • Translations update from Hosted Weblate by @weblate in https://github.com/SwiftcordApp/Swiftcord/pull/71
    • Translations update from Hosted Weblate by @weblate in https://github.com/SwiftcordApp/Swiftcord/pull/76
    • Translations update from Hosted Weblate by @weblate in https://github.com/SwiftcordApp/Swiftcord/pull/78
    • Translations update from Hosted Weblate by @weblate in https://github.com/SwiftcordApp/Swiftcord/pull/80

    Full Changelog: https://github.com/SwiftcordApp/Swiftcord/compare/v0.4.2...v0.4.3

    Source code(tar.gz)
    Source code(zip)
    Swiftcord.0.4.3.dmg(6.99 MB)
    Swiftcord10-7.delta(2.60 MB)
    Swiftcord10-8.delta(1.36 MB)
    Swiftcord10-9.delta(716.04 KB)
  • v0.4.2(Jul 8, 2022)

    A bunch of quality of life improvements, as well as some minor features which are detailed below, are included in this release.

    New Features

    • Basic keyboard shortcuts - Use your keyboard to change servers, channels and more! (@Candygoblen123)
    • Onboarding popover will be shown on the first launch after logging in
    • Release notes will be shown after every update
    • 'Panic logout' button on loading screen to allow logging out in deadlocked situations
    • Warning on loading screen if there is no network connectivity
    • Option to disable AppCenter analytics in settings, with clearer explanations

    Localisations

    • Much more translations with more strings localised
    • Full English and Chinese, and partial French, German, Italian, Korean and Norwegian Bokmal translations
    • Thanks to all localisation contributors! If you'd like to help localise Swiftcord to more languages, check out its Weblate!
    Latest translation status

    Translation status

    Known Issues

    • Very unstable with performance degradation on macOS 13 beta 1
      • App sometimes starts with sidebar minimised regardless of previous setting
      • Message list gets sluggish after a bit of scrolling

    Workarounds/Fixes

    • Removed settings button in user footer below channel list > macOS 13 - Button is broken since macOS 13

    What's Changed

    • Update README.md by @SkiingIsFun123 in https://github.com/SwiftcordApp/Swiftcord/pull/63
    • Supporting changes for DiscordKit rearchitect by @cryptoAlgorithm in https://github.com/SwiftcordApp/Swiftcord/pull/64
    • add german translation by @7408647n in https://github.com/SwiftcordApp/Swiftcord/pull/66
    • Fix README.md typo by @agnezi in https://github.com/SwiftcordApp/Swiftcord/pull/67
    • Translations update from Hosted Weblate by @weblate in https://github.com/SwiftcordApp/Swiftcord/pull/65
    • Update README by @cryptoAlgorithm in https://github.com/SwiftcordApp/Swiftcord/pull/73

    New Contributors

    • @SkiingIsFun123 made their first contribution in https://github.com/SwiftcordApp/Swiftcord/pull/63
    • @7408647n made their first contribution in https://github.com/SwiftcordApp/Swiftcord/pull/66
    • @agnezi made their first contribution in https://github.com/SwiftcordApp/Swiftcord/pull/67
    • @weblate made their first contribution in https://github.com/SwiftcordApp/Swiftcord/pull/65

    Full Changelog: https://github.com/SwiftcordApp/Swiftcord/compare/v0.4.1...v0.4.2

    Source code(tar.gz)
    Source code(zip)
    Swiftcord.0.4.2.dmg(6.92 MB)
    Swiftcord9-7.delta(2.51 MB)
    Swiftcord9-8.delta(1.24 MB)
  • v0.4.1(Jun 6, 2022)

    This release contains major performance increases and various bug fixes.

    New Features

    • Proper user profile caching - User popover now loads immediately when opened again
    • AppCenter crash diagnostics and analytics - Helps debug crashes and see what features were used most
    • Drag and drop to add attachments
    • Partial Chinese localisation
    • Custom banner image (nitro only) is now rendered in user popover
    • User badges are now rendered in the popover (except the nitro badge, its still being worked on)
    • Reference messages now highlight themselves when the reply is clicked on
    • You can choose to always play animated stickers or only play them on interaction
    • Hide debug menu if the user didn't enable developer mode
    • Show day divider

    Known Issues

    • Text field doesn't wrap: #45
    • Various rerendering issues, or rather the lack thereof
    • Changing the theme override causes rendering glitches, read caption below option in settings for more info

    Fixes

    • Select first channel after ordering, so the initial selected channel also visually the first
    • Last DM channel is now saved in UserDefaults like in servers

    Note: This release contains anonymous AppCenter analytics. Opt-out will be added in the (near) future. Analytics events are stored for up to 28 days, and doesn't include any identifiable information.


    What's Changed

    • Added SwiftLint by @Candygoblen123 in https://github.com/SwiftcordApp/Swiftcord/pull/49
    • Butter: Performance optimisations 🧈 by @cryptoAlgorithm in https://github.com/SwiftcordApp/Swiftcord/pull/51
    • Drag'n'drop to attach files by @cryptoAlgorithm in https://github.com/SwiftcordApp/Swiftcord/pull/52
    • Update to match API changes to the User type in DiscordKit by @tonyarnold in https://github.com/SwiftcordApp/Swiftcord/pull/54
    • Use Decoded Dates by @charxene in https://github.com/SwiftcordApp/Swiftcord/pull/55
    • Use the provided Calendar method to determine if two dates are on the same day by @tonyarnold in https://github.com/SwiftcordApp/Swiftcord/pull/57
    • Setup AppCenter's app secret in a way that doesn't expose it by @tonyarnold in https://github.com/SwiftcordApp/Swiftcord/pull/58
    • Use the correct org/app structure for AppCenter’s app ID by @tonyarnold in https://github.com/SwiftcordApp/Swiftcord/pull/59
    • Move the AppCenter secret to it’s own configuration by @tonyarnold in https://github.com/SwiftcordApp/Swiftcord/pull/60
    • Respect the system’s current light/dark theme by @tonyarnold in https://github.com/SwiftcordApp/Swiftcord/pull/61

    New Contributors

    • @tonyarnold made their first contribution in https://github.com/SwiftcordApp/Swiftcord/pull/54
    • @charxene made their first contribution in https://github.com/SwiftcordApp/Swiftcord/pull/55

    Sponsors

    • @selimgr Sponsors the project since 20 May 2022 <3 Sponsoring the project will allow me to continue working on it and invest on more services related to it!

    Full Changelog: https://github.com/SwiftcordApp/Swiftcord/compare/v0.4.0...v0.4.1

    Source code(tar.gz)
    Source code(zip)
    Swiftcord.0.4.1.dmg(6.64 MB)
    Swiftcord8-7.delta(2.05 MB)
  • v0.4.0(May 26, 2022)

    This release includes new major feature and bug fixes.


    What's Changed

    • Add Sparkle Auto-Updater by @Candygoblen123 in https://github.com/SwiftcordApp/Swiftcord/pull/44
    • First class DM support by @cryptoAlgorithm in https://github.com/SwiftcordApp/Swiftcord/pull/41

    Full Changelog: https://github.com/SwiftcordApp/Swiftcord/compare/v0.3.2...v0.4.0

    Sponsors

    A big thanks to all contributors and sponsors!

    Source code(tar.gz)
    Source code(zip)
    Swiftcord.0.4.0.dmg(5.87 MB)
  • v0.3.2(May 24, 2022)

    What's Changed

    • Remove Starscream Dependency + Rewrite WebSocket Wrapper by @cryptoAlgorithm in https://github.com/SwiftcordApp/Swiftcord/pull/10
    • Icon Change by @bentettmar in https://github.com/SwiftcordApp/Swiftcord/pull/11
    • Updated Icon Image Sizes by @ingleanthony in https://github.com/SwiftcordApp/Swiftcord/pull/16
    • Added zoom button, adjusted sidebar and channel buttons by @ingleanthony in https://github.com/SwiftcordApp/Swiftcord/pull/19
    • Various Channel List/Button Improvements by @cryptoAlgorithm in https://github.com/SwiftcordApp/Swiftcord/pull/20
    • Implemented attachment downloading, previews, download progress and caching by @ingleanthony in https://github.com/SwiftcordApp/Swiftcord/pull/21
    • Audio Manager - Queue and control audio playback in one place! by @cryptoAlgorithm in https://github.com/SwiftcordApp/Swiftcord/pull/22
    • Fix crash with force-unwrapped optional by @marcprux in https://github.com/SwiftcordApp/Swiftcord/pull/28
    • More official implementation by @cryptoAlgorithm in https://github.com/SwiftcordApp/Swiftcord/pull/30
    • Refactors & improvements by @rrroyal in https://github.com/SwiftcordApp/Swiftcord/pull/32
    • Fix keychain key collisions, add gh action for building commits by @Candygoblen123 in https://github.com/SwiftcordApp/Swiftcord/pull/34
    • Message Attachment Support by @cryptoAlgorithm in https://github.com/SwiftcordApp/Swiftcord/pull/35
    • Move DiscordAPI to Swift Package by @rrroyal in https://github.com/SwiftcordApp/Swiftcord/pull/36
    • RichEmbeds fix by @selimgr in https://github.com/SwiftcordApp/Swiftcord/pull/38
    • Proper cache updating/updated data propagation by @cryptoAlgorithm in https://github.com/SwiftcordApp/Swiftcord/pull/39
    • Link Binary with AVKit to fix "Failed to demangle VideoPlayerView" crash by @Candygoblen123 in https://github.com/SwiftcordApp/Swiftcord/pull/43

    New Contributors

    • @cryptoAlgorithm made their first contribution in https://github.com/SwiftcordApp/Swiftcord/pull/10
    • @bentettmar made their first contribution in https://github.com/SwiftcordApp/Swiftcord/pull/11
    • @ingleanthony made their first contribution in https://github.com/SwiftcordApp/Swiftcord/pull/16
    • @marcprux made their first contribution in https://github.com/SwiftcordApp/Swiftcord/pull/28
    • @rrroyal made their first contribution in https://github.com/SwiftcordApp/Swiftcord/pull/32
    • @Candygoblen123 made their first contribution in https://github.com/SwiftcordApp/Swiftcord/pull/34
    • @selimgr made their first contribution in https://github.com/SwiftcordApp/Swiftcord/pull/38

    Full Changelog: https://github.com/SwiftcordApp/Swiftcord/compare/v0.1.0...v0.3.2

    Source code(tar.gz)
    Source code(zip)
    Swiftcord.0.3.2.dmg(5.76 MB)
  • v0.2.2(3)(Apr 14, 2022)

    This release is built from latest commits in the #native-urlsession-websocket branch, which contains a completely rewritten WebSocket wrapper (RobustWebSocket.swift). Various manual tests have been carried out, and it seems to perform quite reliably in those circumstances. However, I cannot simulate every network condition, so if you happen to come across a bug, please create an issue and include the console output for debugging :D

    Once again, thanks for testing Swiftcord! It means a lot to me <3

    macOS might flag Swiftcord as malware, and not allow you to open it since I did not sign it with a dev account. To open Swiftcord, you have to right click the app, and click run.

    Source code(tar.gz)
    Source code(zip)
    Swiftcord.zip(3.75 MB)
  • v0.1.0(Apr 13, 2022)

    I'm creating a pre-built release with version 0.1.0, for those who are interested in trying out Swiftcord but can't build the app from source.

    You'd need to unzip the zip, then right-click on the .app package and click run (shown below) since I did not sign the app with an apple developer account. Screen Shot 2022-04-13 at 11 06 19 AM

    Known Issues

    • Channel list buttons are not styled properly - This is a temporary UI issue
    • Scrolling lags and "hitches" - I'm currently trying to fix this performance issue, it's something to do with the way I'm decoding and handling Discord Gateway messages from the WebSocket (its not the most efficient)
    • All DMs do not have proper names (they just appear as #) - This is also being worked on currently

    Thanks for trying out Swiftcord! It means a lot to me :)

    If you run into any bugs, or have suggestions, feel free to leave a comment in the discussion for this release (click on the Join Discussion button at the bottom right, or click here) <3

    Full Changelog: https://github.com/cryptoAlgorithm/Swiftcord/commits/v0.1.0

    Source code(tar.gz)
    Source code(zip)
    Swiftcord.zip(5.48 MB)
Owner
CryptoAlgo-Dev
Developing Chatty, a secure end-to-end encrypted and annonymous online chatting app. Take a look at my README to see more projects/stats!
CryptoAlgo-Dev
100-Days-of-SwiftUI - Studying through Paul Hudson's 100 Days of SwiftUI

Hacking with SwiftUI 100 Days of SwiftUI Studying through Paul Hudson's "100 Day

Dean Thompson 3 Aug 29, 2022
Quotes App is quotes browsing app which is built with Quotable Free API completely in SwiftUI.

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

Dheeraj Kumar Sharma 30 Sep 21, 2022
Quotes App - quotes browsing app which is built with Quotable Free API completely in UIKit

Quotes App is quotes browsing app which is built with Quotable Free API completely in UIKit

Mohammed Sulaiman 1 Jan 29, 2022
🎲 100% SwiftUI 2.0, classic 2048 game [SwiftUI 2.0, iOS 14.0+, iPadOS 14.0+, macOS 11.0+, Swift 5.3].

swiftui-2048 If you like the project, please give it a star ⭐ It will show the creator your appreciation and help others to discover the repo. ✍️ Abou

Astemir Eleev 168 Sep 13, 2022
Seaglass is a truly native macOS client for Matrix. It is written in Swift and uses the Cocoa user interface framework.

Seaglass is a truly native macOS client for Matrix. It is written in Swift and uses the Cocoa user interface framework.

null 1 Jan 17, 2022
100-Days-of-SwiftUI - a free online course created and delivered by Paul Hudson

100-Days-of-SwiftUI DESCRIPTION 100 Days of SwiftUI is a free online course crea

null 0 Jan 9, 2022
All the projects from 100 Days of SwiftUI, as taught by Paul Hudson (Hacking with Swift)

100 Days of SwiftUI 19 projects of increasing complexity built with SwiftUI. These projects were built as part of an iOS development course taught by

Emmanuel Chucks 6 Aug 29, 2022
E-commerce app built in SwiftUI. Built in the course SwiftUI Masterclass in Udemy.

Touchdown-SwiftUI E-commerce app built in SwiftUI. Built in the course SwiftUI Masterclass in Udemy. Main components and concepts used: @EnvironmentOb

Jorge Martinez 5 Aug 18, 2022
A customizable Snapping Drawer à la Apple Maps.

 100% in SwiftUI.

Snap A customizable Snapping Drawer à la Apple Maps, Apple Music, Stocks, Overcast, etc.. 100% in SwiftUI This is heavily inspired by Rideau and based

Mathias Quintero 610 Sep 19, 2022
Riddler is a riddle game built as a native iOS app in Swift using SwiftUI

Riddler is a riddle game built as a native iOS app in Swift using SwiftUI. It includes 50 challenging riddles with hints for when you get stuck. The game tracks your stats so you can compare your performance against your friends, and see who can answer all 50 riddles the quickest.

Oliver Stenning 2 Jul 16, 2022
Native iOS app built in SwiftUI, displays a collection of user's books.

Native iOS app built in SwiftUI, displays a collection of user's books.

Matthew Eilar 1 May 23, 2022
A cross-platform Reddit client built in SwiftUI

A cross-platform Reddit client created in SwiftUI. Get the Public Beta Note: This project is far from complete. It still lacks many features of your t

Carson Katri 1.1k Sep 21, 2022
Tanukis-Stash - Open source e621 client for iOS built with SwiftUI

The Tanuki's Stash The worlds first e621 client for iOS, iPadOS, and macOS built

Jay 3 Jul 29, 2022
Swift iPhone and iPad Client for Polls API, using Hyperdrive API client

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

Apiary 34 Jul 15, 2022
Native Jellyfin Client for iOS and tvOS

Swiftfin Swiftfin is a modern client for the Jellyfin media server. Redesigned in Swift to maximize direct play with the power of VLC and look native

Jellyfin 653 Sep 25, 2022
iOS app that detects LaTeX symbols from drawings. Built using PencilKit, SwiftUI, Combine and CoreML for iOS 14 and macOS 11.

DeTeXt Finding the symbol you want to use in LaTeX can be hard since you can't memorize all the possible commands and packages for every symbol you mi

Venkat 63 Sep 20, 2022
RippleQueries is an iOS application built as assessment task at Ripple Egypt. Built Using MVVM (Model-View-ViewModel) and Clean Architecture concepts

RippleRepositories RippleRepositories is an iOS application built as an assessment task at Ripple Egypt. Built Using RxSwift & MVVM (Model-View-ViewMo

Muhammad Ewaily 3 Sep 16, 2021
A weather app developed in React Native. It is the React Native version of SwiftWeather.

ReactNativeWeather A weather app developed in React Native. It is the React Native version of SwiftWeather How to run the app Install react-native If

Jake Lin 22 Jun 7, 2022
This app is a native client for openHAB which allows easy access to your sitemaps

openHAB client for iOS Introduction This app is a native client for openHAB which allows easy access to your sitemaps. Beta releases are available on

openHAB 169 Jul 27, 2022