That's one model I like too and unlike one time payment for lifetime support, it's sensible. However, there's no straightforward way to implement it. How do you do it? Ship all the versions every time and show the user the latest version they have a license for? Ship a "shell" which will download the latest binary the user is licensed for? Disable new features for users who purchased the app some time linger than the introduction of the feature?
I don't know, it adds a lot of complexity in the implementation, distribution, license management and working with Apple's rules.
IMHO it's much more sensible to have a low monthly fee and use it as long as you like it.
20 bucks a year for something that toggle a mic input is very expensive.
The features currently on my todo list if people keep using the app:
1) Currently the profiles are for AirPods exclusively, add generic support for other Bluetooth headphones.
2) Add support for custom profiles. For example some people might have many microphones and prefer different setups.
3) Improve continuity support by detecting user leaving the computer. For example, the user might be on a call and get to the other room and in that case it would be appropriate to switch to AirPods mic.
(1) If you purchased something just before the new version comes out, it feels like you got screwed over.
(2) It requires a lot of new features be released at once for the new major version. This is actually more difficult to develop for vs releasing one feature at a time.
(3) It makes planning and budgeting much more difficult, for users and for developers. If there is a bug (especially a compatibility bug for the latest annual version of iOS/macOS, or a security bug) affecting version N, version N-1, and version N-2, all will require bugfixes. This raises the cost of bugfixes. Not to mention potential bugs related to future physical AirPods products.
(4) It leads to bloat from gimmicky new features being added to attract new customers.
I'd much rather pay, say, $0.99 per month or $9.99 per year, and get regular compatibility and security updates, and know that this developer will not go out of business, compared to paying $50 for a product I might not actually use very long if it won't work on a new computer.
If you want good software that gets regular updates, bugfixes, and compatibility updates, it's best time to pay for it on a regular basis.
The issues I see:
* Devs can't make paid upgrades: to make a paid upgrade the options are a new app, except the security model for the apple app stores ties a lot of things to the app id, so a new app disconnects the user data from the old app. To keep the information tied together the "solution" is subscription or in app purchases (which also means you essentially have to have your app contain multiple versions embedded and you base what actually loads based on user purchases).
* Devs can't do free trials: again the option are subscription or in app purchases.
The alternatives are subscription or in app purchases, but there's no way for a user to distinguish an app that has those as a mechanism to support upgrades from a bait-and-switch app: As a result if an app is listed having either I generally don't consider installing it (esp. if it requires an initial payment) which is unfair to the reasonable devs but there are so many bait and switch apps nowadays (App Store review technically has a lot of value, but that this kind of BS is allowed remains a plague and substantially undercuts the benefits).
You should be able to see the name, description, and price of all the in-app purchases from the App Store.
Not complicated.