Apple SwiftUI macOS POC sample project

Job ID: 34317023

Budget: €30 – €250 EUR

Overview:
Very simple macOS SwiftUI demo app with a ContentView, Sidebar, ItemsListView and a ItemDetailsView.
POC is to demonstrate SwiftUI concepts.
It shows how data is shared between Views. Seleting/Deseleting items is the main task here.
Ask for source code in the chat and I will provide it.
To be specific as possible I've provided 21 Todos that needs to be completed for this project.
The Todos get more clear when you look into the source code because I'm referencing it there.

Keep in mind:
• Goal is to demonstrate how this is done with SwiftUI
• UI design not needed, main elements are already added. Just show the data.
• Code has bugs that needs to be fixed if necessary to complete all tasks
• Refactor code if necessary to complete all tasks
• Every implementation should be done as simple as possible
• Don't change the scope of functions, structs, properties, ... without consulting me upfront and accepting the change
• Don't remove functionality that is already implemented
• Try to use the provided git repo and commit your changes there

Todos:
// TODO 1: Select a Sidebaritem with a mouse click
// TODO 2: Deselect SidebarItem with mouse
// TODO 3: Programmatically select sidebarItem
// TODO 4: Deselect SidebarItem programmatically
// TODO 5: SidebarItem selection triggers ItemsListView -> run .task({}) modifier on ItemsListView to provide sample data
// TODO 6: Confirm Todo 5 works with mouse selection and programmatically selection
// TODO 7: ItemListView selection works with mouse click
// TODO 8: ItemListView selection works programmatically
// TODO 9: ItemListView deselect work with mouse while click away in empty space
// TODO 10: ItemListView deselect works programmatically
// TODO 11: ItemListView content update works for type == .file different than for type == .folder
// TODO 12: ItemListView .file selection updates the ItemDetailsView and shows the selected item
// TODO 13: ItemListView .folder selection updates the ItemListView with new content for the listItems and triggered by the selected 'folder' item.
// TODO 14: TODO 12 and 13 are very important. Make sure they are well understood and implemented.
// TODO 15: Running TODO 13 should deselect the selectedSidebarItem
// TODO 16: ItemDetailsView can be deselected when the item in the ItemListView is deselected
// TODO 17: Search: execute a simulated background task. Result is filtering the listItems according to the seach string.
// TODO 18: When a search is running and filteres content is shows there is no item selected in the listItems
// TODO 19: Cancel search restores the content before the search was executed for all views
// TODO 20: toolbarItems are updated every time something is selected. This should work when something is selected with the mouse or when something is selected programmatically.
// TODO 21: Selecting a toolbaritem 'restores' the selection for all views.
Related categories: Mac OS Swift Apple Xcode