https://github.com/gahntpo/Slipbox
The project is using Core Data with iCloud sync. It is a cross-platform app for iOS and macOS written in SwiftUI.
https://github.com/gahntpo/Slipbox
ios macos swift swiftui
Last synced: over 1 year ago
JSON representation
The project is using Core Data with iCloud sync. It is a cross-platform app for iOS and macOS written in SwiftUI.
- Host: GitHub
- URL: https://github.com/gahntpo/Slipbox
- Owner: gahntpo
- Created: 2020-12-22T17:05:26.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2022-01-08T19:07:26.000Z (over 4 years ago)
- Last Synced: 2023-03-04T23:24:30.622Z (about 3 years ago)
- Topics: ios, macos, swift, swiftui
- Language: Swift
- Homepage:
- Size: 72.3 KB
- Stars: 50
- Watchers: 4
- Forks: 3
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Slipbox
To setup this project you need to have a paid developer account, because the project is using Core Data with iCloud sync. Go to project settings under target / signing & capabilities and add team.
You also will need to create a iCloud container under the iCloud capabilities.
## Zettelkasten
The app is a note taking system invented by a German sociologist Lukas Luhmann. You can find more information on the Zettelkasten here:
https://zettelkasten.de

When you open the application, you get one window with a toolbar and 4 columns. You can create more windows under the menu Window / new Window.
The app uses a AppDelegate. So we don't get support for the .toolbar modifiers, which work with windowgroup. The toolbar is coded with a NSToolbar (in the project under SlipboxApp / main window). There are 3 toggles in the toolbar to show/hide the keyword column, folder column and notes column.
You can create new keywords, folder and notes. All elements support drag and drop, so you can drag a keyword to a note to add it. You can drag a note to another note to create a link between these two notes.
Linked notes appear in the lower part of the note editor area. You can right click on a link and have the option to open the link in a new note.

The project organization has a shared folder, which has mainly the Core Data model and model extension files. The shared folder is added to the macOS and iOS target. I did not add much code for iOS yet, but it will run and show a basic NavigationView.
You can see the use of FetchRequest in the Note Group in the NoteListView. The initializer uses a NSPredicate to find all the notes of this folder.
A more advanced fetch is in the NavigationStateManager.
