πŸ“¦β˜οΈ iCloud_Storage_Sync Plugin

Seamless iCloud integration for your Flutter iOS apps!

iCloud Storage Sync Banner

🌟 Introduction

iCloud_Storage_Sync simplifies iCloud storage integration, bringing powerful cloud capabilities to your Flutter iOS apps:

πŸ”„ Effortless backup and sync of app data

πŸ“±πŸ’» Consistent user experience across all devices

πŸ”’ Secure storage and retrieval of important information

☁️ Seamless integration with the iCloud ecosystem

✨ Features

Feature Description
πŸ“‚ Get iCloud files
⬆️ Upload files to iCloud
✏️ Rename iCloud files
πŸ—‘οΈ Delete iCloud files
↔️ Move iCloud files

πŸš€ Getting Started

1. πŸ› οΈ Installation

Add this to your pubspec.yaml:

dependencies:
  icloud_storage_sync: ^1.0.0

2. βš™οΈ Install the Plugin

Run:

flutter pub get

3. πŸ’» Usage

Import in your Dart code:

import 'package:icloud_storage_sync/icloud_storage_sync.dart';

πŸ“‹ Prerequisites

Before diving in, make sure you have:

β˜‘οΈ An Apple Developer account

β˜‘οΈ App ID and iCloud Container ID

β˜‘οΈ iCloud capability enabled and assigned

β˜‘οΈ iCloud capability configured in Xcode

πŸ” See How to set up iCloud Container for step-by-step instructions.


🧰 API Examples

πŸ“₯ Getting iCloud Files

Future<List<CloudFiles>> getCloudFiles({required String containerId}) async {
  return await icloudSyncPlugin.getCloudFiles(containerId: containerId);
}

πŸ“€ Uploading Files to iCloud

Future<void> upload({
  required String containerId,
  required String filePath,
  String? destinationRelativePath,
  StreamHandler<double>? onProgress,
}) async {
  await icloudSyncPlugin.upload(
    containerId: containerId,
    filePath: filePath,
    destinationRelativePath: destinationRelativePath,
    onProgress: onProgress,
  );
}

🏷️ Renaming iCloud Files

Future<void> rename({
  required String containerId,
  required String relativePath,  
  required String newName,
}) async {
  await icloudSyncPlugin.rename(
    containerId: containerId,
    relativePath: relativePath,
    newName: newName,
  );  
}

πŸ—‘οΈ Deleting iCloud Files

Future<void> delete({
  required String containerId,
  required String relativePath,
}) async {
  await icloudSyncPlugin.delete(
    containerId: containerId,
    relativePath: relativePath,
  );
}

πŸ”„ Replace iCloud Files

Future replaceFile({
  required String updatedFilePath,
  required String relativePath
  }) async {
    await icloudSyncPlugin.replace(
      containerId: iCloudContainerId,
      updatedFilePath: updatedFilePath,
      relativePath: relativePath,
    );
}

πŸ”€ Moving iCloud Files

Future<void> move({
  required String containerId,  
  required String fromRelativePath,
  required String toRelativePath,  
}) async {
  await IcloudSyncPlatform.instance.move(
    containerId: containerId,
    fromRelativePath: fromRelativePath,
    toRelativePath: toRelativePath,
  );
}

πŸ›  How to set up iCloud Container and enable the capability

  1. πŸ‘€ Log in to your Apple Developer account and select 'Certificates, IDs & Profiles'.

  2. πŸ†” Create an App ID (if needed) and an iCloud Containers ID:

    iCloud Container ID

  3. πŸ”— Assign the iCloud Container to your App ID:

    Assign iCloud Capability

  4. πŸ’» In Xcode, enable iCloud capability and select your container:

    Xcode Capability


🀝 Contributing

πŸ™ Acknowledgements

  • Thanks to all the contributors who have helped shape this plugin
  • Apple for providing the iCloud infrastructure

Made with ❀️ by the DevCodeSpace