#Time Traveler: A fun & animated world time experience!

129 messages · Page 1 of 1 (latest)

somber vector
#

After I tried a Casio LF-20W I was so impressed with how well its world time implementation worked that I wanted to do something similar for Pebble! But also, I wanted something that would feel as "Pebble" as possible, with animated numbers, visualizations, and other excitement. Open to feature requests! (Though, at some point I should really finish updating Halcyon and TimeStyle 😅 )

Features:

  • Real-time daylight terminator calculation, showing you exactly which cities are experiencing daylight and which aren't!
  • Hide or show your favorite cities, selecting from 49 different cities commonly found on Casio™ digital world time watches!
  • Shows you whether it is today, tomorrow, or yesterday for a given time zone, allowing you to finally remember what day it is for your friends in Asia
  • Supports both 12 hour and 24 hour time, in case you like am and pm labels

Store Links:
https://apps.repebble.com/50caf7145cc2474da2aaf6cc
https://apps.rebble.io/en_US/application/69d3a680a6ffe6000a092d42

Pebble Appstore

Remember the old days, when your digital watch would come preloaded with a bunch of cities throughout the world, and a world map prominently displayed on the sc

Rebble Appstore

Remember the old days, when your digital watch would come preloaded with 49 cities of the world, and a world map prominently displayed on the screen? Wasn't it fun to just scroll through all those cities, wonder where all those abbreviations really were?

swift bloom
#

oh speaking of casio

#

i’m doing a similar thing on my watch face

#

how’d you handle time zones?

prisma moth
#

this app is gorgeous! love the style, animations, and colors

icy beacon
#

Me wish list:

If it cycled infinitely so when I hit Tokyo it goes back to San Francisco next, for example

Select and back skipped forward and back 30 minutes on the dot instead of being fixed to the current time so I could time travel (possibly swap forward and back with up and down so you can hold the buttons to time travel since you can’t long press back)

This app looks so great. I look at timezones enough things like this are in my top spot.

somber vector
# swift bloom how’d you handle time zones?

sadly the pebble's native timezone db doesn't have an API, so i just have a small minimal tz db on the pkjs side, which it then uses to calculate the offsets and sends them to the watch

#

that way it should always account for daylight time etc

somber vector
#

haha i definitely need to add looping, eric actually also requested that on reddit ericFlustered

somber vector
icy beacon
#

I would use it for planning meetings or just checking what time it’ll be for someone I know during a different time (if I want to text them later or schedule a text). I talk with people for work and personally in IST, JST, and NPT often and check the times because I can’t keep them straight

#

Because of the other time zones I need to keep track of I forget how far away PST or PDT is from me too and if they actually observe DST or not everywhere that I’m interested in

somber vector
#

haha same, i'm constantly trying to convert between JST and US Pacific time!

#

oh maybe it would be good to flag when DST was active for a time zone 🤔

icy beacon
#

If I just needed one I could probably handle it but IST is a half hour offset and NPT is 45 and I only remember this after I look at my watch 🙁

somber vector
#

that 45 minute offset is ridiculous haha

icy beacon
icy beacon
#

As a tiny note. You use Traveler sometimes (app name, repo name) and Traveller other times (App Store banner, repo README)

somber vector
#

hah yeah, i got most of the instances of Traveller out but there's a few stragglers

#

the repo is already updated locally, so that one will change once i push the latest changes

#

i should go update the rebble store (core store already updated)

somber vector
#

Alright, just got an update out that adds custom cities and wraparound -- still thinking about how "time travel" scrubbing could work (maybe now that it has wraparound, i can replace the hold up/down actions with time scrubbing 🤔 )

somber vector
#

Another new update! When you're on the current location, it shows the date instead of "TODAY +0HRS" which should be a slightly more useful bit of info

icy beacon
#

What if I could get rid of current location 😬

somber vector
#

oh i guess it could do that, how would you want it to pick what was shown on startup?

