Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iPad layouts more reflective of system keyboards #33

Closed
2 tasks done
andrewtavis opened this issue Nov 23, 2021 · 39 comments
Closed
2 tasks done

iPad layouts more reflective of system keyboards #33

andrewtavis opened this issue Nov 23, 2021 · 39 comments
Assignees
Labels
design Relates to UX/UI designs good first issue Good for newcomers help wanted Extra attention is needed

Comments

@andrewtavis
Copy link
Member

andrewtavis commented Nov 23, 2021

Terms

Description

This issue at time of writing is not a priority, but could be later. The focus is making the iPad version of Scribe more reflective of the system keyboard layout. iPad support was not the key focus for Scribe at launch, so the keyboards generally look like larger versions of iPhone keyboards. It would be best if multiple layouts of iPad keyboards could be made that reflect having the numbers on the top row always, as well as other the system keyboard layout characteristics.

@andrewtavis andrewtavis added feature New feature or request good first issue Good for newcomers help wanted Extra attention is needed design Relates to UX/UI designs labels Nov 23, 2021
@andrewtavis andrewtavis removed the feature New feature or request label Nov 30, 2021
@andrewtavis
Copy link
Member Author

These changes would be done in the InterfaceVariables files for each keyboard, with the conditions within KeyboardsBase/KeyboardKeys.swift then being used to adapt the key widths.

@neisenlo
Copy link
Contributor

Would this be desired for all iPads or would only the larger models want an additional row of keys?

@andrewtavis
Copy link
Member Author

andrewtavis commented Apr 21, 2023

Hey @neisenlo! 👋 I’d agree that only the larger models should have an extra row of keys :) A basic thing we could do is edit the key sizes now to get them to be more reflective of the system keyboards (by this I mean that some keys should be wider than they are now). After this we could do a simple boolean check of screen dimensions to determine if another row would be possible. We could add the number keys into the interface variable files and just ignore them if the screen isn’t big enough?

Let me know if this is something you’d be interested in working on. Would be happy to assign and could also draw your attention to some of the files you’d be working with 😊

@neisenlo
Copy link
Contributor

I'd definitely be willing to give it a shot! Would you recommend hardcoding the changes into each letterKeysPad in the InterfaceVariables file first?

@andrewtavis
Copy link
Member Author

andrewtavis commented Apr 21, 2023

Assigning you so people know 😊 I’d say a first thing to do as prep could even be adding in the number keys and delete into the letterKeysPads and then changing the place where they’re called such that those keys are skipped? The row would be 1 to 0, -, = and backspace.

@andrewtavis
Copy link
Member Author

andrewtavis commented Apr 21, 2023

Big thing is that in thinking about this we need a new layout file to make this work, as it’s designed now so that the keys each have their own row. We thus only have four rows available. Maybe let’s add the top row and skip it first, then I can make a new layout file for the larger iPads and hook it up, and then from there you can work on getting the layouts the way they should look with wider buttons and a tab option, etc? Let me know how this sounds :) You’d also be welcome to play around with layouts if you wanted, but that’s something I wouldn’t expect 😊

@neisenlo
Copy link
Contributor

I have added a number row (as specified above) to all the keyboards and simulated an iPad that was too small so I ignored the first row. I'm not sure this is worth a pull request but here is my forked branch
https://github.com/neisenlo/Scribe-iOS/tree/iPadKeyboard

@andrewtavis
Copy link
Member Author

It’s definitely worth a PR :) No stress! Send it along and I’ll merge. Do you have interest in working on .xib layout files? You’d be welcome to if so. I could make a layout file that’s the same as the current one, make sure it can be referenced by just iPads, and then you could experiment with adding the fifth row. Only if it’s of interest obviously 😊 If you’d rather work on other parts of the issue I’d be happy to do the layout files myself fully :)

@neisenlo
Copy link
Contributor

This is my first swift project so it may take me a while to figure out how. But I would definitely be interested in giving it a try if that's not a concern.

@andrewtavis
Copy link
Member Author

No stress! Happy to have people use Scribe as a means to learn 😊 I’ll plan on setting up the base iPad .xib, and just let me know if you want to work on that file as well or take it over after I’m done making it :)

@andrewtavis
Copy link
Member Author

andrewtavis commented Apr 22, 2023

Hey @neisenlo 👋 9475942 added in the potential to add a numbers row to the keyboard. Settings up the .xib was actually easier than I expected and we thankfully didn't need to set up another layout file 😊 The following controls the height of the new UIStackView that we can populate with the numbers keys for iPads:

func conditionallyShowTopNumbersRow() {

This function as of now sets the height of this UIStackView to zero, but we can use the conditional to check the size of the iPad or potentially the model and then add in the numbers keys if appropriate :) Do you want to give adding in the numbers keys a shot, and then from there we can finish it up by adding in tab and some other iPad specific keys?

@andrewtavis
Copy link
Member Author

