I'm very new to Monkey C programming and wanted to show off my latest app, PaceMate.
https://apps.garmin.com/apps/10f0ba71-cc76-4cfe-88b3-3f39825ff89f
My friends and I are used to speaking in km / h, but when we got into running it slowly changed into using pace (min / km) as a metric instead. We struggled to convert pace to km and had to take our phone out to find a website to convert it. Instead, I decided to create a Garmin app for it.
Features:
- Input pace, speed or goal time for a specific distance. The app will show the calculated values for the rest of the fields, based on the input.
- Define up to 4 custom distance fields in Connect IQ settings (apart from the default 5k, 10k, half marathon and marathon distances), and display these custom distance fields instead of the default distances.
My challenges in building this app:
- Finding a way to handle input (realising that Garmin API does not have a uniform way to capture pace, speed or time input).
I ended up creating my own input views / delegate pairs to handle inputs for three different data types (pace, speed and time). They can now handle both touch (tap and flick) and button (press and hold) input. - Supporting non-touch enabled devices.
Still need to add a way for non-touch enabled devices to select fields and push a menu to allow users to select a different distance to display in that field. - Clash with Hold DOWN hot key.
In my app, when you want to use buttons for example to input pace, I made it so that if you HOLD the Up button, instead of just going up by 1 sec, the pace will go up by 5 (and increment significantly upon holding longer). The Down button works in the same way. However, if you have a hot key set for Hold DOWN, the hot key will take over and the onKeyReleased event will not be fired. Therefore, the input value will keep going down, until you press Down again and release it.
I still need to add support for the Imperial system, but I wanted to publish the app already.
What do you think?
Also if someone has a suggested solution for the "Clash with Hold DOWN hot key" issue, please let me know.