carson-katri/reddit-swiftui
SwiftmacOSiOS
대체: Reddit
A cross-platform Reddit client built in SwiftUI
swiftuiswiftui-exampleredditiosmacoswatchos
주요 지표
스타 성장
스타
1.3k
포크
86
주간 성장
+0
이슈
6
5001k
2019년 8월2020년 10월2021년 12월2023년 3월2024년 5월2025년 8월2026년 10월
README

A cross-platform Reddit client created in SwiftUI.
Note: This project is far from complete. It still lacks many features of your typical Reddit client and has bugs (partly due to SwiftUI, but I'll take credit for some of them)
To show off SwiftUI's strength in cross-platform development, I did not use Mac Catalyst for this project. Instead, common UI code is shared between iOS, macOS, and watchOS.
Project Structure
Shared- Models, helpers, API, and any shared Views.Reddit-[PLATFORM]- Each target folder contains aViewsandRepresentablefolder.Viewsholds platform-specific views, andRepresentablecontainsUIViewRepresentablesorNSViewRepresentables.
macOS Specific Features
I've added several things to make the macOS app stand out:
- Double click - You can double click on a post to open a new window for the detail view.
NSToolbar- This is implemented entirely in theAppDelegate, and uses standard Cocoa code which interfaces with the SwiftUI views.TouchBar- TODO
SF Symbols
Because macOS doesn't support SF Symbols, I have created the following extension to make sure shared code works. I would like to replace this with custom icons for macOS that it loads from XCAssets eventually:
/// `SwiftUI` compatibility
#if os(macOS)
extension Image {
init(systemName: String) {
self.init(nsImage: NSImage())
}
}
#endif