├── .DS_Store ├── ExpenseTracker.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ ├── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── xcuserdata │ │ └── alfianlosari.xcuserdatad │ │ └── UserInterfaceState.xcuserstate └── xcuserdata │ └── alfianlosari.xcuserdatad │ └── xcschemes │ └── xcschememanagement.plist ├── ExpenseTracker ├── .DS_Store ├── AppDelegate.swift ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json ├── Base.lproj │ └── LaunchScreen.storyboard ├── ExpenseTracker.entitlements ├── Info.plist ├── Preview Content │ └── Preview Assets.xcassets │ │ └── Contents.json ├── SceneDelegate.swift └── Views │ ├── Common Views │ ├── CategoryImageView.swift │ ├── FilterCategoriesView.swift │ ├── SearchBar.swift │ └── SelectSortOrderView.swift │ ├── ContentView.swift │ ├── Dashboard │ ├── CategoryRowView.swift │ └── DashboardTabView.swift │ └── Logs │ ├── LogFormView.swift │ ├── LogListView.swift │ └── LogsTabView.swift ├── ExpenseTrackerMac ├── AppDelegate.swift ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json ├── Base.lproj │ └── Main.storyboard ├── ExpenseTrackerMac.entitlements ├── Info.plist ├── Preview Content │ └── Preview Assets.xcassets │ │ └── Contents.json └── Views │ ├── ContentView.swift │ ├── DashboardView.swift │ ├── FilterCategoriesView.swift │ ├── Log Views │ ├── LogFormView.swift │ ├── LogListView.swift │ └── LogView.swift │ ├── NSSavePanel+Extension.swift │ └── SelectSortOrderView.swift ├── README.md ├── Shared ├── ExpenseTracker.xcdatamodeld │ └── ExpenseTracker.xcdatamodel │ │ └── contents └── Views │ ├── Helpers │ ├── Extensions.swift │ └── Utils.swift │ ├── Models │ ├── Category.swift │ ├── CoreDataStack.swift │ ├── ExpenseLog+Extension.swift │ └── Sort.swift │ └── SwiftUICharts │ ├── Helpers.swift │ ├── PieChartCell.swift │ ├── PieChartRow.swift │ └── PieChartView.swift └── promo.png /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/.DS_Store -------------------------------------------------------------------------------- /ExpenseTracker.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTracker.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /ExpenseTracker.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTracker.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /ExpenseTracker.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTracker.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist -------------------------------------------------------------------------------- /ExpenseTracker.xcodeproj/project.xcworkspace/xcuserdata/alfianlosari.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTracker.xcodeproj/project.xcworkspace/xcuserdata/alfianlosari.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /ExpenseTracker.xcodeproj/xcuserdata/alfianlosari.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTracker.xcodeproj/xcuserdata/alfianlosari.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /ExpenseTracker/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTracker/.DS_Store -------------------------------------------------------------------------------- /ExpenseTracker/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTracker/AppDelegate.swift -------------------------------------------------------------------------------- /ExpenseTracker/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTracker/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /ExpenseTracker/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTracker/Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /ExpenseTracker/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTracker/Base.lproj/LaunchScreen.storyboard -------------------------------------------------------------------------------- /ExpenseTracker/ExpenseTracker.entitlements: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTracker/ExpenseTracker.entitlements -------------------------------------------------------------------------------- /ExpenseTracker/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTracker/Info.plist -------------------------------------------------------------------------------- /ExpenseTracker/Preview Content/Preview Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTracker/Preview Content/Preview Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /ExpenseTracker/SceneDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTracker/SceneDelegate.swift -------------------------------------------------------------------------------- /ExpenseTracker/Views/Common Views/CategoryImageView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTracker/Views/Common Views/CategoryImageView.swift -------------------------------------------------------------------------------- /ExpenseTracker/Views/Common Views/FilterCategoriesView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTracker/Views/Common Views/FilterCategoriesView.swift -------------------------------------------------------------------------------- /ExpenseTracker/Views/Common Views/SearchBar.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTracker/Views/Common Views/SearchBar.swift -------------------------------------------------------------------------------- /ExpenseTracker/Views/Common Views/SelectSortOrderView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTracker/Views/Common Views/SelectSortOrderView.swift -------------------------------------------------------------------------------- /ExpenseTracker/Views/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTracker/Views/ContentView.swift -------------------------------------------------------------------------------- /ExpenseTracker/Views/Dashboard/CategoryRowView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTracker/Views/Dashboard/CategoryRowView.swift -------------------------------------------------------------------------------- /ExpenseTracker/Views/Dashboard/DashboardTabView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTracker/Views/Dashboard/DashboardTabView.swift -------------------------------------------------------------------------------- /ExpenseTracker/Views/Logs/LogFormView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTracker/Views/Logs/LogFormView.swift -------------------------------------------------------------------------------- /ExpenseTracker/Views/Logs/LogListView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTracker/Views/Logs/LogListView.swift -------------------------------------------------------------------------------- /ExpenseTracker/Views/Logs/LogsTabView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTracker/Views/Logs/LogsTabView.swift -------------------------------------------------------------------------------- /ExpenseTrackerMac/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTrackerMac/AppDelegate.swift -------------------------------------------------------------------------------- /ExpenseTrackerMac/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTrackerMac/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /ExpenseTrackerMac/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTrackerMac/Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /ExpenseTrackerMac/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTrackerMac/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /ExpenseTrackerMac/ExpenseTrackerMac.entitlements: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTrackerMac/ExpenseTrackerMac.entitlements -------------------------------------------------------------------------------- /ExpenseTrackerMac/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTrackerMac/Info.plist -------------------------------------------------------------------------------- /ExpenseTrackerMac/Preview Content/Preview Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTrackerMac/Preview Content/Preview Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /ExpenseTrackerMac/Views/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTrackerMac/Views/ContentView.swift -------------------------------------------------------------------------------- /ExpenseTrackerMac/Views/DashboardView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTrackerMac/Views/DashboardView.swift -------------------------------------------------------------------------------- /ExpenseTrackerMac/Views/FilterCategoriesView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTrackerMac/Views/FilterCategoriesView.swift -------------------------------------------------------------------------------- /ExpenseTrackerMac/Views/Log Views/LogFormView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTrackerMac/Views/Log Views/LogFormView.swift -------------------------------------------------------------------------------- /ExpenseTrackerMac/Views/Log Views/LogListView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTrackerMac/Views/Log Views/LogListView.swift -------------------------------------------------------------------------------- /ExpenseTrackerMac/Views/Log Views/LogView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTrackerMac/Views/Log Views/LogView.swift -------------------------------------------------------------------------------- /ExpenseTrackerMac/Views/NSSavePanel+Extension.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTrackerMac/Views/NSSavePanel+Extension.swift -------------------------------------------------------------------------------- /ExpenseTrackerMac/Views/SelectSortOrderView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/ExpenseTrackerMac/Views/SelectSortOrderView.swift -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/README.md -------------------------------------------------------------------------------- /Shared/ExpenseTracker.xcdatamodeld/ExpenseTracker.xcdatamodel/contents: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/Shared/ExpenseTracker.xcdatamodeld/ExpenseTracker.xcdatamodel/contents -------------------------------------------------------------------------------- /Shared/Views/Helpers/Extensions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/Shared/Views/Helpers/Extensions.swift -------------------------------------------------------------------------------- /Shared/Views/Helpers/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/Shared/Views/Helpers/Utils.swift -------------------------------------------------------------------------------- /Shared/Views/Models/Category.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/Shared/Views/Models/Category.swift -------------------------------------------------------------------------------- /Shared/Views/Models/CoreDataStack.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/Shared/Views/Models/CoreDataStack.swift -------------------------------------------------------------------------------- /Shared/Views/Models/ExpenseLog+Extension.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/Shared/Views/Models/ExpenseLog+Extension.swift -------------------------------------------------------------------------------- /Shared/Views/Models/Sort.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/Shared/Views/Models/Sort.swift -------------------------------------------------------------------------------- /Shared/Views/SwiftUICharts/Helpers.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/Shared/Views/SwiftUICharts/Helpers.swift -------------------------------------------------------------------------------- /Shared/Views/SwiftUICharts/PieChartCell.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/Shared/Views/SwiftUICharts/PieChartCell.swift -------------------------------------------------------------------------------- /Shared/Views/SwiftUICharts/PieChartRow.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/Shared/Views/SwiftUICharts/PieChartRow.swift -------------------------------------------------------------------------------- /Shared/Views/SwiftUICharts/PieChartView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/Shared/Views/SwiftUICharts/PieChartView.swift -------------------------------------------------------------------------------- /promo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfianlosari/ExpenseTrackerSwiftUICDCKCompleted/HEAD/promo.png --------------------------------------------------------------------------------