kendallroth / my-days Goto Github PK
View Code? Open in Web Editor NEWSimple app that counts down/up to important days!
Simple app that counts down/up to important days!
Add the ability to view details for a selected day, including additional time unit values (preview of value for #17).
Add build details to the Developer screen, as documented below.
Describe the bug
When deleting the same day that is selected to open with the app, the store should remove the flag for trying to open it at launch. While it doesn't cause a crash since it checks if the day exists, the store would then technically be "corrupt" (with extra unmatching day specified).
To Reproduce
Steps to reproduce the behavior:
Need to add the ability to import and export database to/from a device file. This will enable backing up important application state to share across app installs, etc.
This could use redux-persist
if desired, or a most custom solution, as the state will be loaded into the app and then stored. However, using the library could decrease the amount of work required by standardizing shape, if it is possible.
Some RTK selectors are returning different referential values when executed with same inputs. This triggers a new dev warning in React Redux v8. There are a number of selectors that incorrectly map state without memoization, which should be fixed/improved.
Selector returned a different result when called with the same parameters. This can lead to unnecessary rerenders.
Selectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization
Is your feature request related to a problem? Please describe.
A separate page for adding/editing days would improve/standardize the UX when interacting on smaller devices (currently no scroll when keyboard is open). Additionally, this would allow displaying a modal for selecting the icon, which is currently not possible from within the existing modal.
Describe the solution you'd like
Add a dedicated screen for adding and editing days. Additionally, add a modal for selecting the icon, including search capabilities. This screen could clean up code by accepting a day through navigation props, rather than having to manage the currently edited day in local state outside the dialog.
Describe alternatives you've considered
If the only issue is the icon selection, #25 may be sufficient.
Describe the bug
Day Details screen always shows a countdown arrow by the highlighted day, even if it is counting up. This is because the value passed is now a string, which is always technically greater than zero (therefore always counting down).
Need to add the ability to "share" a day configuration with another user. This will not track changes, but will only create a duplicate item via the app (from a URL).
my-days://
) and parse configAs noted in #9, environment variables can be used to customize Expo app behaviour (from builds or development). This could potentially be utilized to set the Expo config runtimeVersion="sdkVersion"
in development (to support Expo Go client) while also supporting runtimeVersion="appVersion"
(or native) during builds/updates. The benefit in this would be use of Expo Go in development, while hopefully preventing issues when modifying native code/packages. However, it is highly possible that Expo Go cannot even be utilized with modified native code/packages, which would render this entirely moot, as then using the sdkVersion
to limit updates would be completely acceptable.
Support using environment variables to customize the app's behaviour, as documented by Expo. Environment variables must be set in various locations depending on the workflow: development must run as part of expo
npm command, builds must be present in appropriate channels in eas.json
, and updates must be present as env variables. Variables can be accessed either in app.config.ts
or from the expo-constants
library (can use optional env.config.ts
file wrapper).
eas.json
env.config.ts
(with defaults)Currently when the app loads there is a brief flicker, likely caused by the JS navigator rendering/loading into the native app.
FAB button to add days is frequently hidden on iOS as it supports scrolling outside bounds, which enables scrolling "down" (hiding button) but apparently not scrolling "up" (to show button).
Show FAB button whenever the Home screen regains focus, whether sending to background or returning to the page from day's Details page.
It would be nice to have the option to automatically open the app to a specific day, rather than having to always select one. This would be entirely optional, and controlled via the edit (and quick select) menu.
Currently when days exactly (or near-exactly) match with a whole number, the value is a little skewed. For example, something ocurring 30 days ago (a month) will display as 1.1
months, as it is rounded from 1.06
or similar. While this might be due to issues with differences in month length, it ideally should be possible to get a bit closer by flooring truncations (instead of rounding), as it almost always seems to be a bit eager in reporting (never late so far).
Floor date count calculations instead of rounding
Add the ability to re-order days in the list by dragging.
Support multiple installations of an app for production, preview, and development builds. This requires a unique Application ID (Android) and Bundle Identifier (iOS), which can be accomplished with a dynamic app.config.ts
driven by variables provided in eas.json
. Expo already documents the process of creating variants.
app.config.ts
Warning If you are using any libraries that require you to register your application identifier with an external service to use the SDK, such as Google Maps, you will need to have a separate configuration for that API for the iOS Bundle Identifier and Android Package. You can also swap this configuration in using the same approach as above.
Currently selecting an icon is a tedious process, involving stepping through all icons sequentially. This could be improved drastically by adding the ability to choose icons via search mechanism.
Add the ability to check for native store updates and display an alert for the user.
The shared day message is quite lengthy with the addition of an HTTP redirect link (required for most message platforms, see #15). This could be improved by implementing a URL shortening system of temporarily storing shared URLs in a simple JSON storage mechanism, and providing a shortened URL that would be cleaned up after usage. Coupled with the website for redirects, this could provide a decent experience with a far shorter link.
This could potentially also replace direct mobile links???
A day has been shared with you from My Days! Follow this link to add 'Friend's Wedding' to the app!
exp://192.168.2.11:19000/--/day/shared?date=2023-04-13&icon=ring&id=2f306ada-0b6b-4b9c-ab4b-2d12a66c6f0b&repeats=false&title=Friend%2527s%2520Wedding&version=1
Alternative (web redirect)
https://my-days.kendallroth.ca/mobile/redirect?url=exp%3A%2F%2F192.168.2.11%3A19000%2F--%2Fday%2Fshared%3Fdate%3D2023-04-13%26icon%3Dring%26id%3D2f306ada-0b6b-4b9c-ab4b-2d12a66c6f0b%26repeats%3Dfalse%26title%3DFriend%252527s%252520Wedding%26version%3D1
Add additional icons for user activities
As mentioned in #6, most apps do not parse deep links in messages (Slack is an exception). This means that they cannot easily be opened from the message, and also do not work when copied into the browser. Instead, a solution would be to create a simple URL redirection tool that could be used to redirect specific https://
links (which are recognized) to the corresponding my-days://
URL. This has been tested by using temporary-url.com to generate a temporary redirect and validating that it opened the app when followed.
Find a way to allow copying device or app meta information on the Developer screen, that can then be sent along with crash or error reports.
Is your feature request related to a problem? Please describe.
Feature a primary day within the app (for easy recognition)
Describe the solution you'd like
Allow selecting a day for primary display, which would be displayed on the Home screen instead of the current date. This could be done from the quick access menu for list items on the home screen (since it is displayed here).
Depending on sizing (whatever looks best), the title or date could be featured/first. The icon may not make sense (due to display size), but could potentially also replace the top-left app icon?
Describe alternatives you've considered
This might not provide a lot of value as the "featured" item can simply be moved to the top of the list?
Add the ability to customize the displayed unit of time for days (instead of always using "days").
days
, weeks
, months
, and years
Improve Spanish localizations, which have currently been generated from a mixture of Google Translate as well as "correct" translations from previous "PayMe" app (only common actions, etc).
Is your feature request related to a problem? Please describe.
Long numbers with more than 3 digits display strangely on the home screen, especially on countups (since arrow is inside box).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.