A Swift component that replicates iMessage's custom photo action sheet for iOS apps.
ImagePickerSheetController is a Swift library for iOS that replicates the custom photo action sheet used in iMessage. It provides a native-looking interface for users to select photos or videos from their library or camera, with support for secondary actions like adding comments. The component solves the need for a polished, familiar photo picker that matches iOS design standards without requiring custom UI development.
iOS developers building apps that require photo or video selection functionality, particularly those aiming for a native iMessage-like user experience. It's suitable for apps needing a drop-in, customizable photo action sheet.
Developers choose ImagePickerSheetController because it offers a ready-made, Apple-design-compliant photo picker with a simple API similar to UIAlertController. Its unique selling point is replicating iMessage's specific interaction patterns, saving development time while ensuring a polished user experience.
ImagePickerSheetController replicates the custom photo action sheet in iMessage.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Replicates the exact look and feel of iMessage's photo action sheet, providing a polished and familiar experience for iOS users, as shown in the README's screenshot and description.
Uses a UIAlertController-style API, making integration concise and easy for developers already familiar with iOS SDK patterns, as demonstrated in the example code.
Supports both images and videos with configurable selection via the mediaType parameter, handling common use cases without extra setup.
Allows primary and secondary actions, enabling features like commenting or sending multiple selections, as shown in the handler examples for adding dynamic behavior.
Recommends using stringsdict for pluralization, which simplifies translation and localization in multiple languages, as noted in the usage section.
Requires iOS 9.0 or later and Photos.framework, excluding older devices and adding dependency overhead that might not be necessary for all apps.
The README points to a separate iOS 10 version library, suggesting potential fragmentation or lack of consistent updates, which could lead to compatibility issues with newer iOS versions.
While customizable, the component is tightly modeled on iMessage's design, making extensive UI modifications difficult without forking or significant code changes.
Requires manual addition of NSCameraUsageDescription and NSPhotoLibraryUsageDescription keys to Info.plist, which, while standard, adds an extra step compared to some alternatives.