KeyboardKitPro

KeyboardKit Pro helps you create custom keyboards for iOS and iPadOS.

OTHER License

Stars
111
Committers
1

Bot releases are visible (Hide)

KeyboardKitPro -

Published by danielsaidi almost 2 years ago

This release starts preparing for the next major version, by deprecating and renaming a lot of things that will change in that version.

Most of the changes only affect functionality that is mostly used internally, but you may have to rename some init and function parameters.

✨ New features

  • DisabledAutocompleteProvider is now public.
  • DisabledCalloutActionProvider is now public.
  • InterfaceOrientation is a new multi-platform version of UIInterfaceOrientation.
  • KeyboardAppearance has a new keyboardEdgeInsets property.
  • KeyboardAppearanceViewModifier is a new modifier for setting light and dark keyboards.
  • KeyboardAction has a new isAlphabeticKeyboardTypeAction property.
  • KeyboardAction has a new isKeyboardTypeAction function.
  • KeyboardContext has new allLtr and allRtl properties.
  • KeyboardContext has a new screenSize parameter.
  • KeyboardContext has a new interfaceOrientation parameter.
  • KeyboardEnabledLabel is a new view that can display keyboard states.
  • KeyboardEnabledStateInspector now supports bundle ID wildcards.
  • KeyboardEnabledStateInspector has a new activeKeyboardBundleIds property.
  • KeyboardEnabledStateInspector has a new enabledKeyboardBundleIds function.
  • KeyboardSettingsLink is a new view that can link to System Settings.
  • KeyboardSettingsUrlProvider is a new protocol that can link to System Settings.
  • KeyboardTextView has a new hasFocus binding.
  • KeyboardReturnActionMappable is a new protocol that can map to a primary action type (will be renamed to return in KK7) .
  • RepeatGestureTimer init is now public.
  • RepeatGestureTimer time interval is now mutable.
  • StandardCalloutActionProvider keyboardContext is now public.
  • StandardKeyboardAppearance keyboardContext is now public.
  • StandardKeyboardAppearance keyboardLayoutConfiguration is now open.
  • StandardKeyboardBehavior keyboardContext is now public.
  • StaticKeyboardBehavior is now open.
  • StringCasingAnalyzer is a new protocol that can be used to analyze string casing.

👑 KeyboardKit Pro

  • StandardAutocompleteProvider autocompleteSuggestions is now open.
  • FullDocumentContextConfiguration now uses 0.03 as default sleep delay.
  • FullDocumentContextReader is a new protocol that can be used to read the full document context from any proxy.

💡 Behavior changes

  • GestureButtonDefaults long press delay is reduced to 0.5 seconds.
  • iPhoneKeyboardLayoutProvider now adds . to Go keyboards.
  • iPhoneKeyboardLayoutProvider now adds @ and . to e-mail keyboards.
  • KeyboardAction.primary now applies autocomplete suggestions if it's a system action.
  • KeyboardContext controller-based initializer is marked as a convenience initializer.
  • KeyboardGestures now apply the GestureButtonDefaults long press delay.
  • SystemKeyboard no longer depends on AnyView.
  • StandardKeyboardAppearance now applies insets to system keyboards.
  • StandardKeyboardAppearance now applies larger font sizes to some system keyboards keys on iPad devices.
  • SystemKeyboardSpaceButtonContent no longer depends on AnyView.

