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

ClockCal: Configurable launch gestures #1611

Merged
merged 5 commits into from Mar 24, 2022
Merged

Conversation

foostuff
Copy link
Contributor

also removed a bug with the small calendar not coloring the current day.

@gfwilliams
Copy link
Member

Cool, thanks! Have you seen pattern launcher? It seems like this adds similar swipe functionality but to any clock app...

@gfwilliams gfwilliams merged commit e47884b into espruino:master Mar 24, 2022
@foostuff
Copy link
Contributor Author

Cool, thanks! Have you seen pattern launcher? It seems like this adds similar swipe functionality but to any clock app...

I appreciate the feedback. Pattern Launcher sure is great for launching apps. :) But there are two main things I wanted to be "extra quick" without the loading times of switching apps: Glance at the calendar and (soon) a quick way to control music. Thats why I opted for small modules that can't be started with the pattern launcher. (As far as I know.)
If the loading times could drastically improve, I'd put them in extra apps. But even the tiniest app takes a good second of loading time. Is there anything I could do to "instantly" load an app? Maybe even something stupid like putting everything in the boot code?

@gfwilliams
Copy link
Member

Ahh, sorry, I hadn't spotted from this PR that this was loading from modules.

Is there anything I could do to "instantly" load an app?

Well, compacting storage will help if you seem to have abnormally bad load times, but otherwise I think mainly there are some things internally in Espruino that could be sped up a lot. For instance we can use the internal flash for storing JS, which should give a pretty big speed boost. Even the connection speed to the external flash can be boosted a lot.

Unfortunately there are a lot of conflicting things taking my time right now, and the loading speed is quite far down the list :(

To load from the clock quickly yourself, it may be possible to eval(storage.readFile(...)) but you need to make sure you've torn down the clock stuff, and even then you have issues like what happens if the app doesn't want widgets but the clock has loaded them

@foostuff
Copy link
Contributor Author

Ahh, sorry, I hadn't spotted from this PR that this was loading from modules.

I don't know if my use of "modules" is the right term :) [it's a js function to draw stuff.]

Well, compacting storage will help if you seem to have abnormally bad load times

Unfortunately a 10-line-music-app seems to take "the same" time as the larger message-app. I guess unloading the watch is also part of the loading time.

To load from the clock quickly yourself, it may be possible to eval(storage.readFile(...)) ...

Thats a great idea. Not for this situation, but I'm sure it could come in handy for very special use cases.

Thanks for taking the time to reply/react to pull requests and forum posts! This watch, the github-based appstore, the overwhelmingly good documentation, the constructive community and your input ... what a game changer :)

@gfwilliams
Copy link
Member

Thanks! I'm glad you're enjoying it :)

I guess unloading the watch is also part of the loading time.

A little, but not much I think. I think the vast majority of the time is split between loading the boot code, app, and widgets...

If you run t=getTime();Bangle.loadWidgets();print(getTime()-t); you can see how long something (like loading widgets) takes to run. In my case it's 0.25s for widgets alone. I just tried and having the internal flash enabled drops that to 0.06s, so I think it's definitely something I'll look at enabling for later builds.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants