Skip to content

Releases: KeyboardKit/KeyboardKit

8.6.0

18 May 13:54
Compare
Choose a tag to compare

This version adds support for 5 new locales, support for diacritics, and makes it easier to identify the host application. It also improves many of the localized system keyboards that are provided by Pro.

This version also changes the default autocomplete behavior, by making KeyboardInputViewController only use the pre-cursor part of the current word for autocomplete, which is how the native keyboard behaves.

This version also makes KeyboardKit Pro no longer overwrite custom services that are set before registering a license. This means that you can now apply custom services at any time, without it being overwritten.

This version also reduces load times and memory usage in KeyboardKit Pro, by lazily resolving localized callout action providers and layout providers, and makes all supported locales use the iPad Pro layout.

✨ Features

  • Keyboard.Accent is a new typealias for diacritics.
  • Keyboard.Diacritic is a new type that lets you model diacritics.
  • KeyboardAction.accent is a new typealias for the .diacritic action.
  • KeyboardAction.diacritic is a new action that lets you insert diacritics.
  • KeyboardController has a new insertDiacritic(_:) function.
  • KeyboardLayout and its Item has much new functionality.
  • KeyboardLocale has new locale-based initializers and matching functions.
  • UITextDocumentProxy has a new insertDiacritic(_:) function.

💡 Adjustments

  • KeyboardInputViewController autocompleteText now uses the pre-cursor part of the current word, instead of the full word.
  • KeyboardInputViewController hostBundleId has been renamed to hostApplicationBundleId.

🌐 New Locales

  • French (Canada) - fr_CA
  • Norwegian (Nynorsk) - nn
  • Spanish (Latin America) - es_419
  • Spanish (Mexico) - es_MX
  • Welsh - cy

👑 KeyboardKit Pro

  • Callouts.StandardActionProvider now allocates license services lazily, on demand.

  • Keyboard.ToggleToolbar can now use an external toggle binding.

  • Keyboard.ToggleToolbar no longer relies on a standard AnyView.

  • Keyboard.ToggleToolbarToggle is a new, customizable toolbar toggle.

  • KeyboardContext has a new hostApplication property.

  • KeyboardHostApplication is a new enum with known applications.

  • KeyboardInputViewController has a new hostApplication property.

  • KeyboardInputViewController setupPro no longer creates a new callout provider.

  • KeyboardInputViewController setupPro no longer creates a new layout provider.

  • KeyboardLayout has a new LatinLayoutType enum.

  • KeyboardLayout.ProProvider.Czech now uses proper diacritic keys on iPhone & iPad.

  • KeyboardLayout.StandardProvider now allocates license services lazily, on demand.

  • KeyboardLocale.georgian no longer uses regular font weight in alphabetic keyboard.

  • KeyboardLocale.norwegian has adjusted callout actions.

  • These locales now use iPad Pro layout:

    • Arabic
    • Belarusian
    • Bulgarian
    • Catalan
    • Cherokee
    • Hebrew
    • Kazakh
    • Kurdish Sorani
    • Kurdish Sorani - Arabic
    • Kurdish Sorani - PC
    • Persian
  • These locales have improved iPad Pro layouts:

    • French (Switzerland)
    • Greek
    • Inari Sami
    • Macedonian
    • Mongolian
  • These locales have improved iPhone layouts:

    • Arabic

🐛 Bug fixes

  • KeyboardAction.tab now uses an LTR/RTL supporting icon.
  • KeyboardContext now matches keyboardLocale on language code as well, to work around system bug.

8.6-rc1

15 May 18:22
Compare
Choose a tag to compare

This version adds support for 5 new locales, support for diacritics, and makes it easier to identify the host application. It also improves many of the localized system keyboards that are provided by Pro.

This version also changes the default autocomplete behavior, by making KeyboardInputViewController only use the pre-cursor part of the current word for autocomplete, which is how the native keyboard behaves.

This version also makes KeyboardKit Pro no longer overwrite custom services that are set before registering a license. This means that you can now apply custom services at any time, without it being overwritten.

This version also reduces load times and memory usage in KeyboardKit Pro, by lazily resolving localized callout action providers and layout providers, and makes all supported locales use the iPad Pro layout.

