https://github.com/sachinsagrawal/xcode-rpc
An Xcode RPC for Discord originally made by llsc12 with an improved UI by me
https://github.com/sachinsagrawal/xcode-rpc
axswift discord discord-rpc rich-presence rpc swift swordrpc xcode
Last synced: 8 months ago
JSON representation
An Xcode RPC for Discord originally made by llsc12 with an improved UI by me
- Host: GitHub
- URL: https://github.com/sachinsagrawal/xcode-rpc
- Owner: SachinSAgrawal
- License: mit
- Created: 2024-05-16T13:37:43.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-16T14:46:59.000Z (almost 2 years ago)
- Last Synced: 2024-05-16T15:56:03.150Z (almost 2 years ago)
- Topics: axswift, discord, discord-rpc, rich-presence, rpc, swift, swordrpc, xcode
- Language: Swift
- Homepage:
- Size: 279 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Xcode RPC
## About
An Custom Rich Presence utility app to display Xcode as your activity on Discord. Other RPC apps already exist, but they come with a few caveats, namely that they rely on AppleScript to poll Xcode. Xcode RPC uses Accessibility APIs which work better and avoids launching Xcode randomly like AppleScript does.
## Acknowledgments
Ths app was fully created by Lakhan Lothiyi, also known as llsc12. I wanted to know how he had Xcode as his Discord RPC after seeing it, and he pointed me towards [his app](https://github.com/llsc12/XRPC). There were a few changes I wanted to make to the app to improve the user interface and a little bit more. Because of the permissive free software license he included, I am publishing my changes on Github. The basic functionality and logic is not mine, however, so almost all of the credit should go to him.
## Improvements
* This app's icon is Discord's Clyde, from nothing before.
* There is now the ability to pause and resume connection.
* The menu bar item is now a `NSMenu` instead of a `NSPopover`.
* The setup screen is better laid out for a nicer UI.
* The icon in the menu bar is now a hammer inside a circle.
* It is filled if the RPC is connected and Xcode is open.
* The code is commented with the help of ChatGPT.
## Installation
Assuming I did things correctly, check out [Releases](https://github.com/SachinSAgrawal/Xcode-RPC/releases) for the most recent build. Download the `XcodeRPC.zip` (not the source code) and uncompress the folder. Drag it into to the Applications folder and open it from `Launchpad`.
#### Building Yourself
1. Clone this repository or download it as a zip folder and uncompress it.
2. Open up the `.xcworkspace` file, which should automatically launch Xcode.
3. You might need to change the signing of the app from the current one.
4. Under `Product`, click on `Archive`, then distribute it by exporting a copy.
5. Save the archive to the Applications folder and open it from `Launchpad`.
## SDKs
* [SwiftUI](https://developer.apple.com/xcode/swiftui/) - SwiftUI is an innovative, exceptionally simple way to build user interfaces.
* [AXSwift](https://github.com/tmandry/AXSwift) - A basic Swift wrapper for easier accessibility client APIs made by Tmandry.
* [SwordRPC](https://github.com/Azoy/SwordRPC) - A Discord Rich Presence Library pod for Swift made by Azoy.
* [Cocoa](https://cocoapods.org/) - A dependency manager for Swift and Objective-C Cocoa projects.
* [Swift](https://developer.apple.com/swift/) - A powerful and intuitive programming language for all Apple platforms.
## Bugs
If you find any, you are welcome to open up a new issue here, however, since I really didn't code this app, I would recommend opening one on llsc12's repository.
#### Known
- [ ] Some file types do not display an icon. I created a list of some line 158 of `RPC.swift` for which the Xcode icon will display, but I am sure there are more.
## Contributors
Lakhan Lothiyi: Original creator of XRPC and developer of DeltaTube. Go check him out!
Sachin Agrawal: I'm a self-taught programmer who knows many languages and I'm into app, game, and web development. For more information, check out my website or Github profile. If you would like to contact me, my email is [github@sachin.email](mailto:github@sachin.email).
## License
This package is licensed under the [MIT License](LICENSE.txt).