🗑 Deprecations

  • ActionCallout now prefers a keyboardContext to be injected.
  • ActionCallout context is renamed to calloutContext.
  • CaseAdjustable is renamed to KeyboardCaseAdjustable.
  • CharacterProvider is deprecated.
  • EmojiKeyboard context is renamed to keyboardContext.
  • EmojiCategoryKeyboard context is renamed to keyboardContext.
  • EmojiCategoryKeyboardMenu context is renamed to keyboardContext.
  • FeatureToggle.Feature.newButtonGestureEngine is deprecated.
  • InputCallout context is renamed to calloutContext.
  • LocaleContextMenu context is renamed to keyboardContext.
  • KeyboardAction.newLine is replaced by KeyboardAction.primary(.newLine).
  • KeyboardAction.return is replaced by KeyboardAction.primary(.return).
  • KeyboardAction.standardTapAction is replaced by KeyboardAction.standardReleaseAction.
  • KeyboardAction.PrimaryType is renamed to KeyboardAction.ReturnType.
  • KeyboardEnabledState isKeyboardCurrentlyActive is renamed to isKeyboardActive.
  • KeyboardEnabledStateInspector isKeyboardCurrentlyActive is renamed to isKeyboardActive.
  • KeyboardCasing is renamed to KeyboardCase.
  • KeyboardContext has redesigned initializers that set fewer properties.
  • KeyboardContext screenOrientation is replaced by interfaceOrientation.
  • KeyboardGrid is deprecated.
  • KeyboardType font size is deprecated and moved to StandardKeyboardAppearance.
  • Sequence+Batched is deprecated since it was only used in KeyboardGrid.
  • StringProvider is deprecated.
  • SpaceCursorDragGestureHandler context is renamed to keyboardContext.
  • StandardAutocompleteSuggestion has deprecated the initializer with an implicit text name.
  • StandardCalloutActionProvider context is renamed to keyboardContext.
  • StandardKeyboardActionHandler changeKeyboardTypeAction is in-comment deprecated.
  • StandardKeyboardAppearance context is renamed to keyboardContext.
  • StandardKeyboardBehavior context is renamed to keyboardContext.
  • StandardSystemKeyboardButtonContent is deprecated.
  • StaticKeyboardBehavior context is renamed to keyboardContext.
  • SystemKeyboardActionButton context is renamed to keyboardContext.
  • SystemKeyboardActionButtonContent context is renamed to keyboardContext.
  • SystemKeyboardButtonRowItem context is renamed to keyboardContext.
  • SystemKeyboardButtonText legacy initializer is deprecated.
  • SystemKeyboardSpaceButton is deprecated.
  • SystemKeyboardSpaceButtonContent is renamed to SystemKeyboardSpaceContent.
  • SystemKeyboardSpaceContent init with a spaceText parameter is deprecated.
  • UIReturnKeyType primaryButtonType is renamed to keyboardActionReturnType.
  • UIScreen device extensions are deprecated.
  • View+Frame is deprecated.
  • View.actionCallout is renamed to View.keyboardActionCallout.
  • View.calloutShadow is renamed to View.keyboardCalloutShadow.
  • View.inputCallout is renamed to View.keyboardInputCallout.
  • KeyboardKit Pro EnabledLabel is deprecated - use the new KeyboardEnabledLabel instead.

💥 Breaking changes

  • KeyboardContext screen is deprecated.
  • KeyboardKit Pro EnabledLabel now uses a style.
  • KeyboardKit Pro keyboard labels are removed - use the new KeyboardEnabledLabel instead.
KeyboardKitPro -

Published by danielsaidi almost 2 years ago

🐛 Bug fixes

This release fixes an invalid localization for the English return key.

KeyboardKitPro -

Published by danielsaidi almost 2 years ago

This release adds 5 new locales, which brings the number of supported locales to 60!

To get locales like Armenian to work, this version starts to break up the layout engine in smaller parts, to make it easier to manage as the number of locales grow. The iPhone and iPad layout providers will be converted to base classes and inherited by locale-specific providers.

Note that a bunch of StandardKeyboardLayoutProvider things are deprecated in comments only, since the library still has to use them. These will be removed in the next major update.

🌐 New locales

  • 🇦🇲 Armenian
  • 🏳️ Cherokee
  • 🇮🇩 Indonesian
  • 🇲🇾 Malay
  • 🇺🇿 Uzbek

👑 KeyboardKit Pro

  • FullDocumentContextConfiguration now uses a longer, default delay.
  • FullDocumentContextResult now contains more information.
  • ProKeyboardLayoutProvider is a new base class for pro layout providers.
  • ProKeyboardLayoutProvider.Armenian is the first, new layout provider that uses this new architecture.
  • ProKeyboardLayoutProvider.German and all German variants now correctly replaces .return with .newLine.
  • UITextDocumentProxy fullDocumentContext has been adjusted to behave better.
  • UITextDocumentProxy fullDocumentContext will now throw an error if it's called while a read operation is in progress.