#

first in the list? manually select a home city? automatically select the pinned city closest to your location?

icy beacon
#

Selecting a home city would be nice

somber vector
#

ah i think that could be doable

icy beacon
#

It'd basically be an opt-out of location access flow

somber vector
#

i didn't test it extensively, but in theory it should work without location now, it just will pretend your current location is whatever city is closest to you

#

and then it just shows whatever your watch reports the current time as

#

but always room for improvement

icy beacon
#

Oh it would pick the closest city based on my watch's offset?

somber vector
#

yeah, though that's not foolproof, especially in areas of the world where there are lots of different timezone cities close to each other

#

so your main case is just that you don't want to provide your current location right?

icy beacon
#

No my main case is that two of my locations I have selected are my "current location" most of the year so I end up with two overlapping locations

#

When I'm in A I liked to know the time in B and vice versa but I'll always have doubles because of that

somber vector
#

i wonder if it could be worthwhile to try and detect if one of your pinned cities was where you were, and if it was close enough, just use that as current location

#

like if you were within 100km of new york, and you have new york in your pinned cities, it would just assume you were in new york instead of creating the redundant current location entry 🤔

icy beacon
#

I was going to suggest that first but it sounded harder

#

Because should it say my city's name or "current location"

somber vector
#

that would make sense i think 🤔

icy beacon
#

well other than what you said where there are a lot of cities nearby right

somber vector
#

true, though maybe if the threshold is low enough (50km?) it wouldn't matter

#

like if your location is with 50km of New York it wouldn't be weird to see New York on your location screen i guess

#

and that would cover the "you are at home" case, hopefully

#

the biggest hole is still users with location disabled

#

maybe i could just search the city list for any ones that matched the pebble's reported GMT offset, and just select that

#

i definitely don't want to use a real geolocation service since that would be a privacy nightmare hah

#

i don't want it sending your location to some random web service (though i guess all the weather faces do that, now that i think about it 🫠 )

icy beacon
#

Also I dunno what you’d do about this but with 4 digits and AM the M overflows the screen

#

It looks like maybe the digits layer has a white background and is overlapping the left of the A as well unless it’s just scaled weird where the left column is thinner than the right

somber vector
#

hmm that was actually deliberate since i couldn't get AM to fit on the smaller screen haha

#

i actually had to deliberately extend the draw boundaries of that layer slightly offscreen to avoid the text truncating to "..."

#

but you're right it looks a bit odd

somber vector
#

in theory i could reduce the padding on basalt more 🤔

somber vector
#

alternative 2: i could just drop the leco AM/PM and switch to gothic font for smaller screens 🤔

#

i might just do that, fits better

icy beacon
#

I think that works well yeah. A lot of apps do that and it looks good

somber vector
#

nice, yeah, i think i might just toss that into the next version then, along with the current location fusion change (right now i have it set to 25km and it seems fine?)

meager herald
#

Could you center the time and move the AM / PM display to the second line?

#

Or display AM and PM vertically

#

Neither are great for readability 🫤

somber vector
#

hmm...there's probably room for one size up gothic, though i'm personally partial to the smaller one since it matches the existing text 🤔

#

could potentially add a "make all the fonts one size bigger" option at some point 🤔

somber vector
#

you know now that i try it on my watch, the larger gothic is the way to go

#

hopefully that will address both issues

#

alright, released! v1.3 adds the automatic current city detection feature and shouldn't go off the screen anymore when in 12 hour mode

icy beacon
#

Hooray update is great!

somber vector
#

excellent!

#

i wasn't sure if 25km was a good radius, lmk if you think it should be bigger/smaller

icy beacon
#

I wonder what range is being applied to custom cities? I just drove 15 miles from a city that is already outside of city center and it’s still mapping to it

#

Which is fine by me. I still consider this within range of my custom city.

somber vector
#

15mi is within 25km, so the behavior you're observing matches the implementation (in theory if you drove 20mi it would stop mapping to it)

