ruffr
ruff

ruff 2.0.3.2

Hot-fix update:

2.0.3 introduced a couple of regressions that should now be resolved:

  1. You should not be auto-scrolled to the bottom when scrolling up the content.

  2. Keyboard should not incorrectly be triggered when scrolling.

Big apology for this misstep — I’ll pay extra attention in future updates to ensure I don’t introduce any similar regressions to the core experience.

In addition, fixed an issue with the new Fetch widget causing multiple quick copies not being registered correctly and resulting in a perceptible lag. Its default size has also increased to be edge-to-edge by default.

As I mentioned a few weeks ago in the ruff 2.0 update, the rewrite provides a fast, flexible foundation for richer experiences while staying true to its essence. This is the first update to support this promise :)

New
  • Fetch is a new home screen widget for Plus users that displays a helpful preview of all your entries and lets you copy their contents in a single tap. This elevates the utility of your stash: text clips that you may refer to more than once are now conveniently accessible for reuse.

    • Like the active widget, you can toggle spaces from the bottom right.

    • It already comes with a couple of settings, but I have more ideas planned such as giving you the ability to hide items you want to keep stashed but not necessarily available from here or label a stashed entry for quicker recall. If you have any ideas of your own, please let me know!

  • You now have the option to show a [Copy] and [Share] button on the Active widget, with the former on by default.

    • The previous [Open] button has been removed, and replaced with an implicit open via a tap anywhere on the widget (unless you tapped a checkbox which toggles that).
  • The pull-to actions on the Composer can now be switched off: pull down to clear, and pull up to top — they’re both on by default. Please remember with the clear pull, you can always hit [Undo] to restore the text if it was unintentionally triggered.

Improvements
  • Double tapping to select a word should highlight it correctly.

  • Changes to the App menu (swipe right) so it doesn’t feel as busy as before, and all options more discoverable (no longer spread in multiple spots with some actions hidden behind a tap).

  • Stashed cards now use relative dates when appropriate — anything older than 8 days ago will show a month date, like before.

  • The title bar is fixed when scrolling any screen inside Settings.

ruff Reminders 1.0.5

This is a significant update in a couple of ways: the improvements to the alarm system so the app lives up to its promise that it will make sure you never forget a thing, as well as a lot of fit and finish polish so the entire experience feels better.

New
  • When you asked to be chased about an item, the alarm set is no longer just a notification but an an actual alarm that rings.

    • There is a new alarms settings section that lets you control its behaviour: you can turn the ringer off if you like (reverting to its previous behaviour), set it so ringer applies to specific types of reminders only (location or scheduled) and set how long it should ring for.

      • At the moment, these settings apply universally, but I’ll consider providing the ability to override the alarm behaviour on a per-reminder basis too.
  • The pup chip in the Command Bar to open the Reminders sheet now has a badge indicating number of alarms/notifications remaining for the day. This should hopefully serve as a visual cue (helpful nudge) to remind you of how persistent ruff will be for the rest of the day.

Improvements
  • The [...] menu has had its contents relocated. There’s a new [Settings] button in the bottom right that opens an enhanced Settings sheet that includes the options that previously lived inside the menu. This cleans up the top-half of the interface, for increased focus on your today list, and also means you now have one-tap access into Settings.

  • If you missed any items yesterday, the Overdue chip in the Command Bar will prioritise this information by prominently highlighting this fact (instead of just showing a single digit representing all overdue items — tapping it will continue to show all of them, but with yesterday’s at the front of the queue).

  • [Search] is much more discoverable now: the previous basic handle is now one a [Search] pill that on a tap activates search mode.

    • You can still drag the handle (and now the entire row that it’s contained within, and not just the handle) up to activate search too, as well as downwards to hide the Command Bar for a more immersive today view.
  • The Command Bar has become more compact, to give more room for your today list (and to de-emphasise its role as secondary). Search now also mirrors these changes too for a consistent feel when switching between these states.

    • The bottom-edge corner radius of the today list has also been reduced, so there’s no visual flair (unhelpful ornamentation) in the bottom-half of the UI, inadvertently shifting focus away from your reminders.
  • Checkboxes are sized proportionally to text size of reminders.

  • The permission banners used across the app now share the same visual treatment.

  • When you tap on the overdue chip, the leading inset is consistent with other chips’, so switching between them should feel more smooth.

  • Size of [Done] button in the Reminders sheet reduced, and now same as Entry sheet’s.

  • Reminders sheet always slides into view.

ruff 2.0.2

In case you missed it, learn more about the big ruff 2.0 update by clicking here.

Improvements
  • App icon supports Material You theming on your home screen.
Fixes
  • Beginning of new sentences are auto-capitalised.