✨ Features

  • Keyboard.Accent is a new typealias for diacritics.
  • Keyboard.Diacritic is a new type that lets you model diacritics.
  • KeyboardAction.accent is a new typealias for the .diacritic action.
  • KeyboardAction.diacritic is a new action that lets you insert diacritics.
  • KeyboardController has a new insertDiacritic(_:) function.
  • KeyboardLayout and its Item has much new functionality.
  • KeyboardLocale has new locale-based initializers and matching functions.
  • UITextDocumentProxy has a new insertDiacritic(_:) function.

💡 Adjustments

  • KeyboardInputViewController autocompleteText now uses the pre-cursor part of the current word, instead of the full word.
  • KeyboardInputViewController hostBundleId has been renamed to hostApplicationBundleId.

🌐 New Locales

  • French (Canada) - fr_CA
  • Norwegian (Nynorsk) - nn
  • Spanish (Latin America) - es_419
  • Spanish (Mexico) - es_MX
  • Welsh - cy

👑 KeyboardKit Pro

  • Callouts.StandardActionProvider now allocates license services lazily, on demand.

  • Keyboard.ToggleToolbar can now use an external toggle binding.

  • Keyboard.ToggleToolbar no longer relies on a standard AnyView.

  • Keyboard.ToggleToolbarToggle is a new, customizable toolbar toggle.

  • KeyboardContext has a new hostApplication property.

  • KeyboardHostApplication is a new enum with known applications.

  • KeyboardInputViewController has a new hostApplication property.

  • KeyboardInputViewController setupPro no longer creates a new callout provider.

  • KeyboardInputViewController setupPro no longer creates a new layout provider.

  • KeyboardLayout has a new LatinLayoutType enum.

  • KeyboardLayout.ProProvider.Czech now uses proper diacritic keys on iPhone & iPad.

  • KeyboardLayout.StandardProvider now allocates license services lazily, on demand.

  • KeyboardLocale.georgian no longer uses regular font weight in alphabetic keyboard.

  • KeyboardLocale.norwegian has adjusted callout actions.

  • These locales now use iPad Pro layout:

    • Arabic
    • Belarusian
    • Bulgarian
    • Catalan
    • Cherokee
    • Hebrew
    • Kazakh
    • Kurdish Sorani
    • Kurdish Sorani - Arabic
    • Kurdish Sorani - PC
    • Persian
  • These locales have improved iPad Pro layouts:

    • French (Switzerland)
    • Greek
    • Inari Sami
    • Macedonian
    • Mongolian
  • These locales have improved iPhone layouts:

    • Arabic

🐛 Bug fixes

  • KeyboardAction.tab now uses an LTR/RTL supporting icon.
  • KeyboardContext now matches keyboardLocale on language code as well, to work around system bug.

8.5.7

14 May 08:31
Compare
Choose a tag to compare

This version updates Pro licenses.

8.5.6

08 May 08:59
Compare
Choose a tag to compare

This version makes it easier to create a themed style provider, and adds a new .numberPad keyboard type.

✨ Features

  • Keyboard.KeyboardType has a new .numberPad type.
  • KeyboardStyleProvider.themed has new convenience apis.

💡 Adjustments

  • KeyboardContext will now get its initial keyboard type set to the document text proxy's keyboard type.

8.5.5

08 May 08:21
Compare
Choose a tag to compare

This version adjusts Pro licenses.

8.5.4

06 May 11:09
Compare
Choose a tag to compare

This version adjusts Pro licenses.

8.5.3

01 May 20:51
Compare
Choose a tag to compare

This version adds a licenseError parameter to setupPro in KeyboardKit Pro.

Due to this, the setupProError in KeyboardInputViewController is deprecated and no longer used.

8.5.2

24 Apr 14:33
Compare
Choose a tag to compare

This version adds a new SystemKeyboardBottomRow component, adds some new actions and fixes a bug.

✨ Features

  • KeyboardAction has a new .text action to insert long text.
  • KeyboardLayout has a new .bottomRowSystemItemWidth property.
  • SystemKeyboardComponent is a new protocol that defines shared typealiases.

💡 Adjustments

  • KeyboardAction.url is now a system key.

👑 KeyboardKit Pro

  • SystemKeyboardBottomRow is a new Pro component.

🐛 Bug fixes

  • SystemKeyboard no longer shows the emoji key for insufficient KeyboardKit Pro licenses.

8.5.1

17 Apr 22:38
Compare
Choose a tag to compare

This version adjusts an autocomplete behavior.

💡 Adjustments

  • KeyboardInputViewController no longer hard resets the autocomplet econtext when the text is empty.

