iOS App Development: Local Data Handling with Core Data

Job ID: 37154522

Budget: $250 – $750 USD

Objective
Develop a Proof-of-Concept (POC) iOS application that uses Core Data for local data storage and manipulation. The app will focus on handling offline scenarios effectively.

Technology Stack
- iOS/UIKit
- Swift (latest supported version)
- Core Data

Example of possible Data Models
- App
-- reports: [Report]
-- dataFrames: [DataFrame]
-- database: [String]
-- users: [User]
-- configuration: Config

-Report
-- id: String
-- name: String
-- dataFrameIds: [String]

- DataFrame
-- id: String
-- data: Any?

- Bookmark
-- id: String
-- reportId: String
-- indices: [Int]

- Config
-- skipIntro: Bool
-- theme: Theme
-- palette: Palette
-- appearance: .system | .light | .dark
-- fontSize: Int

Features

Default App State with Sample Data
Populate the app with sample reports, bookmarks, dataframes, and JSON data files when first launched.

Report Manipulation
Delete a report
Add a report
Reorder a report based on its index in the list

Bookmark Manipulation
Delete a bookmark
Add a bookmark
Reorder a bookmark based on its index in the list

Search Functionality
Perform a search within reports and bookmarks based on specified keys/properties.

App Manipulation
Reset the app to its original state, reverting to the sample data.

DataFrame and JSON File Manipulation
DataFrames contain an array of JSON data source IDs.
When a DataFrame is accessed, load the corresponding JSON file to populate its data property if not already populated.

Additional Requirements

Persistence
The data changes should be persistent and must survive app relaunches.

Offline Handling
The app should be able to function completely offline for the scope of this POC. Future versions may include server syncing, but that is out of scope for this project.

User Interface (UI)
A minimal UI is required to demonstrate the backend functionality.
The UI should feature four tabs, each with its own UICollectionView:
- Reports Tab: Displays the current list of reports. Users must be able to add, delete, and reorder reports.
- Bookmarks Tab: Displays the current list of bookmarks. Users must be able to add, delete, and reorder bookmarks.
- Search Tab: Provides search functionality for reports and bookmarks.
- Configurations Tab: Displays the current app configurations.
Use a UICollectionView with a diffable data source for each tab to manage the lists and search functionality.

If you have experience in iOS app development and are confident in your ability to handle local data with Core Data, please submit your proposal.