✨ New features

  • EnglishKeyboardLayoutProvider is a new, open class that provides English keyboard layouts.
  • InputSetProviderBased is a new protocol that is used to keep track of types that rely on an input set provider.
  • KeyboardActions has new character margin actions properties.
  • KeyboardContext has a new keyboardDictationReplacement property.
  • KKL10n has a new join case, although localiations are missing for most locales.
  • StandardInputSetProvider keyboardContext is now public.
  • StandardKeyboardLayoutProvider can now take a collection of localized layout providers.

💡 Behavior changes

  • SystemKeyboard now applies locale as identifier to force update its rows.
  • StandardKeyboardActionHandler now ignores autocomplete suggestions when the cursor is at the beginning of a word.
  • SystemKeyboardLayoutProvider now uses the KeyboardContext keyboardDictationReplacement instead of the injected value.
  • SystemKeyboardLayoutProvider will for now set the KeyboardContext keyboardDictationReplacement, if one is provided, to not cause any old code to break.

🗑 Deprecations

  • KeyboardLayoutProvider dictation replacement initializers and properties are deprecated.
  • StandardCalloutActionProvider providerDictionary has been renamed to localizedProviders.
  • StandardInputSetProvider providerDictionary has been renamed to localizedProviders.
  • KeyboardInputTextComponent has been renamed to KeyboardInputComponent.
  • StandardKeyboardLayoutProvider inputSetProvider is in-comment deprecated.
  • StandardKeyboardLayoutProvider iPhoneProvider is in-comment deprecated.
  • StandardKeyboardLayoutProvider iPadProvider is in-comment deprecated.
  • StandardKeyboardLayoutProvider leading and trailing margin action functions are deprecated.
  • SystemKeyboardActionButtonContent now applies a padding and minimum scale factor to text views.

💥 Breaking changes

  • StandardKeyboardLayoutProvider now requires a keyboard context.
  • KeyboardAction no longer implements KeyboardRowItem.
KeyboardKitPro -

Published by danielsaidi almost 2 years ago

👑 KeyboardKit Pro

  • ProCalloutActionProvider has a new all() function.
  • ProInputSetProvider has a new all() function.
  • English and US English callout action providers now also show emoji skin tone variants.
KeyboardKitPro -

Published by danielsaidi almost 2 years ago

✨ New features

  • KeyboardAction has a new isSpacer property.
  • KeyboardButtonStyle has a new, static spacer style.

💡 Behavior changes

  • SystemKeyboardButtonRowItem now always apply the new spacer button style to spacer actions.

🐛 Bug fixes

  • Some system keyboard character margin actions have been corrected.
KeyboardKitPro -

Published by danielsaidi almost 2 years ago

🐛 Bug fixes

  • English no longer replaces alternate ending quotation delimiters for English.
KeyboardKitPro -

Published by danielsaidi almost 2 years ago

6.7

This version adds more emoji features, such as improved unicode names and localized names.

Localizing emojis is a major undertaking and therefore a community effort. Please see the documentation for information on how to help with localizing emojis.

✨ New features

  • AutocompleteToolbarStyle has a new optional height parameter.
  • CharacterProvider is a new protocol that will let us design better character-based extensions over time.
  • Emoji has new localizationKey properties that are used to translate emoji names.
  • Emoji has new localizedName(for:) functions that are used to translate emoji names.
  • Emoji has new unicodeNameOverride properties, to provide good names and localization keys for the various flags.
  • Emoji has new matches functions, that lets you match on emoji unicode and localized names.
  • Emoji collections have new matching functions, that lets you search for emojis that match a certain search query.
  • EmojiCharacterAnalyzer is a new protocol that is implemented by Character.
  • EmojiStringAnalyzer is a new protocol that is implemented by String.
  • KeyboardInputViewController now only syncs proxy if it changes, which leads to fewer redraws.
  • KeyboardRootView no longer defines an explicit id.
  • KKL10n has a new searchEmoji key that must be localized in all Localizable.strings files.
  • KKL10n can now be used to translate custom keys as well, using the same bundle resolve.
  • LocaleContextMenu is a new view modifier for applying a locale context menu to any view.
  • PrefersAutocompleteResolver is a new protocol that is implemented by KeyboardType and UIKeyboardType.
  • StringProvider is a new protocol that will let us design better string-based extensions over time.

