DEV Community

Phone Operator Team
Phone Operator Team

Posted on

Expiry Dates and Plant Care Are Not the Same Kind of Reminder

When I started building Ruqi (DueNest), a household inventory app for Android, it was tempting to represent every reminder with the same fields: title, date, and completed.

That model works until the product needs to support both medicine expiry and plant watering.

An expiry date is a fixed boundary. Completing a watering task should schedule another care window. Finishing an expiry reminder usually means the item was used, discarded, renewed, or archived. Those transitions are not interchangeable.

Model the domain before the notification

The notification is only a projection of domain state. A fixed-expiry item needs a date, warning window, quantity, and resolution action. A recurring care task needs a cadence, last-completed time, next due time, and a completion transition that advances the schedule.

Keeping the two models separate prevents several subtle bugs:

  • A plant does not become β€œexpired” because watering is late.
  • Completing a medicine expiry warning should not silently create another identical deadline.
  • Changing a recurrence interval should recompute future care without rewriting the history of completed tasks.
  • A weekly home filter can combine attention items without erasing their different meanings.

Build presentation from attention windows

Users usually do not need the entire state machine on the home screen. They need a small number of attention windows: due today, due this week, and later. The UI can combine expiry items and care tasks in those windows while preserving category-specific wording and actions.

This is also a useful testing boundary. The calculation layer should accept a reference clock and return deterministic attention status. Notification scheduling can then be tested separately from date classification and UI rendering.

Keep failure honest

Android background work is not an alarm clock. Battery policy, notification permission, OEM restrictions, and delayed work execution can all affect delivery. The product copy should describe reminders as assistance, not as a guaranteed safety mechanism β€” especially for medicine.

Ruqi now uses separate expiry and recurring-care paths, with inventory, calendar, filters, custom fields, photos/scanning, QR labels, and local reminders built around them.

The free version allows 10 additions per day, with 10 more after a rewarded ad. A low-cost lifetime Pro purchase removes ads and unlocks unlimited additions.

Disclosure: I am the developer of Ruqi. This article describes the design trade-off behind the product; it is not an independent review.

Google Play: https://play.google.com/store/apps/details?id=com.duenest.app&utm_source=devto&utm_medium=technical_article&utm_campaign=ruqi%2Adevto%2A2026-08-10

Top comments (0)