icy beacon
#

I just don’t know what it considers the city. Is it to city center or a range?

#

It’s just a single lat long point?

somber vector
#

exactly

#

for custom cities, that's whatever openstreetmap's geocoder outputs for the search string

icy beacon
#

Huh. I was certainly 25 miles away from my custom city today 👀 maybe it didn’t update in real time to my new location yet

somber vector
#

might also be buggy! 😅

icy beacon
#

I liked how it was working 😬 I wonder if the geo positions for these cities are just weird as far as accuracy and these two cities are within 15 miles somehow

icy beacon
#

Title bar time hardcoded to 24h time instead of following the watch format. The humanity

somber vector
#

oh i should definitely fix that! should be pretty simple

swift bloom
#

huh. i'm looking at your code for time zones and huge respect

#

this feels like a nightmare

#

i mean i'm gonna have to support all the casio cities too because my watch face is explicitly modeled after a casio but still ;-;

somber vector
#

so in the first version, i hardcoded all the timezones into the C, and then you could turn them on or off

#

but then i realized that prevented the user from adding custom cities, which people might want to do, so i redid it to just store 50 dynamic slots

#

admittedly mine is kind of bespoke; another (possibly better) option could be just straight up using the official timezone database: https://en.wikipedia.org/wiki/Tz_database

The tz database is a collaborative compilation of information about the world's time zones and rules for observing daylight saving time, primarily intended for use with computer programs and operating systems. Paul Eggert has been its editor and maintainer since 2005, with the organizational backing of ICANN. The tz database is also known as tzd...

#

(i think someone wrote js bindings for it?)

#

what i REALLY want is just for pebbleOS to provide some APIs to do timezones, because the pebble actually ships with that entire tz database in the firmware

#

i might do a PR for that someday

#

but if you want to do timezones right, you end up needing to use some variant of that database, since it stores all the crazy offsets, daylight savings times, etc

#

anyway! @icy beacon the status bar should respect AM/PM now!

swift bloom
#

fair

#

i just have assets for 20 time zones based on what i saw on wikipedia

#

so i'll have to figure out how to map it to certain ranges

#

i'm hoping i can get away with 20 images and then load in the corresponding resource when you change the settings

somber vector
# swift bloom

oh nice, that should work, i think! looking forward to seeing what you come up with 👀

somber vector
#

i believe i've figured out the cut-off A reason: this is a regression in OSS pebbleos that affects all new platforms but not legacy ones:

#

(from left to right, diorite, chalk, flint, emery)

icy beacon
somber vector
#

oh huh i didn't even notice that but you're right, very slightly different

icy beacon
#

Flint and Emery are the same. The e is the most telling

somber vector
#

here is flint and diorite, an easy comparison

icy beacon
#

The A on LECO is different too

#

It could just be the emulators I guess

#

The cut off is certainly on physical hardware though

somber vector
#

i'm betting the fonts were somehow regenerated for the OSS one

#

probably will create a github issue for it

icy beacon
#

What a neat problem that will certainly have ramifications when fixed

somber vector
#

indeed! i found this when trying to fix the bug you reported haha

#

the A and M do look weird now that i see it

icy beacon
#

It all looks redrawn somehow

#

The cut offs on the characters seem to just be that the A, M, and P (?) are wider but the character width wasn’t adjusted

#

So maybe it won’t cause a problem when fixed as long as it’s fixed back to being less wide

somber vector
#

i figure the problem could be width-related, or it could also be some kind of rounding thing where the pixel conversion just rounded to the wrong pixel

#

i think they have a script in there that rebuilds the pixel fonts from the ttf source

somber vector
#

i think it should be relatively easy fix, so i'll probably put together a PebbleOS PR to fix it

swift bloom
#

wait how does your pkjs work?

#

is there a repo for the settings?

#

i figured out where it's located

somber vector
#

yeah settings is hosted on github pages