This guide charts the optimal progression of a media creation-focused app from a likely starting place to best-in-class. It's designed to help you think about scaling your app over time, and what features to implement when. While every media creation app is different, consider these recommendations to achieve a best-in-class app.

## Basic media creation

A basic media creation app provides users with a foundational experience, which may include doing the following:

- Use[photo picker](https://developer.android.com/training/data-storage/shared/photopicker)to access existing photos and videos.
- Support[in-app image](https://developer.android.com/training/camerax/take-photo)and[in app video](https://developer.android.com/training/camerax/video-capture)capture using CameraX.
- Handle[camera orientation](https://developer.android.com/training/camerax/orientation-rotation).
- Support[automatic resolution](https://developer.android.com/media/camera/camerax/configuration#automatic-resolution).
- [Switch](https://developer.android.com/reference/androidx/camera/core/CameraSelector)between[front](https://developer.android.com/reference/androidx/camera/core/CameraSelector#DEFAULT_FRONT_CAMERA())and[back](https://developer.android.com/reference/androidx/camera/core/CameraSelector#DEFAULT_BACK_CAMERA())camera.
- Support[zoom](https://developer.android.com/reference/androidx/camera/core/ZoomState)and[tap-to-focus](https://developer.android.com/reference/kotlin/androidx/camera/view/CameraController#setTapToFocusEnabled(boolean)).
- Support hardware[flash](https://developer.android.com/training/camerax/take-photo#set-flash-mode).
- Handle[multi-window camera access](https://developer.android.com/develop/ui/compose/layouts/adaptive/support-multi-window-mode#exclusive_resource_access).
- Use the[Android Sharesheet](https://developer.android.com/training/sharing/send#why-to-use-system-sharesheet)to share with other apps and targets.

## Better media creation

A better media creation app gives users access to premium camera hardware, camera software, and media-editing features that:

**Capture**

- Use[camera extensions](https://developer.android.com/training/camerax/extensions-api):[night mode](https://developer.android.com/reference/android/hardware/camera2/CameraExtensionCharacteristics#EXTENSION_NIGHT),[HDR](https://developer.android.com/reference/android/hardware/camera2/CameraExtensionCharacteristics#EXTENSION_HDR), or[bokeh](https://developer.android.com/reference/android/hardware/camera2/CameraExtensionCharacteristics#EXTENSION_BOKEH).
- Have[zero shutter lag](https://developer.android.com/training/camerax/take-photo#zero-shutter-lag).
- Support[screen-based flash](https://developer.android.com/reference/kotlin/androidx/camera/view/ScreenFlashView)for selfie cameras.
- Use manual[flash](https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics#FLASH_SINGLE_STRENGTH_DEFAULT_LEVEL)or[torch](https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics#FLASH_TORCH_STRENGTH_DEFAULT_LEVEL)controls.
- Use[target resolutions](https://developer.android.com/media/camera/camerax/configuration#specify-resolution).
- Have[exposure compensation](https://developer.android.com/media/camera/camerax/configuration#exposure-compensation).
- Add an[app widget](https://developer.android.com/develop/ui/views/appwidgets/overview)so users can get start a capture flow from their home screen.

**Edit**

- With video[trimming](https://developer.android.com/media/media3/transformer/transformations#trim),[cropping](https://developer.android.com/reference/androidx/media3/effect/Crop), and other built-in[Media3 transformer](https://developer.android.com/guide/topics/media/transformer)[effects](https://developer.android.com/reference/androidx/media3/common/Effect).
- [UltraHDR images](https://developer.android.com/media/grow/ultra-hdr-edit#basic-edits), rotation, cropping, and scaling.
- Use[image filters](https://developer.android.com/develop/ui/compose/graphics/images/customize#color-filter)and transformations.
- Audio with[audio effects](https://developer.android.com/reference/androidx/media3/common/audio/AudioProcessor).

## Best media creation

A best-in-class media creation app gives users access to advanced features that really make the app stand out, such as:

**Capture**

- Use concurrent cameras:[front-and-back simultaneous capture](https://developer.android.com/media/camera/camera2/multiple-camera-streams-simultaneously).
- Stream live with adaptive live streaming. Consider using[performance class](https://developer.android.com/topic/performance/performance-class)to help determine if the device can support concurrent camera capture.

**Edit**

- Support[custom effects](https://developer.android.com/media/media3/transformer/transformations#custom-video)using[Media3 transformer](https://developer.android.com/media/media3/transformer/getting-started).
- [UltraHDR images](https://developer.android.com/media/grow/ultra-hdr-edit#advanced-edits), transforming the[gain-map](https://developer.android.com/guide/topics/media/platform/hdr-image-format#gain_map-generation)appropriately for image filters and other operations.
- Audio with[custom audio effects](https://developer.android.com/reference/androidx/media3/common/audio/BaseAudioProcessor).