Skip to content

Feature Request: Native Option Picker Plugin (iOS UIPickerView / Android Spinner) #782

@pmandiola

Description

@pmandiola

Name

Option Picker

Platform(s)

  • Android
  • iOS
  • Web

Description

Summary

I would like to propose a new plugin that provides a native option picker / list selector for Capacitor apps.

The goal is to offer a better mobile UX alternative to HTML <select> or custom dropdown components by leveraging:

  • UIPickerView (or similar) on iOS
  • Spinner or Material exposed dropdown on Android

Similar in spirit to the existing Datetime Picker plugin, but for generic option selection.


Problem

In mobile apps, standard dropdown/select components often:

  • Feel non-native
  • Have inconsistent behavior across platforms
  • Perform poorly with long lists
  • Provide suboptimal UX for search + selection

This becomes especially noticeable when used alongside native-feeling components like the Capawesome Datetime Picker.

For forms-heavy apps, a native picker would significantly improve UX consistency.


Proposed API (Initial Version)

A simple API similar to the Datetime Picker:

import { OptionPicker } from '@capawesome/capacitor-option-picker';

const { value } = await OptionPicker.show({
  title: 'Select an option',
  options: [
    { label: 'Option 1', value: '1' },
    { label: 'Option 2', value: '2' },
    { label: 'Option 3', value: '3' }
  ],
  selectedValue: '2'
});

Options

  • title?: string
  • options: { label: string; value: string }[]
  • selectedValue?: string
  • cancelButtonText?: string
  • confirmButtonText?: string

Return

{
  value: string;
}

Possible Extensions

  • Multi-select mode
  • Searchable picker (native search bar integration if possible)
  • Sectioned/grouped options
  • Muti-column picker (Country -> State)
  • Support for large datasets (lazy loading?)
  • Custom theming options

Additional context

No response

Before submitting

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureFeature request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions