搜索插件、代码仓与 APP 分类

插件详情v0.12.0

device_calendar_plus

A modern, maintained Flutter plugin for reading and writing device calendar events on Android and iOS.

AndroidiOS
近 30 天下载
3.6万
喜欢数
23
Pub 分数
160

安装插件

flutter pub add device_calendar_plus

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

A modern and actively maintained Flutter plugin that enables seamless reading and writing of calendar events on both Android and iOS devices. Designed with up-to-date APIs and improved reliability, it provides a consistent interface for managing device calendars across platforms. The package supports event creation, retrieval, updates, and deletion, making it ideal for apps requiring calendar integration. It is well-documented and maintained by the bullet.to team, ensuring compatibility with current Flutter versions.

适合场景

  • Calendar event management in productivity apps
  • Scheduling reminders and appointments
  • Integrating user calendar data into task planners
  • Syncing app events with native calendars
  • Building appointment booking systems

主要特点

  • Cross-platform support (Android & iOS)
  • Real-time event synchronization
  • Active maintenance and updates
  • Simple, intuitive API
  • Supports event creation, reading, updating, and deletion

适合对象

  • Developers building calendar-integrated apps
  • Productivity and scheduling tools
  • Apps needing native calendar access
  • Teams prioritizing reliable third-party plugins
  • Projects requiring up-to-date Flutter compatibility

使用建议

  • Requires user permission to access calendar
  • May need additional setup for background execution
  • Limited to native calendar functionality
  • Not suitable for cloud-based calendar sync without additional logic
  • Permissions must be handled carefully on both platforms

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

device_calendar_plus

A modern, federated Flutter plugin for reading and writing device calendar events on Android and iOS.

Note: This is the developer/contributor documentation. For plugin usage and API documentation, see the device_calendar_plus package README.

🏗️ Architecture

This is a federated plugin following Flutter's federated plugin architecture:

device_calendar_plus/
├── packages/
│   ├── device_calendar_plus/              # Main package (public API)
│   ├── device_calendar_plus_platform_interface/  # Platform interface
│   ├── device_calendar_plus_android/      # Android implementation
│   └── device_calendar_plus_ios/          # iOS implementation
└── example/                                # Example app & integration tests
Package Structure
  • device_calendar_plus: The main package that app developers depend on. Contains the public Dart API and exports platform interface types.

  • device_calendar_plus_platform_interface: Defines the interface that platform implementations must follow. Contains method signatures and data contracts.

  • device_calendar_plus_android: Android-specific implementation using Kotlin and the Android Calendar Provider API.

  • device_calendar_plus_ios: iOS-specific implementation using Swift and EventKit.

  • example/: Example app demonstrating plugin usage, also contains integration tests.

🚀 Getting Started

Prerequisites
  • Flutter SDK (latest stable)
  • For iOS development: Xcode 15+
  • For Android development: Android Studio with Android SDK 24+

Optional (but recommended):

  • Very Good CLI: dart pub global activate very_good_cli - Makes running tests faster with optimized configuration
Setup
  1. Clone the repository:
git clone https://github.com/yourusername/device_calendar_plus.git
cd device_calendar_plus
  1. Install dependencies:
flutter pub get

This project uses Dart workspaces, so a single flutter pub get at the root will install dependencies for all packages.

🧪 Testing

Unit Tests

Run all unit tests across all packages using Very Good CLI (recommended):

very_good test --recursive

This will run tests in all /packages/*/test/ directories with optimized configuration.

Integration Tests

Integration tests are located in example/integration_test/ and test the plugin against real platform APIs.

Running on a Device/Emulator

From the example directory:

cd example
./run_integration_tests.sh <device-id>

Get the device ID from:

flutter devices
Platform-Specific Notes

iOS:

  • Requires a simulator or physical device
  • Calendar permissions will be requested during tests
  • Tests create temporary calendars that are cleaned up

Android:

  • Requires an emulator or physical device with API 24+
  • Calendar permissions will be requested during tests
  • Tests create temporary calendars that are cleaned up

🤝 Contributing

This project is closed to outside pull requests. Bug reports and feature requests are welcome - please open an issue. See CONTRIBUTING.md for the design philosophy and conventions.

📄 License

MIT © 2025 Bullet

See LICENSE for details.


Maintained by Bullet — a cross-platform task + notes + calendar app built with Flutter.

所属分类

依赖

源码仓库

使用此插件的项目

暂无相关数据。

所在榜单