💡 Behavior changes

  • AutocompleteToolbar now applies the height from its style.
  • Emoji has better unicode names for all flag emojis.
  • EmojiCategoryTitle doesn't have a default padding anymore.
  • KeyboardRootView no longer applies an explicit id.
  • The demo keyboards use the autocomplete prefered info to adjust the toolbar's opacity.

🐛 Bug fixes

  • By no longer applying an explicit id to KeyboardRootView, the keyboard view no longer has to observe the KeyboardContext.
  • By no longer applying an explicit id to KeyboardRootView, the full document context correctly updates the view after the async operation completes.

🗑 Deprecations

  • KKL10n hasText is deprecated, since it produces incorrect results.
  • InputSetProvider row functions are deprecated.
  • InputSetRow initializers with implic names are deprecated.
  • View+localeContextMenu with locales parameter is deprecated.

💥 Breaking changes

  • EmojiCategoryKeyboard no longer allows customizing the keyboard view.
KeyboardKitPro -

Published by danielsaidi almost 2 years ago

This version adds a brand new gesture engine, which aims to make typing feel a lot more like in the native keyboards.

This version also adds new emoji capabilities, such as a unicode id and name, as well as support for skin tone variants (Pro feature). These new capabilities are used by the emoji keyboards, which can now show input callouts and skin tone variants when you type on an emoji keyboard.

How to disable the new gesture engine

Since typing is such an important part of this library, the new gesture engine can be toggled off if you find problems with it:

FeatureToggle.shared.toggleFeature(.newButtonGestureEngine, .off)

Note that the new gesture engine is only available in iOS 14+. Devices running iOS 13 will still get the current gesture engine, even if you toggle on this feature.

👑 KeyboardKit Pro

  • Emoji implements the new ProEmojiInfo protocol.
  • ProCalloutActionProvider now returns skin tone variant actions for emojis.
  • ProEmojiInfo is a new protocol for Pro emoji information.
  • ProEmojiInfo has hasSkinToneVariants, neutralSkinToneVariant, skinToneVariants and skinToneVariantsActions properties.

✨ New features

  • ActionCalloutContext.shared is now public.
  • Emoji has new unicodeIdentifier and unicodeName properties.
  • EmojiKeyboard and EmojiCategoryKeyboard now supports keyboard gestures and skin tone callouts.
  • EmojiKeyboard has a new applyGestures parameter, that you can set to true to apply standard keyboard gestures.
  • EmojiKeyboard has a new standardKeyboardActionHandler property.
  • EmojiKeyboardItem is a new view for rendering a keyboard item view.
  • GestureButton is a new view that lets you handle many different gestures with a single button.
  • InputCalloutContext.shared is now public.
  • InputCalloutContext has a new, configurable minimumVisibleDuration property that controls the minimum visibility of the input callout.
  • KeyboardAction has a new image property.
  • KeyboardAction has a new isEmojiAction property.
  • SpaceCursorDragGestureHandler is now open to inheritance.

💡 Behavior changes

  • EmojiKeyboard uses smaller emojis for standard iPad in portrait.
  • InputCallout no longer allows hit testing.
  • KeyboardAction.backspace now triggers on press instead of tap.
  • KeyboardGestures now has private state to avoid press gesture problems when providing a constant binding.
  • SystemKeyboardButtonRowItem now avoids applying a negative width.
  • View+KeyboardGestures now render a plain button that triggers the press, release and tap action on tvOS.

🐛 Bug fixes

  • KeyboardGestures now use internal state to avoid problems when passing in a constant binding.
  • LocaleProvider now wraps Swift 5.7 code in a compile version version check.
  • SystemKeyboardButtonRowItem now protects itself against getting a negative width.
  • Words with an autocompleting autocomplete suggestion will no longer autocomplete when ending a space cursor drag on them.

