scribe-org / scribe-org/Scribe-iOS
Rework buttons to use new configuration option
Nobody has claimed this yet.
- Dominant language
- Swift
- Stars
- 169
- Forks
- 109
- PR merge metrics
- No merged PRs in 30d
Description
Terms
- I have searched open and closed design issues
- I agree to follow Scribe-iOS' Code of Conduct
Description
In #448 we discussed converting the buttons to use iOS 15's UIButton.Configuration feature. It automatically resizes text and images and has more settings for styling buttons.
This would mean that for example, instead of button.setTitle("title"), we would have a configuration for said button and use button.configuration.title = "title". This configuration can be re-used and doesn't have to be reset for every newly created button, so it would make sense to only create as many base configurations as needed and then add things like a title as needed.
So far, this is only used for missing conjugations, which you can find at the top of KeyboardStyling.swift, but it should ideally be used for as many custom buttons on the keyboard as is practical.
Contribution
I can assist with this if any help is needed, there is also this explanation on configurations to get started.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in KeyboardStyling.swift, especially the existing missing-conjugations button styling, and inspect the other custom keyboard buttons. Rework practical button styling to use iOS 15 UIButton.Configuration, reusing base configurations where appropriate. Done means the targeted custom buttons use the new configuration approach without losing their existing titles, images, or styling.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ios, swift
- Domain
- mobile
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100