adds ios
This commit is contained in:
89
ios/TimeTracker/README.md
Normal file
89
ios/TimeTracker/README.md
Normal file
@@ -0,0 +1,89 @@
|
||||
# TimeTracker iOS App
|
||||
|
||||
## Setup Instructions
|
||||
|
||||
### Prerequisites
|
||||
|
||||
1. **XcodeGen** - Required to generate the Xcode project
|
||||
```bash
|
||||
# On macOS:
|
||||
brew install xcodegen
|
||||
|
||||
# Or via npm:
|
||||
npm install -g xcodegen
|
||||
```
|
||||
|
||||
2. **Xcode** - For building the iOS app (macOS only)
|
||||
|
||||
### Project Generation
|
||||
|
||||
After installing XcodeGen, generate the project:
|
||||
|
||||
```bash
|
||||
cd ios/TimeTracker
|
||||
xcodegen generate
|
||||
```
|
||||
|
||||
This will create `TimeTracker.xcodeproj` in the `ios/TimeTracker` directory.
|
||||
|
||||
### Configuration
|
||||
|
||||
Before building, configure the API base URL:
|
||||
|
||||
1. Open `TimeTracker.xcodeproj` in Xcode
|
||||
2. Select the TimeTracker target
|
||||
3. Go to Info.plist
|
||||
4. Add or modify `API_BASE_URL` with your backend URL:
|
||||
- For development: `http://localhost:3001`
|
||||
- For production: Your actual API URL
|
||||
|
||||
### Building
|
||||
|
||||
Open the project in Xcode and build:
|
||||
|
||||
```bash
|
||||
open ios/TimeTracker/TimeTracker.xcodeproj
|
||||
```
|
||||
|
||||
Then select your target device/simulator and press Cmd+B to build.
|
||||
|
||||
### Authentication Setup
|
||||
|
||||
1. Configure your OIDC provider settings in the backend
|
||||
2. The iOS app uses ASWebAuthenticationSession for OAuth
|
||||
3. The callback URL scheme is `timetracker://oauth/callback`
|
||||
|
||||
### App Groups
|
||||
|
||||
For the widget to work with the main app, configure the App Group:
|
||||
- Identifier: `group.com.timetracker.app`
|
||||
- This is already configured in the project.yml
|
||||
|
||||
### Dependencies
|
||||
|
||||
The project uses Swift Package Manager for dependencies:
|
||||
- [SQLite.swift](https://github.com/stephencelis/SQLite.swift) - Local database
|
||||
- [KeychainAccess](https://github.com/kishikawakatsumi/KeychainAccess) - Secure storage
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
TimeTracker/
|
||||
├── TimeTrackerApp/ # App entry point
|
||||
├── Core/
|
||||
│ ├── Network/ # API client
|
||||
│ ├── Auth/ # Authentication
|
||||
│ └── Persistence/ # SQLite + sync
|
||||
├── Features/
|
||||
│ ├── Auth/ # Login
|
||||
│ ├── Timer/ # Timer (core feature)
|
||||
│ ├── TimeEntries/ # Time entries CRUD
|
||||
│ ├── Projects/ # Projects CRUD
|
||||
│ ├── Clients/ # Clients CRUD
|
||||
│ └── Dashboard/ # Dashboard
|
||||
├── Models/ # Data models
|
||||
├── Shared/ # Extensions & components
|
||||
└── Resources/ # Assets
|
||||
|
||||
TimeTrackerWidget/ # iOS Widget Extension
|
||||
```
|
||||
Reference in New Issue
Block a user