🗑 Deprecations

  • KeyboardAction .isShift has been renamed to isShiftAction.
  • KeyboardAction .isUppercaseShift has been renamed to isUppercasedShiftAction.
  • KeyboardImageButton has been deprecated and will be removed in KeyboardKit 7.
  • SystemAudio types have been renamed to AudioFeedback to make the concept match haptic feedback types.
  • SystemAudio play has been renamed to trigger to make it match the haptic feedback trigger.
  • SystemAudioPlayer types have been renamed to SystemAudioEngine to make the concept match other feedback engines.
  • View+KeyboardGestures no longer need a keyboard context.
KeyboardKitPro -

Published by danielsaidi almost 2 years ago

👑 KeyboardKit Pro

These versions add more licenses to KeyboardKit Pro.

KeyboardKitPro -

Published by danielsaidi almost 2 years ago

👑 KeyboardKit Pro

This version adds more licenses to KeyboardKit Pro.

KeyboardKitPro -

Published by danielsaidi almost 2 years ago

This version adjusts the KeyboardKit Pro license model.

There are some minor breaking changes in KeyboardKit Pro that should be straightforward to fix.

👑 KeyboardKit Pro

  • License contains new information and capabilities, to enable future license features.
  • ProInputSetProvider now nests all pro input set providers for a cleaer api.
  • ProCalloutActionProvider now nests all pro callout action providers for a cleaer api.

✨ New features

  • KeyboardLocale implements the new LocaleProvider and LocaleFlagProvider protocols.
  • Locale implements the new LocaleProvider and LocaleFlagProvider protocols.
  • LocaleProvider is a new protocol that defines how to resolve locales.
  • LocaleFlagProvider is a new protocol that defines how to resolve flags for a locale.
KeyboardKitPro -

Published by danielsaidi about 2 years ago

This release is built for Xcode 14 and Swift 5.7. Use the 6.4.4_xcode13 tag if you need support for Xcode 13, Swift 5.6 and Bitcode.

👑 KeyboardKit Pro

  • The UITextDocumentProxy full text content extensions have been tweaked to perform better.

💡 Behavior changes

  • KeyboardLocale.kurdish_sorani_arabic uses ckb_IQ instead of ckb_AR to get a valid locale identifier.
  • View+LocaleContextMenu now iterates over the locales without enumerating.
KeyboardKitPro -

Published by danielsaidi about 2 years ago

This release is built for Xcode 14 and Swift 5.7. Use the 6.4.3_xcode13 tag if you need support for Xcode 13, Swift 5.6 and Bitcode.

👑 KeyboardKit Pro

  • The UITextDocumentProxy full text content extensions are now configurable.

✨ New features

  • ActionCalloutStyle.standardFont can now be set to change the global callout font.
  • KeyboardButtonShadowStyle.standard can now be set to change the global style.
  • KeyboardColorReader standard values can now be set to change the global style.
KeyboardKitPro -

Published by danielsaidi about 2 years ago

This release rolls back the localized name adjustment in the last version, since the only locale that used this approach - Kurdish Sorani Arabic - had a language folder named ckb_AR which wasn't recognized by Apple.

This caused uploads to App Store generate warnings. Rolling back this change will make uploads work again, without warnings.

If you want to customize the display name for a keyboard locale, you have to do so manually in your app.

💡 Behavior changes

  • KeyboardLocale now only resolves localizedName from its ID, as it did before 6.4.1.
  • The new KKL10n localizedName property has been rolled back.
KeyboardKitPro -

Published by danielsaidi about 2 years ago

This release bumps the package Swift version to 5.6.

The release also makes more types, extensions, mocks and unit tests available for macOS, tvOS and watchOS, and binds a bunch of extensions to protocols, which make them show up in DocC and makes it possible to use them on more types.

There are also new layout utilities that make adjusting keyboard locales a lot easier, and a bunch of struct properties have been converted from let to var as well, to make them mutable.

The demos have been adjusted as well. There's also a brand new demo keyboard that shows how to customize the layout.

👑 KeyboardKit Pro changes

  • KurdishSoraniPcInputSetProvider is a new input set provider for Kurdish Sorani PC.
  • KurdishSoraniPcCalloutActionProvider is a new callout action provider for Kurdish Sorani PC.
  • AlphabeticInputSet has new kurdishSoraniPc input set builder.