Hey @neisenlo 👋 Just wanted to let you know that I'm gonna go through the v2.3.0 release process now as I was able to get some good new features done over the last few days. No stress on this issue is what I'm getting at! Hope that all's well with you and that you have had a nice week! Let me know if you still have interest and we'll go from there 😊

@neisenlo
Copy link
Contributor

neisenlo commented May 1, 2023 via email

@andrewtavis
Copy link
Member Author

Sounds great, @neisenlo! Let me know what I can do to support you :) Again no rush on this as for now I'm focussed on another project, but I'm very happy to jump over and help out if you have questions 😊

@andrewtavis
Copy link
Member Author

Hey @neisenlo! Hope you're well :) Checking in with you on if you'd still like to work on this issue 😊 We're getting into the swing of things for our participation in Google Summer of Code, so would be great if we could also include this in all the work we'll be doing 🚀

@nyfz18
Copy link
Contributor

nyfz18 commented Jul 12, 2023

since I can't see the current layout, would you mind sending a screenshot of how it currently looks on the simulator?

@andrewtavis
Copy link
Member Author

Hey @nyfz18! Yes, sure thing :) The layout files that you'd be editing are in files like Keyboards/LanguageKeyboards/German/DEInterfaceVariables.swift where we'd want to edit the values for letterKeysPad and the like :)

As of now it looks like this:

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 20 23 58

And we're hoping to change the values in each InterfaceVariables.swift file so it looks more like this:

ipad_keyboard

This would be only for iPads that are big enough though, which we can discuss later :)

Btw, @neisenlo - hey there 👋 You're still welcome to help with this. @nyfz18 is on Windows and can thus only do the base layout changes. I can support if you're still busy 😊 Hope you're well!

@andrewtavis
Copy link
Member Author

andrewtavis commented Jul 12, 2023

Layouts we want to match

Danish (#133)

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 21 57 51

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 22 15 28

English (#7)

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 22 00 15

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 22 16 16

French

Canada

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 22 01 04

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 22 16 50

France

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 22 01 31

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 22 17 20

German

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 21 51 44

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 22 17 52

Hebrew (#134)

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 22 02 22

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 22 18 24

Italian

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 22 02 56

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 22 19 19

Norwegian (Bokmål, #135)

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 22 03 25

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 22 19 50

Portuguese

Brazil

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 22 21 04

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 22 20 20

Portugal

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 22 04 56

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 22 21 37

Russian

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 22 05 24

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 22 22 03

Spanish

Mexico

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 22 23 11

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 22 22 32

Spain

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 22 07 07

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 22 23 39

Swedish

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 22 07 40

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 22 24 06

@andrewtavis
Copy link
Member Author

@SaurabhJamadagni and @wkyoshida, interesting to see that for iPads there's a fair amount of variety based on the country 🤔 I doubt there's much variety aside from the main currency symbol on phones, but for pads we may need to consider country localizations? Not sure 🤔 I think that the average person is hunting and pecking on iPad keyboards, and if they actually want to type then they have an external one. At the very least for the start I think just picking the one that's most popular by native speakers and providing the QWERTY/AZERTY options via #312 would be enough :)

@nyfz18
Copy link
Contributor

nyfz18 commented Jul 12, 2023

I'm working through the code. Here's my forked repo: https://github.com/nyfz18/Scribe-iOS/blob/main/Keyboards/LanguageKeyboards/German/DEInterfaceVariables.swift

I haven't added the symbols on the right hand side of the keyboard yet but I've added some of the left buttons. I just wanted to double check if I'm on the right track before adding more

@andrewtavis
Copy link
Member Author

andrewtavis commented Jul 12, 2023

Yes, @nyfz18, this is generally what we were thinking. Thanks for checking! The only main change I'd do is leave the original iPad layouts as there were and make new versions of it. For smaller iPads we'll still need to use the old version :) You could make two new variables - letterKeysPadExpanded and symbolKeysPadExpanded - and we'd then not need the expanded version of the number keys as they'd be in the top row :)

And as far as the "snake" character that you mentioned, in looking at it it seems to be a carrot (^) to the left or 1 on the German letters layout above 😊 You can just put in that char instead of snake.

@nyfz18
Copy link
Contributor

nyfz18 commented Jul 12, 2023

Okay, thanks for checking. I just added the letterKeysPadExpanded. Is that what you meant?

Also, would it be possible to send a reference of what you want the symbolKeysPadExpanded to look like? I can layout the keyboard based on that

@andrewtavis
Copy link
Member Author

Thanks for the communication! :)

Also, would it be possible to send a reference of what you want the symbolKeysPadExpanded to look like? I can layout the keyboard based on that

Using the above images as a baseline and specifically German:

letterKeysPadExpanded would look like the following as you generally have set up in your branch:

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 21 51 44

There are a couple of changes that you need to make, like the keys after 0 being ß and ' instead of - and =. For symbolKeysPadExpanded we'd be looking for a similar variable with the layout looking like the second picture within each language group above:

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 22 17 52

Happy to answer further questions! Thanks for getting at this!

@wkyoshida
Copy link
Member

At the very least for the start I think just picking the one that's most popular by native speakers and providing the QWERTY/AZERTY options

Yeah, I'd agree - I think I'm perhaps less concerned with some of the small key differences that some regions might have, since accounting for all of them might be a whole pandora's box we might not want opened yet 😨 😆 What IS worth accounting for though is when regions do have completely different layouts, as is the case with France vs Canada as we've been discussing. As you pointed out, we've got that planned, so I'd say we're alright

@nyfz18
Copy link
Contributor

nyfz18 commented Jul 13, 2023

I added the letterKeysPadExpanded and symbolKeysPadExpanded. There are two things that I'm not sure how to do:

  • the quotation button in the symbol expanded layout (")
  • when there's two character a button (ex: the numbers)

@andrewtavis
Copy link
Member Author

the quotation button in the symbol expanded layout (")

Do you mean how to input it, @nyfz18? Normally you can via single quotes like '"' :) Let me know if it's something else though :)

when there's two character a button (ex: the numbers)

This is related to #22, which as of now is not a priority. We'll have the bottom character be what shows up on letterKeysPadExpanded and top character be what shows up on symbolKeysPadExpanded :)

@nyfz18
Copy link
Contributor

nyfz18 commented Jul 13, 2023

Yeah, so for line 68 in my forked repo of DE Interface, in the 8th index, I currently have '"' . Is that the right formatting? My IDE is coloring some text weirdly because of that part of the program I think. Also once I have the expanded keyboard set, should I add a condition for the larger iPad so it'll use the expanded keyboard version?

Thanks for the help!

@wkyoshida
Copy link
Member

Yeah, so for line 68 in my forked repo of DE Interface...

Quick tip on the above!

When viewing repo files within GitHub, if you click on the line number, there's a Copy permalink option that gives a link that goes directly to the specific line in the file. Very handy for sharing with others!

image

@andrewtavis
Copy link
Member Author

Yeah, so for line 68 in my forked repo of DE Interface, in the 8th index, I currently have '"' . Is that the right formatting?

Yes, @nyfz18, this should work great 😊

Also once I have the expanded keyboard set, should I add a condition for the larger iPad so it'll use the expanded keyboard version?

You can if you'd like to! I'd be happy to figure out where that change should go and help you test it a bit in the PR :)

Thanks for the help!

Thanks for the interest and dedication!

@nyfz18
Copy link
Contributor

nyfz18 commented Jul 20, 2023

Sure, what should I do next?

@andrewtavis
Copy link
Member Author

I guess we’re ready for a pull request for now :)

