KeyboardKit

KeyboardKit is a Swift SDK that lets you create fully customizable keyboards with a few lines of code, using SwiftUI.

MIT License

Stars
1.5K
Committers
29

Bot releases are visible (Hide)

KeyboardKit -

Published by danielsaidi 8 months ago

This version adjusts Pro licenses.

KeyboardKit -

Published by danielsaidi 9 months ago

This version adds support for iPad Pro layouts to KeyboardKit Pro, for selected locales.

The documentation has been thoroughly rewritten to be more consistent and to include more images and code samples.

โœจ Features

  • DeviceType has a new boolean properties.
  • Image has many more keyboard image extensions.
  • KeyboardAction has a new capsLock action.
  • Keyboard.Case has a new isCapsLocked property.
  • Keyboard.KeyboardType has a new isAlphabeticCapsLocked property.
  • Keyboard.ReturnKeyType has a new nativeType property on iOS.
  • KeyboardLayout.ItemRow has new hasKeyboardSwitcher and suggestedInputWidth function.
  • KeyboardLayout.ItemRows has new hasKeyboardSwitcher and inputWidth function.
  • KeyboardStyleProvider has a new buttonContentInsets function.

๐Ÿ‘‘ KeyboardKit Pro

  • iPadProKeyboardLayoutProvider is a new layout provider for iPad Pro layouts.
  • ProKeyboardLayoutProvider.spanish now supports QWERTY, QWERTZ and AZERTY.

๐Ÿ”ฃ Layout Changes

  • The new iPadProKeyboardLayoutProvider is (so far) used by the following locales:
  • .english
  • .albanian
  • .croatian
  • .dutch
  • .dutchBelgium
  • .estonian
  • .filipino
  • .french
  • .french_belgium
  • .french_switzerland
  • .hungarian
  • .indonesian
  • .irish
  • .italian
  • .latvian
  • .lithuanian
  • .malay
  • .polish
  • .portuguese
  • .portuguese_brazil
  • .romanian
  • .serbian_latin
  • .spanish
  • .slovenian
  • .swahili
  • .swedish
  • .uzbek

๐ŸŒ Localization

  • KKL10n has a new capsLock key, which is currently only localized in English.

๐Ÿ› Bug fixes

  • InputSet.azerty now displays correctly on iPad.

๐Ÿ—‘๏ธ Deprecations

  • Image.keyboardLeft has been renamed to .keyboardArrowLeft.
  • Image.keyboardRight has been renamed to .keyboardArrowRight.
KeyboardKit -

Published by danielsaidi 9 months ago

This version adjusts Pro licenses.

KeyboardKit -

Published by danielsaidi 9 months ago

This version adjusts Pro licenses.

KeyboardKit -

Published by danielsaidi 10 months ago

๐Ÿ‘‘ KeyboardKit Pro

  • SystemKeyboard now only shows an emoji button if the license key unlocks the emoji keyboard.
KeyboardKit -

Published by danielsaidi 10 months ago

This version adjusts localization and adds support for Inari Sรกmi and Northern Sรกmi.

โœจ Features

  • SubmitLabel+CaseIterable makes the type implement CaseIterable.

๐ŸŒ Localization

  • KeyboardLocale.northernSami is a new supported locale.
  • KeyboardLocale.inariSami is a new supported locale.

๐Ÿ’ก Adjustments

  • KeyboardInputViewController now unregisters itself as shared controller in deinit.
  • KKL10n no longer has a .searchEmoji key.

๐Ÿ‘‘ KeyboardKit Pro

  • PreviousAppNavigator has been deprecated.
  • .keyboardDictation modifiers now support injecting a custom service.

๐Ÿ—‘๏ธ Deprecations

  • KeyboardUrlOpener has been deprecated.
  • KKL10n.emergencyCall has been deprecated.
  • KKL10n.keyboardTypeAlphabetic has been renamed to .switcherAlphabetic.
  • KKL10n.keyboardTypeNumeric has been renamed to .switcherNumeric.
  • KKL10n.keyboardTypeSymbolic has been renamed to .switcherSymbolic.
  • KKL10n.ok has been deprecated.
KeyboardKit -

Published by danielsaidi 10 months ago

This version just adjusts some license information.

KeyboardKit -

Published by danielsaidi 10 months ago

This version fixes a configuration bug in KeyboardKit Pro, that caused autocorrect to not disable.

KeyboardKit -

Published by danielsaidi 11 months ago

This version improves autocomplete and localized provider capabilities.

๐Ÿšจ Important Information

This version removes the temporary migration types that were added in 8.0. To upgrade to this or any later version, first update to 8.0 and follow the migration guides. This will remove any breaking changes when upgrading to this version.

โœจ New Features

  • Autocomplete has a new AutocorrectionDisabledToContextModifer modifier.
  • AutocompleteContext has a new isAutocorrectDisabled property.
  • LocaleDictionary has new getters and setters.
  • StandardCalloutActionProvider has a new registerLocalizedProvider function.
  • StandardKeyboardLayoutProvider has a new registerLocalizedProvider function.
  • View has a new autocorrectionDisabled(with:) modifier.

๐Ÿ’ก Adjustments

  • SystemKeyboard now automatically honors any .autocorrectionDisabled() that is applied above it.

