Encapsulation of My Personal App List
✦ My macOS/iOS application ✦
You can add MyAppListKit to an Xcode project by adding it as a package dependency.
- From the File menu, select Add Packages…
- Enter https://github.com/jaywcjlove/MyAppListKit in the Search or Enter Package URL search field
- Link
MyAppListKit
to your application target
Or add the following to Package.swift
:
.package(url: "https://github.com/jaywcjlove/MyAppListKit", branch: "main")
import MyAppListKit
List {
ForEach(MyAppList.apps(), id: \.appId) { app in
Button(app.name, action: {
app.openApp()
// or
MyAppList.openApp(appId: app.appId, appstoreId: app.appstoreId)
})
}
}
Button("More Apps by Me") {
MyAppList.openURL(url: URL(string: MyAppList.appsByMe)!)
// or
MyAppList.openAppsByMe()
}
MyAppList.appDevHub // -> AppData
MyAppList.appDevHub.storeURL // -> URL: macappstore://apps.apple.com/app/id6476452351
MyAppList.appDevHub.openURL() // Open in browser
MyAppList.appDevHub.openApp() // Open the app or its store download page
Returns the URL of the default app associated with the given bundle identifier.
MyAppList.appDevHub.appURL()
Checks if the app is installed
MyAppList.isAppInstalled(appId: "com.wangchujiang.daybar")
Display My Apps on the Menu.
struct CommandMenus: Commands {
var body: some Commands {
CommandMenu("More Tools") {
MoreAppsView()
}
CommandGroup(replacing: CommandGroupPlacement.help) {
MoreAppsMenuView()
}
}
}
import MyAppListKit
struct ContentView: View {
var body: some View {
MyAppCheckForUpdatesView(app: MyAppList.appIconed)
MyAppCheckForUpdatesView(app: MyAppList.appIconed) { label in
HStack {
Text(label)
Spacer()
Image(systemName: "chevron.right")
}
}
.frame(maxWidth: .infinity)
.buttonStyle(.link)
}
}
import MyAppListKit
@main
struct IconizeFolderApp: App {
var body: some Scene {
return Window("", id: "MainWindow") {
ContentView()
}
.commands {
MoreAppsCommandMenus()
}
}
}
Licensed under the MIT License.