Giter Club home page Giter Club logo

giellakbd-ios's Introduction

giellakbd-ios

An open source reimplementation of Apple's native iOS keyboard with a specific focus on support for localised keyboards and support for minority and indigenous languages.

Building & Running

Note: the first build will take a while.
  1. Install Cocoapods
  2. pod install
  3. Open GiellaKeyboard.xcworkspace
  4. From the target menu in Xcode, select HostingApp
  5. Run
  6. Follow the instructions to enable the keyboard on your device/simulator
  7. After enabling, open an app that uses the keyboard, such as Messages, and tap a text field to bring up the keyboard
  8. Tap and hold the globe button in the bottom left corner of the keyboard and select "Template Keyboard"
  9. Done. You should now see the Divvun nordsamisk keyboard

Sentry

To enable Sentry, add a SentryDSN key to the HostingApp/Supporting Files/Info.plist file.

Updating localisations

npm i -g technocreatives/i18n-eller
i18n-eller generate swift Support/Strings/en.yaml Support/Strings/*.yaml -o HostingApp

If you add a new locale, please open an issue to have it added to the language list inside the app.

Keyboard layouts

This repo does not include any keyboard layouts. It is intended to be used as a template for kbdgen, which consumes among other things this codebase, as well as layouts as listed in e.g. divvun-keyboard to produce the actual keyboard app. The keyboard layout specifications are found in the GiellaLT organisation.

Deploying

Builds can be deployed using the divvun-keyboard repo

License

giellakbd-ios is licensed under either of

at your option.

giellakbd-ios's People

Contributors

albbas avatar archagon avatar bbqsrc avatar dependabot[bot] avatar duomdaamaendra avatar dylanhand avatar flammie avatar fry avatar gusmakali avatar ilm024 avatar jswetzen avatar qata avatar rueter avatar samama74 avatar snomos avatar villepetersson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

giellakbd-ios's Issues

Shift key not consistent with Apple keyboards

The shift key in the Sámi keyboards is always black/filled, as opposed to the Apple keyboards, where the lower-cased state uses a non-filled up arrow. See the attached screenshots for comparison. To not confuse users, it should be the same as for the Apple keyboards.
img_1417
img_1419
img_1418
img_1420

Suggestion: Change description of repository

Hey there! 👋 Awesome tool.

I think the description for this repository could be a better better. I suggest: OSS reimplementation of iOS keyboard with support for localised keyboards. That might be more useful to newcomers than Giella keyboard for iOS.

Is this part of Giellatekno? I'm not sure what Giella means, and it is hard to tell from the README.

Thanks.

Single-letter popup seems bold/big

Our popup view of single letters seems bolder/bigger than Apple's. Combined with #11 this makes the popup view 'hop' between one large letter, an a row of small letters.

Punctuation disappears when correcting

To repeat:

  • paste in the text “ Daate dåarjoehtimmiedajve, edtja stuaride gåtjkoehtidh.“
  • switch keyboard to sma
  • place the insertion mark in the second word
  • choose the first suggestion

Notice how the comma disappears

Space key does nothing when in number/symbol pane

To repeat:

  1. Switch to the number/symbol pane in any keyboard based on this code
  2. tap the space key - notice how nothing happens

Tested with the following keyboards: Sámi (SMJ layout), runes, and Komi. That is, both the old codebase (Sámi) and the new codebase (runes, Komi) have this issue.

Extra locales added by kbdgen, e.g. Finnish

Kbdgen is adding Finnish as part of the build process, so that Finnish appears as an available language even though it is not - there is no fi.lproj dir in the iOS keyboard app. This will be fixed soon.

First letter in long-press list

Apple includes the unaccented letter as the first letter in the long-press list, we don't. It makes it easy to regret the accent/long-press, so it should be included.

User dictionary

automatically maintained user dictionary:

  • unknowns left uncorrected should be placed into a "candidate list"
  • unknowns left uncorrected a second time should be stored in a "user dictionary", and suggested prior to anything else for similar input
    • The word before and after the user dictionary word should also be stored
    • Make sure the algorithm for determining which word in a user dictionary is a separate function so it can be easily modified
  • User dictionary should be visible and editable within the keyboard app

Globe key menu contains Keyboards settings but not left or right shifted keyboard options

In the simulator (using an iPhone 6s running 11.2 as the target device), the keyboard menu in the keyboard app does not provide the same functionality as Apple's keyboards' globe menu:

  • both have the Keyboard Settings... entry on top
  • Apple's has three options at the bottom for a left- or right-shifted keyboard or a standard one - this does not appear in the Sami keyboards
  • Apple's is attached to the globe key, ie it looks like a pop-up from the key, whereas the one in the sami keyboard app is a floating list of entries, and the globe key is not highlighted as being pressed - looks weird

See attached screenshots.

skarmavbild 2018-04-17 kl 11 40 19

skarmavbild 2018-04-17 kl 11 40 32

IPhone X / iOS 12.0.1

After an update to a new iOS version, the keyboard has been slowed down.

The key-buttons react either a couple of seconds after being pressed, or have to be prodded a couple of times before they react.

Other keyboards and apps act as they should.

Removing and reinstalling the app did not improve the situation.

Double globe key on notched phones

See screenshot:

img_2838

The content of the menu seems to be the same:
img_2839

img_2840

Instead the extra space could be used to make both the 123 button and the pref button bigger.

Symbol mode switches back to default too easily

The symbol mode switches back to the regular keyboard after just one keypress, irrespective. Even when pressing backspace! It should only switch back to the regular one after pressing space (I think), but some more selective switching might be even better. Suggestions welcome, but the present behavior is no good.

Xcode warnings about invalid bundle identifier

When building the Sámi keyboard app with the latest iOS-keyboard source, I get the following warning for each keyboard:

warning: invalid character '_' in Bundle Identifier at column 19. This string must be a uniform type identifier (UTI) that contains only alphanumeric (A-Z,a-z,0-9), hyphen (-), and period (.) characters.

Capitalisation bug after speller

To reproduce:

  • switch to North Sámi keyboard
  • type return/newline
  • type the following letters: m a i d
  • you should get as one of the suggestions ‘Máid’, select that one

Note how the keyboard now is in uppercase state. It should be in lowercase, as the next character is not the first in the paragraph.

Banner style does not match native iOS

Things to fix:

  • Background color
  • Font size
  • Separator line size
  • Background when there are < 3 suggestions

iOS native light:
Simulator Screen Shot - iPhone 11 Pro - 2020-01-07 at 09 14 13

divvun light:
Simulator Screen Shot - iPhone 11 Pro - 2020-01-07 at 09 16 06

iOS native dark:
Simulator Screen Shot - iPhone 11 Pro - 2020-01-07 at 09 14 43

divvun dark:
Simulator Screen Shot - iPhone 11 Pro - 2020-01-07 at 09 15 40

iOS with < 3 suggestions:
Simulator Screen Shot - iPhone 11 Pro - 2020-01-07 at 10 00 58

divvun with < 3 suggestions:
Simulator Screen Shot - iPhone 11 Pro - 2020-01-07 at 10 01 04

Top row long-press popup distorted

Dark mode

Divvun middle row:
IMG_7708

Divvun top row:
IMG_7704

Apple middle row:
IMG_7714

Apple top row:
IMG_7707

Light mode

Note the lack of shaddow at the bottom of the Divvun popups, in addition to the distorted top row popup:

Divvun middle row:
IMG_7713

Divvun top row:
IMG_7712

Apple middle row:
IMG_7711

Apple top row:
IMG_7710

I assume we don't have the luxury of extening the popup outside the keyboard area, so we need to look for another solution. I would suggest we reduce it to one row only, instead of two. That should leave enough room for decent rendering. It might then be necessary to add horisontal scrolling when there are a lot of long-press letters, especially on small screens. Additional letters should be indicated with at the end where more letters are found.

Tested with version 2.2.2, build 107.

Xcode warnings about flatMap

In file AppDelegate.swift:

keyboards/smi/ios/ios-build/HostingApp/AppDelegate.swift:44:60: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value

Pref key needs icon

The pref key (taking the user to the keyboard app) needs something to indicate what it is, or its purpose. As it is now, it looks weird with no content:

img_2840

Long press area not selectable on second row and beyond

When there are more than 4 long press items on iPhone, or 6 items on iPad, the long press popover should be 2 rows.

We have the logic for this but it is currently disabled as it seems there an issue with the touch coordinates interfering with the constraints.

Almost impossible to switch app language on notched phones

It seems that hte language switching icon/link of the app is placed too high on the screen, such that most of it is in an iOS area reserved for links back to the previous app (ie when switching to an app by pressing a notification). Whatever the reason, most of the link/icon is not responding, only a very tiny bit at the lowest part of the icon is usable.

This is on an iPhone SX Max, but given the layout of the screen and iOS elements due to the notch for front camera etc, I suspect this problem is true for all notched iPhones (iPhone X, XR, XS and XS Max).

Message badge on preference key

We need a way to tell users about new features, updates or whatever we need to inform users about (but obviously not too often). This is both to actually inform about valuable updates, but it is also important as a signal to our users that we actually do update the keyboard app.

Since the keyboard is all they usually see (no user will actually open the app after the initial setup), I suggest a numbered badge like the one seen on Messages and Mail for unread messages, placed on the settings key.

img_2840

As part of this change I also suggest that we include a version history page within the keyboard app.

Switching app language kills the app

Bug discovered in simulator. To repeat:

  1. install keyboard
  2. open keyboard app
  3. go to settings and enable it (turn on full access)
  4. go back to keyboard app, change language
  5. save and notice how the app freezes, then just crashes

Letters in long-press list are small

Our long-press list seems to use a smaller font size than Apple's. Combined with #10 this makes for a somewhat less optimal presentation, and it also makes the long-press list harder to read.

Incorrect key labeling on symbol pages

when switching to numeric mode, the shift key should change label to ‘#+=‘ instead of the shift icon, and when in ‘#+=‘ mode, the label should be ‘123’ — this is how it works in the Apple keyboards

Locale/language list seems hardcoded

It contains languages not available in the app (like Finnish and Swedish), and it does not contain locales available to the app, like Norw. Nynorsk:

image

Cf the code, which contains the following locales: Base, nb, nn, se.

Taps between keys should trigger closest key

There are several pixels between keys, both horizontally and vertically. Currently, tapping anywhere in these regions does nothing. It should, like the native keyboard, trigger the closest key.

When using the keyboard in a real setting over the weekend I noticed that it was surprisingly easy to miss keys. My typing rate was probably cut in half because of this.

Attached is a screenshot of current dead space.
Simulator_Screen_Shot_-iPhone_11_Pro-_2020-01-10_at_15_39_38_2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.