๐Ÿ‘‘ Pro Adjustments

  • LocalAutocompleteProvider maxCount is now public and mutable.
  • LocalAutocompleteProvider removes autocorrect suggestions if the context has autocorrect disabled.
  • RemoteAutocompleteProvider autocompleteSuggestions is now open.
  • RemoteAutocompleteProvider properties are now public and mutable.
  • RemoteAutocompleteProvider removes autocorrect suggestions if the context has autocorrect disabled.

๐Ÿ› Bug fixes

  • KeyboardLocale.kurdish_sorani_pc now displays its localized name properly in iOS 17.

๐Ÿ—‘๏ธ Deprecations

  • AutocompleteContext isEnabled is renamed to isAutocompleteEnabled.
KeyboardKit -

Published by danielsaidi 11 months ago

This patch removes previous app navigation from KeyboardKit Pro after sudden App Store review rejections.

๐Ÿ‘‘ Pro Adjustments

  • KeyboardInputViewController no longer shows license validation error alerts by default.
  • KeyboardInputViewController now lets you define whether or not to show a license validation error alert.
  • PreviousAppNavigator default navigator is removed, since it started causing occasional review rejections.
KeyboardKit -

Published by danielsaidi 11 months ago

This patch improves the performance of the KeyboardKit Pro license validation.

KeyboardKit -

Published by danielsaidi 11 months ago

This patch reverts the dictation navigation change that was added to 8.0.7.

KeyboardKit -

Published by danielsaidi 11 months ago

This patch improves system keyboard toolbars and the ToggleToolbar in KeyboardKit Pro.

The demo app has been improved to persist the typed text and to show more pro features, like the full document reader and a theme picker.

โœจ New Features

  • Collection<KeyboardTheme> has a new, static allPredefined property.
  • KeyboardTheme.ShelfView is a new view that creates scrolling shelves.
  • KeyboardTheme.ShelfViewItem is a new view that can be used in a theme shelf view.

๐Ÿ’ก Adjustments

  • KeyboardTheme.Collection is now Identifiable.
  • SystemKeyboard now applies a minimum height to custom toolbars, to avoid confusion where they disappear when no height is applied.
  • SystemKeyboardButtonPreview now disables hit testing for the button view.

๐Ÿ› Bug fixes

  • Gestures.GestureButton now has a public initializer.
  • Gestures.ScrollViewGestureButton now has a public initializer.
  • SystemKeyboardButtonPreview now uses the passed in style provider, if any.
  • ToggleToolbar now uses the same default .slideUp animation for all initializers.
  • ToggleToolbar now applies a content shape to the default toggle to improve tap area.

๐Ÿ’ฅ Deprecations

  • ToggleToolbar deprecates the toggleView initializer in favor for the shorter toggle one.
KeyboardKit -

Published by danielsaidi 11 months ago

This patch fixes an iOS 17 dictation navigation bug and syncs the controller's host bundle ID with the keyboard context.

โœจ New Features

  • KeyboardContext has a new hostApplicationBundleId property.

๐Ÿ’ก Adjustments

  • SystemKeyboardButtonPreview has been simplified and made greedy.
  • SystemKeyboardPreview can now be used as a header/footer without useing any modifiers.

๐Ÿ‘‘ Pro Adjustments

  • PreviousAppNavigator has been configured to work even in iOS 17.
  • StandardKeyboardDictationService can once again navigate back when dictation finishes.

๐Ÿ› Bug fixes

  • InputSet.Turkish has been slightly adjusted.
  • SystemKeyboardButtonPreview now renders themes correctly.
  • PreviousAppNavigator now renders themes correctly.

๐Ÿ’ฅ Breaking changes

  • SystemKeyboardPreview header/footer modifiers are removed since they're no longer needed. See the docs.
KeyboardKit -

Published by danielsaidi 11 months ago

This release adjusts a couple of KeyboardKit Pro licenses.

KeyboardKit -

Published by danielsaidi 11 months ago

This patch makes the BaseKeyboardLayoutProvider input set properties mutable.

KeyboardKit -

Published by danielsaidi 11 months ago

This patch makes the LocalAutocompleteProvider callout function open instead of public.

KeyboardKit -

Published by danielsaidi 11 months ago

This patch improves the text routing views and fixes a big in the text field.

โœจ New Features

  • KeyboardTextView makes it easier to define leading and trailing views for the native text field.

๐Ÿ’ก Adjustments

  • KeyboardTextView applies padding to the native text field's left and right side views.

๐Ÿ› Bug fixes

  • KeyboardTextView auto-reset in 8.0.2. This has been fixed.
KeyboardKit -

Published by danielsaidi 11 months ago

This patch tweaks some migration guides before removing them in 8.1.

This patch moves emoji features from Emojis (which was introduced in 8.0) to Emoji after developer feedback that Emojis was a strange prefix.

This patch makes some Pro views throwing instead of rendering empty content, since this was confusing. If you run into problems with this, just prefix your call with try?.

๐Ÿ› Bug fixes

  • KeyboardKit Pro's text routing views no longer crashes in iOS 17 when full access is disabled.

๐Ÿ’ฅ Breaking changes

  • EmojiCategory initializers are now throwing.
  • Emoji skin tones are now throwing.
  • Emoji.Version functionality is now throwing.
  • Emojis is deprecated since all functionality is moved into Emoji.
KeyboardKit -

Published by danielsaidi 11 months ago

This hotfix adds the superview check in the KeyboardHostingController deinit view removal.

Package Rankings
Top 4.07% on Cocoapods.org
Top 8.54% on Swiftpackageindex.com
Related Projects