ruff 2.0

If it ain’t broke, don’t fix it.

If it ain’t broke, don’t fix it.

That’s why I never thought to change ruff. It worked. And its users loved how it worked. But I couldn’t anyway, even if I wanted to, because of technical debt. Meeting Google Play’s many new requirements to update the app required substantial effort, so it was put off for several years. That changes today: ruff has been rewritten from the ground up using Android’s latest, best-supported APIs. Don’t worry though — it’s still the same ruff you love, just better.

Spaces

ruff’s simplicity is what makes it charming. A single sheet of text doesn’t require a tutorial to understand. It is what it is. Everyone gets it, and many love it for that reason. But what if we kept this principle and simply multiplied the number of surfaces available? That’s what Spaces unlocks. It lets you have different sets of text (each with their own stashes), so you can organise ideas, projects, and different parts of your life separately. You can hop between them easily — no jumping through hoops required. Just tap the pill in the bottom-right corner to switch Spaces.

Of course, this is entirely optional. If you’d rather stick with a single sheet, you can — you won’t lose anything.

Etc.

Every feature from v1 is still here, but the entire experience is much more customisable. Although there have been refinements across the board, everything should feel familiar. I don’t expect existing users to need onboarding again, and new users should pick it up just as quickly as before.

Nicer. Faster. Better. That’s ruff 2.

It’s a rock-solid foundation for ruff’s next phase of development. If something can improve ruff without compromising its simple mission — and there are plenty of nice touches that come to mind — expect to see it in the coming weeks, months, and hopefully years.

2.0.1 Update

Fixed a few issues raised by existing users who upgraded:

  • Swiping to stash should feel fast again.

  • Adding a list item from the Toolbar regardless of position of caret should work as expected.

  • Number of free entries returns to 10.

  • Widget should continue to function regardless of text length.

ruff Reminders 1.0.4

Improvements
  • Everything should load quicker on start-up.

  • Widget now also follows your settings on how to handle completed items.

  • Alarm pill now shows on the same line as reminder title on widgets.

  • Tapping on items on the widget should be reliable (sometimes you may have needed to tap more than once previously).

  • Membership relabeled to Account.

  • Nicer looking tick for checkboxes inside the app (mirrors the widget’s now).

ruff Reminders 1.0.3

New
  • For those of you who want to avoid another subscription, there is now a new lifetime unlock in-app-purchase. It’s more expensive than a yearly plan — not by much though! — but hopefully it pays itself back over time.

  • When you have an alarm set for a reminder, it shows as a pill under its title. This is off by default, and can be toggled on via Settings’ new List section.

    • Another new setting is the ability to toggle off location pills — this is on by default.
  • You can now choose to automatically move completed reminders to either the bottom of today’s list or to a collapsable footer list (collapsed by default).

  • Ability to leave a quick review available in Settings screen — if you have a minute, please do as they help a lot!

  • New membership screen from where you can upgrade and restore your purchase.

Improvements
  • You can now skip the onboarding at any point.

  • Text size for reminders more closely aligned with your equivalent system settings.

Fixes
  • Alarms previously set for a reminder, whether it has been moved or is recurring, will be restored when the reminder is applicable for today.

ruff Reminders 1.0.2

Improvements
  • Completed items will no longer show in your gentle reminder summary notifications.

  • When you receive a reminder on an item, there’s now an action to mark it as done (besides snooze options — had to remove the 10m to make room for this).

ruff Reminders 1.0.1

New

Natural Language Input lets you add reminders the way you’d normally write them.

Type the task and include when it’s due, or add a time to set an alarm. Ruff detects simple English dates and times, shows a preview before adding, then removes those scheduling words from the final title.

This first version supports English only, and are parsed from any entry field. Here are some examples to help you get started:

  • Alarm times: at 5, 5pm, 5:30, 17:30, noon, midnight

  • Relative alarms: in 30 mins, 30m, in 2 hours, 2hr

  • Exact due dates: today, tomorrow, Monday, next Monday, Apr 10, 10 Apr, 10/04

  • Relative due dates: in 3 days, 3d, in 2 weeks, 2w, in 3 months, 3mo

  • Rough weeks: this week, next week

  • Rough weekends: this weekend, next weekend, any weekend

  • Rough months: April, Apr, next April

In time, expect more phrases/terms to be supported. If you have any ideas for some or are having issues with any, please let me know.

Improvements
  • First letter of any new item after being added should be auto-capitalised.

  • Size of ”Anything else?” text on the widget is same as other item rows.

  • Today widget now has a preview image in system picker.

Fixes
  • Tapping on the custom date radio button in Advanced Entry should open its picker.

  • The date picker in any Entry should show the correctly selected date.