Directory

5.0.0

A means of accessing the file system conveniently in a SwiftUI environment.
nashysolutions/Directory

What's New

Release 5.0.0

2022-07-26T09:06:49Z

See Changelog.

Directory

iOS macOS

A means of accessing the file system in a SwiftUI environment, conveniently.

Usage

Let's assume you have a data type called 'Project'.

struct Project: Codable, Equatable, Container {

    let name: String
    
    // See wiki/typical-implementation
}

By conforming to the above protocols, you may now create Directory<Project> or PhotosDirectory<Project>.

struct ContentView: View {
    
    @StateObject var store: Directory<Project>
    
    var body: some View {
        List {
            ForEach(store.fetchedItems) { project in
                // do something
            }
        }
        .onAppear(perform: {
            // store.fetchAndWait()
            Task {
               await store.fetch()
            }
        })
    }
        
    // stores permanently to disk
    // triggers UI re-render
    private func addProject() {
        let project = Project(name: "Project " + UUID().uuidString)
        try! store.append(project)
        // See wiki/useful-api for additional functionality.
    }
}
  • For parent-child folder relationships see wiki.
  • Demo App available here.
  • Only suitable for small payloads. If using larger files and / or CloudKit consider using NSFilCoordinator directly.

Installation

Use the Swift Package Manager documentation.

Description

  • Swift Tools 5.5.0
View More Packages from this Author

Dependencies

Last updated: Mon Nov 07 2022 23:45:59 GMT-0500 (GMT-05:00)