scribe-org / scribe-org/Scribe-iOS
[Refactor] Refactor Language keyboards objects to follow SOLID principles
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 feature requests
- I agree to follow Scribe-iOS' Code of Conduct
Description
The LanguageKeyboards group contains sub-groups for each supported languages by Scribe.
Those sub-groups contains files that exposes app level functions and enums that are all similar but are not following any strict protocol.
The end goals here would be the following:
- Extract all the keyboards related constants into a dedicated package / framework within a common workspace file
- Expose dedicated protocols for language keyboards that exposes the required functions and constants
- Refactor all language keyboards to adhere to the newly created protocols
- Refactor the
Info.plistto move the constants into a single localised file and create customBuild Settingsto exposes the constants to a singleInfo.plistfile (or find another solution) - Extract all the common keys between keyboard to constants to avoid manually hardcoded strings
- Add unit tests to ensure each language keyboard is working has expected
Contribution
No response
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 by locating the LanguageKeyboards language sub-groups and their Info.plist entries, then review how their functions, enums, and constants currently differ. The scope includes shared keyboard constants, protocols, workspace packaging, localized settings, and unit tests; done means all listed language keyboards follow the agreed structure and have coverage.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ios, swift
- Domain
- mobile
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100