🐛 Bug fixes

  • KeyboardGesture has a new .end gesture, which is used to fix a bug that could cause space drag to never end.

👑 KeyboardKit Pro

  • KeyboardKit Pro has new ways to allow more flexible feature and tier validation.

8.5.0

16 Apr 09:56
Compare
Choose a tag to compare

This version moves many types into their related namespaces, to make the SDK surface smaller and easier to overview. Since this involves many renamings, the Deprecations section below only lists deprecated types.

The library has deprecation types to help you migrate to the new type names, so you should not run into any breaking changes when migrating from earlier versions to this one.

The KeyboardState namespace has been renamed to KeyboardStatus, since it was often confused with Keyboard.KeyboardState. Keyboard.KeyboardState & Keyboard.KeyboardServices have also been renamed to the shorter Keyboard.State and Keyboard.Services, since it reads better in code.

There are new namespaces too. For instance, KeyboardApp has app-related types, KeyboardFeedback has feedback-related types, and KeyboardSettings has settings-related types.

This version also makes it easier to register custom audio & haptic feedback, in a way that requires less or no customizations in the action handler. Just register any custom feedback for any gesture on any action, and it will be triggered by the standard action handler. You can also play URL-based sound effects from custom audio files.

This version also makes the action and input callout bubbles look more native, and adds support for adding an input toolbar between the system keyboard and autocomplete toolbar.

Finally, KeyboardKit Pro makes more locales use the new iPad Pro layout. It also provides a brand new KeyboardApp.HomeScreen that can be used as an app home screen, and a new KeyboardStatus.Section that can show all relevant statuses for a keyboard app.

🚨 Important Information

  • Many types are moved into their related namespaces.
  • The EmojiKeyboard sub-components are now throwing as well.
  • The KeyboardStatus.Label now uses its style to change icons.
  • Renamed types use @available deprecations to help adjust your code.

✨ Features

  • Feedback.Audio has a new customUrl that can play URL-based audio.
  • Feedback.AudioConfiguration has new ways to register custom feedback.
  • Feedback.HapticConfiguration has new ways to register custom feedback.
  • FeedbackContext has new ways to register custom audio/haptic feedback.
  • KeyboardLayout has a new copy() function that creates a mutable copy.
  • KeyboardLayout has new functions for using and tweaking the bottom row.
  • KeyboardLayout has a new inputToolbarLayout() value builder function.
  • KeyboardLayout has a new functions for getting the total layout height.
  • SystemKeyboard's service-based initializer now allows a layout override.
  • View has a new keyboardInputToolbarDisplayMode modifier for input toolbars.

💡 Adjustments

  • Callouts now use curves that look a lot more native.
  • Keyboard.Button no longer has a minimum scale factor.
  • KeyboardApp is a new namespace for app-related types.
  • KeyboardApp.HomeScreen is a new app home screen view template.
  • KeyboardLayout.Configuration now defines number toolbar height.
  • KeyboardFeedback is a new namespace for feedback-related types.
  • KeyboardSettings is a new namespace for settings-related types.
  • KeyboardStatus.Label now uses filled icon variants, by default.
  • KeyboardStyle.StandardProvider now applies a light weight to backspace.
  • KeyboardStyle.StandardProvider now applies more adaptive content insets.
  • SystemKeyboard has been optimized in how it renders the system keyboard.

👑 KeyboardKit Pro

  • KeyboardApp.HomeScreen is a new app-specific home screen template.
  • KeyboardStatus has a new Section view that can display keyboard statuses.
  • KeyboardTextField and KeyboardTextView can now trigger a custom onSubmit function.
  • SystemKeyboard now has an addNumberToolbar parameter to add a number toolbar in KeyboardKit Pro.
  • The iPad Pro layout has been tweaked to look more native, and is now used by all these locales as well:
  • Catalan, Czech, Danish, Faroese, Finnish, Georgian, German, German (Austria), German (Switzerland), Greek, Hawaiian, Icelandic, Inari Sámi, Macedonian, Maltese, Mongolian, Northern Sámi, Norwegian, Russian, Serbian, Slovak, Turkish, Ukrainian.

🗑️ Deprecations

  • Callouts.ButtonArea has been deprecated.
  • Callouts.Curve has been deprecated.
  • Emoji.Grid has been moved to EmojiKit.
  • KeyboardStyleProvider.buttonContentBottomMargin is no longer used.