I'm Bike's developer. Thanks everyone for the comments.
While I have the eyeballs I hope you don't mind me asking...
I'm in process of adding autocomplete to Bike. Problem is that I generally find macOS autocomplete painful and unpredictable. I both disable it and have many typos. I'm not talking so much about the suggestions, but about the surrounding UI.
I'm looking for ideas/links for how to make autocomplete better and more predictable. I know Mac apps, I do know much else. What are your favorite autocomplete implementations past or present? If you could have a "fixed" macOS autocompletion what would it look like?
Great product and new features! Will definitely try it out when I get a chance. While I am right in your target user base, over a decade ago I built https://zetabee.com/text for myself and even though there are now so many better solutions to the text outlining problem, it is just too difficult for me to switch. Not sure what your keyboard binding for collapse/expand is but I played with backtick (single key) and loved it because it just feels natural and I never type ` in my notes.
Long ago, I tried to make a better autocomplete feature so people with speech disabilities have fewer buttons to push. Here's what I did - https://ktype.net/wiki/research:articles:progress_20110209 - basically broke down tweets into n-grams (1-4) and then used the 5 most likely next words as suggestions. If I were to do this today, I would still try to get a large volume of text in my target use case (what do most of your users type? Tech project notes? home construction items? grocery lists) and break them down into large lists of 2-3 n-grams. Then ask GPT3 (or equivalent) for 3 possible suggestion for next 1-2 words and save them. Compress and hard-code this list into the app (or alternatively make it download/update from your site infrequently).
If you would like me to explain more, please feel free to reach out!
Your outline project looks great. Hard to beat an app that you make yourself and can change when you see fit.
Bike does have a keyboard shortcut for expand/collapse, but truth is I don't remember what it is without looking. Instead what I do is always exit to "outline mode" with escape key, and then use left/right arrow keys.
Outline mode is inspired by vim, it's a mode where there is no text input, so you can use typing keys for other purposes. Right now it does very little, mostly just expand/collapse and delete. I hope to expand on this in future, but right now I'm more focused on text editing fundamentals.
Thanks for the autocomplete links. I maybe didn't explain well in my question... but I think I'll leave the actual autocomplete logic to macOS. I want to integrate with their autocomplete system so users will have consistent experience that way.
I'm more interested in UI problems of indication that correction has happened and easy undo when corrections go wrong. In this regard I think macOS is pretty poor.
For example on macOS if you type "hello " then after the space it will be corrected to "Hello ". If that's not what you wanted then there aren't really easy options to undo. Of course you can undo... but that will remove the space and then select "hello". Then another few keystrokes to get back to what you wanted. On the other hand in Google docs all you need to do is backspace and it undoes the autocorrect. I like that and will probably copy, but am looking for more autocorrect systems to learn from.
One of the most important changes that I've noticed in autocomplete on iOS (I have it disabled on MacOS, so no idea how it works there), is this:
Old behavior: Autocomplete suggests the word I want partway, but by the time I tap it, I've typed additional keys and the suggestion changed. Deleting and trying again would enter the same mistake.
Current behavior: Autocomplete suggests the word I want partway, but by the time I tap it, I've typed additional keys and the suggestion changed. Deleting a few characters causes it to suggest (again) the word I actually wanted. It remembers the next most likely suggestion and I can quickly select it.
This change in behavior was the most significant improvement that I can recall. It went from maddening to somewhat annoying but useful.
Please keep up the good work. Mac nerds who care about high-quality native apps appreciate what you're doing.
> I have it disabled on MacOS, so no idea how it works there
Well that's really at the core of my question. Why do you have it disabled? What need to be improved so that you don't disable it.
I think almost everyone would agree that if you type "teh" or other common typos it would nice for computer to automatically correct them. But many people (myself included much of the time) disable autocorrect. I think this is because the UI isn't ideal.
I'm looking for ways to fix that. Maybe it's not fixable, but if you can enumerate specifics on why you disabled autocomplete on macOS I might come up with some solutions. Thanks!
Sorry that this isn't very likely to help you gain much actionable insight.
I just turned the feature on for the first time since originally disabling it whenever it was introduced.
After playing with it briefly, it isn't fast enough to offer me any real help. Perhaps if I was hesitating on spelling a challenging word (does it have two of that letter or just one?) it would help me out. But I don't run into those scenarios often enough that it'd be worth the other downsides.
Just now, when I wanted to manually enter typos in the bottom line, it was clunky to dismiss without changing the words. I could mouse over the X or use the arrow keys to change position. Maybe there's another way that isn't intuitive to me? Maybe Esc, but I've already disabled it. Point is, it broke my flow.
I prefer to have the computer point out to me when I spell something incorrectly. It's a method of reinforcing the correct spelling. Then I can hopefully learn not to make the same mistake in the future.
Finally, as I've had it on while typing this post, it autocorrected a typo to the wrong word (amke turned to take; wtf). Had I not noticed, it would make my sentence strange (though most would just assume I was typing on a phone). That's fine on a web forum, but that's not acceptable in professional emails and the like.
It's just not useful to a life-long computer user with a full-sized kbd. However, despite 15 years of thumb typing on phones, the targets are still small enough and my thumbs are still large enough that it's mostly useful.
PS: Because I'm a fan of text-substitution apps (I use aText, but TypeIt4Me is also well-regarded), I already have custom entries for things like hte or thakns).
> I'm looking for ideas/links for how to make autocomplete better and more predictable.
Consider taking a hint from every code editor. As the user types they are presented with a drop-down list of completions and corrections for the current word. This list hovers below the cursor and moves with it. The top item of the list is automatically selected such that hitting the completion key combo (often just the Tab key) replaces the current word with the selected item from the drop-down. The elements of the drop-down are sorted by likelihood of them being what the user meant to type and are navigated with up/down arrow keys. Hitting escape hides the completion drop-down and allows the user to use the up/down keys to move the cursor. At any time the user can press a key-combo to bring up a completion/correction drop-down for the word under the cursor.
I agree code editor autocomplete is a good design for searching through space of options efficiently. I'm not sure if that design works for "autocorrect" in general writing instead of code editing.
I guess you could popup a list of all possible matching "correct" words as you type, but that would likely get old fast for normal writing. You would always see the popup. Generally autocorrect (fixing typos and spellings) happens once you have finished typing a word. At that point the word is checked, and maybe autocorrected.
I think that basic design is good. Finish word, then autocorrect if there's a high quality match. The place where I think problems happen and maybe a better design can help include:
1. Clear indication of what has been autocorrected
2. Easy way to revert autocorrections
3. Don't pop up to much UI during this whole process
I love Bike so much on my Mac. It’s light and nimble in a way that OmniOutliner never was, and makes me want to use it. I’m a very happy customer! My only “complaint” is that now I desperately want it on my iPad. “Light and nimble” are especially important on mobile and I haven’t found an awesome alternative there.
I'm not a user of Apple products, but in the Linux world there are code editors that enable the user to define custom completions. I find this to be an excellent productivity feature, not just for coding.
Thanks. I agree the way that programmer text editor handles snippets is nice. I think this is a pretty good and clear UI already.
For autocorrect I'm talking about corrections that are less predictable such as spelling or grammar errors. They can be very useful because they mean fixes happen without any extra work, and mean you don't see lots of red spelling errors in your document... but it's also a case where computer is doing automatic work that sometimes might be wrong. So needs good way to indicate that correction has happened and easy way to revert.
I've been doing indie Mac software since around 2003. Mostly full time with some consulting mixed in. I've had varying levels of success. Generally business grew into (enough to support me and three others for a few years) until around 2012. Then down down (with very little bumps of success in-between). Since 2012 it's been just me. I make less than I would in a "real" job. Sometimes quite a bit less. Even with Bike's recent success I'm mabye making less than average US programmer.
Some of this is likely due to indie being hard. Much is also due to me being mostly programmer driven, not business driven. I am doing many stupid things business wise. But I also get to work on exactly what I want to work on.
While I have the eyeballs I hope you don't mind me asking...
I'm in process of adding autocomplete to Bike. Problem is that I generally find macOS autocomplete painful and unpredictable. I both disable it and have many typos. I'm not talking so much about the suggestions, but about the surrounding UI.
I'm looking for ideas/links for how to make autocomplete better and more predictable. I know Mac apps, I do know much else. What are your favorite autocomplete implementations past or present? If you could have a "fixed" macOS autocompletion what would it look like?