@andrewtavis
Copy link
Member Author

@nyfz18, b563c7f was the fixes to the PR you sent, with my comments being in the now closed discussions of #346 :) Feel free to send along more PRs for the languages that we already have: French, Italian, Portuguese, Russian, Spanish and Swedish. For the other languages that you see we haven't implemented the iPhone versions, but I can do that for you and you can come in for the expanded iPad versions 😊

@nyfz18
Copy link
Contributor

nyfz18 commented Jul 24, 2023

hello! sorry, been a little swamped these days. I'll try to get them in by the end of the week sometime.

@andrewtavis
Copy link
Member Author

Sounds wonderful, @nyfz18! Looking forward :) :)

@nyfz18
Copy link
Contributor

nyfz18 commented Jul 28, 2023

I've updated the languages for French, Italian, Portuguese, Russian, Spanish, Swedish. I committed the changes to my repo but my repo isn't up to date yet. Not sure if that will affect anything when trying to merge the change to the main repo.

https://github.com/nyfz18/Scribe-iOS/tree/main/Keyboards/LanguageKeyboards

@andrewtavis
Copy link
Member Author

Hey @nyfz18! Ideally you'd update your branch with the changes that have gone through, but then the changes that you've made are to files that haven't been edited, so you should be good for a PR 😊 After that we can get these all hooked up!

@andrewtavis
Copy link
Member Author

cd89548 was a ton of edits :) Please don't worry about how much went into the commit to complete this, @nyfz18! As the issue numbers int he commit say, I basically decided to go through and get the layouts for the remaining keyboards that we're working on as well as I find that it's best to handle these sorts of things in batches.

I'll close this issue now as what needs to happen for each keyboard is contained within the respective new keyboard issue 😊 Thanks so much for your work on this, @nyfz18! I'll email you soon with some ideas I've come up with for what you could work on :) Some basic things that could be done though is that if you'd like to make the variables for #133, #134 and #135 within each of their respective InterfaceVariables and CommandVariables files then that'd be a great help in us getting these keyboards out eventually. This is another thing for Scribe-iOS that wouldn't need an emulator. I'd be happy to explain this more, but then I think what I'll suggest in the email might be more fun anyway :) :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
design Relates to UX/UI designs good first issue Good for newcomers help wanted Extra attention is needed
Projects
Archived in project
Development

No branches or pull requests

4 participants