# Building the Daily Notification Plugin

## Important: Standalone Build Limitations

**Capacitor plugins cannot be built standalone** because Capacitor dependencies are npm packages, not Maven artifacts. 

### ✅ Correct Way to Build

Build the plugin **within a Capacitor app** that uses it:

```bash
# In a consuming Capacitor app (e.g., test-apps/android-test-app or your app)
cd /path/to/capacitor-app/android
./gradlew assembleDebug

# Or use Capacitor CLI
npx cap sync android
npx cap run android
```

### ❌ What Doesn't Work

```bash
# This will fail - Capacitor dependencies aren't in Maven
cd android
./gradlew assembleDebug
```

### Why This Happens

1. **Capacitor dependencies are npm packages**, not Maven artifacts
2. **Capacitor plugins are meant to be consumed**, not built standalone
3. **The consuming app provides Capacitor** as a project dependency
4. **When you run `npx cap sync`**, Capacitor sets up the correct dependency structure

### For Development & Testing

Use the test app at `test-apps/android-test-app/`:

```bash
cd test-apps/android-test-app
npm install
npx cap sync android
cd android
./gradlew assembleDebug
```

The plugin will be built as part of the test app's build process.

### Gradle Wrapper Purpose

The gradle wrapper in `android/` is provided for:
- ✅ **Syntax checking** - Verify build.gradle syntax
- ✅ **Android Studio** - Open the plugin directory in Android Studio for editing
- ✅ **Documentation** - Show available tasks and structure
- ❌ **Not for standalone builds** - Requires a consuming app context

### Verifying Build Configuration

You can verify the build configuration is correct:

```bash
cd android
./gradlew tasks  # Lists available tasks (may show dependency errors, that's OK)
./gradlew clean  # Cleans build directory
```

The dependency errors are expected - they confirm the plugin needs a consuming app context.