🌐 New locales

  • 🇹🇯 Kurdish Sorani PC

✨ New features

  • CaseAdjustable is a new protocol that can be implemented by types that should be able to adjust themselves to a casing.
  • EmojiKeyboardStyle now lets you provide a device type in the standard style builder.
  • HapticFeedback now uses HapticFeedbackPlayer for its player.
  • InputCallout now lets you provide a device type in the initializer.
  • InputSet properties are now mutable.
  • InputSetItem properties are now mutable.
  • KeyboardColorReader is a new protocol that is implemented by Color and lets its implementations access keyboard colors.
  • KeyboardContext has a new keyboardType property.
  • KeyboardContext no longer requires a controller in the initializer, although it's good to provide one.
  • KeyboardFeedbackHandler is now available on all platforms.
  • KeyboardImageReader is a new protocol that is implemented by Image and lets its implementations access keyboard images.
  • KeyboardLayout has new ideal height and inset properties, which can be used to create new item types easier.
  • KeyboardLayoutConfiguration properties are now mutable.
  • KeyboardLayoutConfiguration has a new standard layout for device type.
  • KeyboardLayoutItem properties are now mutable.
  • KeyboardLayoutItemSize properties are now mutable.
  • KeyboardRowItem has a bunch of new collection extensions.
  • StandardAutocompleteSuggestion properties are now mutable.
  • StandardKeyboardFeedbackHandler is now available on all platforms.
  • SystemAudio now uses SystemAudioPlayer for its player.

💡 Behavior changes

  • Color extensions have been moved to KeyboardColorReader.
  • KeyboardContext activeAppBundleId has been converted to a calculated property.
  • StandardKeyboardLayoutProvider now fallbacks to iPhone layout instead of an empty layout.
  • StandardKeyboardLayoutProviderTests now runs on all platforms.
  • String casing extensions have been moved to CaseAdjustable.

🐛 Bug fixes

  • A memory leak has been fixed.

🗑 Deprecations

  • The Color.DarkAppearanceStrategy is no longer used and has been deprecated.
  • The KeyboardContext device initializer and property has been deprecated.
  • The KeyboardContext activeAppBundleId no longer works in iOS 16 and has been deprecated.
  • The KeyboardLayoutConfiguration standard configuration for idiom has been deprecated.
  • The KeyboardInputViewController activeAppBundleId no longer works in iOS 16 and has been deprecated.
  • The MockCollectionViewLayout is no longer used and has been deprecated.
  • Two Sequence extensions for mapping casing are no longer used and have been deprecated.
  • The StandardKeyboardLayoutProvider fallbackProvider has been deprecated.
  • The StandardKeyboardLayoutProvider layoutProvider(for:) has been renamed to keyboardLayoutProvider(for:).
KeyboardKitPro -

Published by danielsaidi about 2 years ago

This release adds two new locales and a bunch of input set changes.

👑 KeyboardKit Pro changes

  • AlphabeticInputSet has new qwertz and azerty input set builders.
  • AlphabeticInputSet, NumericInputSet and SymbolicInputSet has input set builders for all keyboard locales.
  • InputSetProviders that support QWERTY, QWERTZ and AZERTY now lets you inject a custom alphabetic input set.
  • KurdishSoraniArabicInputSetProvider has been tweaked to render a more correct layout.
  • StandardInputSetProvider now handles lexicon-based completions differently and ignores single-char suggestions.

✨ New features

  • KeyboardContext has new hasKeyboardLocale and hasKeyboardLocale functions.
  • AlphabeticInputSet has a new qwerty input set builder.
  • NumericInputSet has a new standard input set builder.
  • SymbolicInputSet has a new standard input set builder.

🌐 New locales

  • 🇺🇸 Hawaiian
  • 🇰🇪 Swahili

🗑 Deprecations

  • A bunch of SystemKeyboardLayoutProvider layout util functions have been deprecated.
KeyboardKitPro -

Published by danielsaidi about 2 years ago

This release adds a bunch of new emojis that have been added since emojis were last updated.

It also adds input set variants, such as .englishQwerty, .englishAzerty, .englishQwertz etc. and introduces AlphabeticInputSet, NumericInputSet and SymbolicInputSet builders for all locales.

