All Projects → FlickType → FlickTypeKit

FlickType / FlickTypeKit

Licence: other
A powerful keyboard for your Apple Watch app

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to FlickTypeKit

Open Source Ios Apps
📱 Collaborative List of Open-Source iOS Apps
Stars: ✭ 28,826 (+29927.08%)
Mutual labels:  watchos, apple-watch
WatchActivityIndicator
An Apple Watch activity indicator
Stars: ✭ 23 (-76.04%)
Mutual labels:  watchos, apple-watch
SmogWatch
watchOS app for checking air pollution levels, created for my blog post series
Stars: ✭ 34 (-64.58%)
Mutual labels:  watchos, apple-watch
watchface-pride
🏳️‍🌈⌚️ Pride watch faces for watchOS 7+
Stars: ✭ 31 (-67.71%)
Mutual labels:  watchos, apple-watch
Watch-The-Matrix
A watchOS client for Matrix chat
Stars: ✭ 27 (-71.87%)
Mutual labels:  watchos
OpenAPI-Swift
KKBOX Open API Swift Developer SDK for iOS/macOS/watchOS/tvOS
Stars: ✭ 13 (-86.46%)
Mutual labels:  watchos
SwiftCurrent
A library for managing complex workflows in Swift
Stars: ✭ 286 (+197.92%)
Mutual labels:  watchos
SwiftKit
SwiftKit adds extra functionality to the Swift programming language.
Stars: ✭ 47 (-51.04%)
Mutual labels:  watchos
stinsen
Coordinators in SwiftUI. Simple, powerful and elegant.
Stars: ✭ 563 (+486.46%)
Mutual labels:  watchos
Dots
Lightweight Concurrent Networking Framework
Stars: ✭ 35 (-63.54%)
Mutual labels:  watchos
data-field
A SwiftUI view that wraps a text field to only accept specific data.
Stars: ✭ 13 (-86.46%)
Mutual labels:  watchos
Tesla-API
A iOS, macOS, watchOS and tvOS framework written in Swift to communicate with Teslas vehicle API
Stars: ✭ 32 (-66.67%)
Mutual labels:  watchos
tracelog
TraceLog is a highly configurable, flexible, portable, and simple to use debug logging system for Swift and Objective-C applications running on Linux, macOS, iOS, watchOS, and tvOS.
Stars: ✭ 52 (-45.83%)
Mutual labels:  watchos
appfiguratesdk
Appfigurate provides the ability to change configuration properties in iOS and watchOS, apps and app extensions, securely, at runtime.
Stars: ✭ 21 (-78.12%)
Mutual labels:  watchos
lisk-swift
Swift 4 library for Lisk - Including Local Signing for maximum security
Stars: ✭ 13 (-86.46%)
Mutual labels:  watchos
dashboard
iOS app + Today widget that monitors the status of my web apps. Updated for SwiftUI!
Stars: ✭ 41 (-57.29%)
Mutual labels:  watchos
IrregularGradient
Create animated irregular gradients in SwiftUI.
Stars: ✭ 127 (+32.29%)
Mutual labels:  watchos
DocX
Convert NSAttributedString / AttributedString to .docx Word files on iOS and macOS
Stars: ✭ 41 (-57.29%)
Mutual labels:  watchos
QuoteKit
A framework to use the free APIs provided by https://quotable.io
Stars: ✭ 17 (-82.29%)
Mutual labels:  watchos
SeedTruck
Torrent management app for iOS, macOS, tvOS and watchOS made in SwiftUI 2. Same codebase for all platforms!
Stars: ✭ 25 (-73.96%)
Mutual labels:  watchos

FlickType icon FlickType screenshot FlickType screenshot

FlickTypeKit 🚀

Build Status

“Best of 2020” - Apple
“Apple Watch App of the Year” - AppAdvice
“Makes Typing a Breeze” - Forbes

Add a powerful keyboard to your watchOS apps and dramatically improve the text input experience for users. Leverage full typing and editing capabilities to greatly enhance existing parts of your app, or enable entirely new features like messaging and note-taking directly on Apple Watch.

SwiftUI

Use a FlickTypeTextEditor to display an editable text interface and gather text input from the user:

import FlickTypeKit

struct ContentView: View {
  @State private var text = ""
  var body: some View {
    ScrollView {
      VStack {
        // other views here...
        FlickTypeTextEditor("Message", text: $text)
        // more views here...
      }
    }
  }
}

WatchKit

Modify your presentTextInputController() calls to include the flickType argument:

import FlickTypeKit

presentTextInputController(
  withSuggestions: nil,
  allowedInputMode: .allowEmoji,
  flickType: .ask) { items in
  if let text = items?.first as? String {
    print("User typed text: \(text)")
  }
}

.ask will offer a choice between FlickType and the standard input methods (recommended).
.always will always open FlickType, skipping the input method selection.
.off will present the standard input method selection without the FlickType option.

Note: When using WatchKit, the optional startingText argument can be used to support editing of existing text with FlickType. In SwiftUI, FlickTypeTextEditor does that automatically for you.

Integration

Swift Package Manager

https://github.com/FlickType/FlickTypeKit

This version of FlickTypeKit will only show FlickType as an input option to users on watchOS 7 or later. FlickTypeKit uses universal links to switch from your app to the FlickType Keyboard app, and then return the input text back to you. Thus the keyboard stays up-to-date without you having to update your app, and leverages the user's custom settings and dictionary. To support universal links in your app:

  1. Add an applinks associated domain entitlement to your watch extension target: Associated domains screenshot

  2. Create a file named apple-app-site-association (without an extension) with the following contents, and place it in your site’s .well-known directory:

{
  "applinks": {
      "details": [
           {
             "appIDs": [ "<Team ID>.your.watchkitextension.identifier" ],
             "components": [
               {
                  "/": "/flicktype/*",
                  "comment": "Matches any URL whose path starts with /flicktype/"
               }
             ]
           }
       ]
   }
}

The file’s URL should match the format https://your.app.domain/.well-known/apple-app-site-association and must be hosted with a valid certificate and with no redirects.

  1. Add the following inside your WKExtensionDelegate.applicationDidFinishLaunching():
FlickType.returnURL = URL(string: "https://your.app.domain/flicktype/")
  1. Add the following inside your WKExtensionDelegate.handle(_ userActivity: NSUserActivity):
if FlickType.handle(userActivity) { return }

Note: Always test on a real device, since the Simulator does not support app switching via universal links yet.

Help & support

  • The sample app contains implementations for both SwiftUI & WatchKit.
  • Join our Discord
  • Email us!
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].