The KeyboardKit Pro standard autocomplete provider has been improved even further, and now handles casing closer to the stock keyboards. It has also been gifted with some prediction capabilites.

👑 Pro Updates

  • AlphabeticInputSet, NumericInputSet and SymbolicInputSet has new set builders for all locales.
  • EnglishGbInputSetProvider now supports specifying an alphabetic input set.
  • EnglishUsInputSetProvider now supports specifying an alphabetic input set.
  • StandardAutocompleteProvider has improved case handling.
  • StandardAutocompleteProvider is now able to give locale-specifi predictions.
  • StandardAutocompleteProvider has a new, open autocompleteCompletions(for:) function.
  • StandardAutocompleteProvider has a new, open autocompleteGuesses(for:) function.
  • StandardAutocompleteProvider has a new, open autocompleteNextWordPredictions(for:) function.
  • StandardAutocompleteProvider has a new, open autocompleteLexiconMatch(for:) function.
  • StandardAutocompleteProvider has deprecated the recently introduced casing initializers, since casing is no longer being done.

✨ New Features

  • EmojiCategory has a bunch of new emojis.

  • EnglishInputSetProvider now supports specifying an alphabetic input set.

  • InputSetRow has new convenience initializers.

  • KeyboardContext has a new KeyboardLocale-based setLocale().

  • AlphabeticInputSet, NumericInputSet and SymbolicInputSet has new set builders for .english.

  • AlphabeticInputSet also has new .englishQwerty, .englishAzerty, .englishQwertz input sets.

🗑 Deprecations

  • DeviceSpecificInputSetProvider has been deprecated.
  • The EnglishInputSetProvider currency properties have been deprecated.
  • The InputSetProvider row extensions have been deprecated.
  • The InputSetRow initializer extensions have been deprecated.
KeyboardKitPro -

Published by danielsaidi about 2 years ago

👑 Pro Updates

  • ArabicCalloutActionProvider can now be initialized with a custom locale.
  • ArabicInputSetProvider can now be initialized with a custom locale.
  • Bundle+KeyboardKitPro adds a new .keyboardKitPro bundle.
  • KurdishSoraniArabicCalloutActionProvider is a new provider for Kurdish Sorani (Arabic).
  • KurdishSoraniArabicInputSetProvider is a new provider for Kurdish Sorani (Arabic).
  • UIInputViewController has a new, static setupProColors, which must be run for colors to be .

✨ New Features

  • AutocompleteContext has a new lastError property.
  • AutocompleteProvider has a new caseAdjust(suggestion:for:) extension to help handle casing.
  • Bundle+KeyboardKit adds a new .keyboardKit bundle.
  • StandardAutocompleteProvider has a new caseAdjustExactMatch init argument to let you choose whether or not to apply the case adjustment to exact matches.
  • String+Casing adds an isCapitalized property to String.

🌐 New locales

  • 🇹🇯 Kurdish Sorani (Arabic)

💡 Behavior changes

  • KeyboardColor no longer needs or is affected by enabling preview mode.
  • KKL10n no longer needs or is affected by enabling preview mode.
  • StandardAutocompleteProvider in KeyboardKit Pro uses the new case adjustments to provide better completions.
  • KeyboardInputViewController will now update the autocomplete context on the main queue.
  • KeyboardInputViewController will now write any autocomplete errors to the context's lastError property.

🗑 Deprecations

  • KeyboardPreviewMode is not longer needed and enabling it has no effect from now on.
KeyboardKitPro -

Published by danielsaidi over 2 years ago

This version adds more primary button types.

✨ New Features

  • KeyboardAction.PrimaryType has new join and custom cases.
  • KeyboardAction.PrimaryType now maps unrepresented UIReturnKeyType types to the new custom type.
  • UIReturnKeyType has new extensions for getting the keyboardAction and primaryButtonType.

💡 Behavior changes

  • KeyboardGestures shortens the time it takes for the secondary action callout to be presented.
KeyboardKitPro -

Published by danielsaidi over 2 years ago

This version fixes bugs in the Kurdish Sorani keyboard.

🐛 Bug fixes

  • Tapping "ھ" triggered multiple inserts.