v0.9.1
Pre-release
Pre-release
v0.9.1 contains some UI changes, an overhaul of the Bluetooth implementation, Debug Mode, and some bug fixes.
UI Changes:
- Moved giant disconnect/connect button from the Home screen to side menu. Between InfiniTime 1.6.0's Bluetooth fixes and autoconnect enabled, there are very few reasons to manually disconnect or connect anymore. Let me know if this is a problem or pain point and I can make adjustments.
- Widened side menu to accommodate larger fonts for accessibility.
- Added device renaming button to home page.
- Removed 'status' area from side menu. This section has been redundant for a while, as the whole UI updates when a device is connected, and the whole app doesn't do anything if Bluetooth is turned off.
- Changed giant 'Select Firmware' button on DFU screen to a button where the selected firmware file goes.
- Added a small pop-up text bubble if autoconnect is enabled to show when the device is scanning and when it connects.
Debug Mode:
- I have been tinkering with a debug mode to see app logs for a while, but decided to leave it out a month or so ago. It ended up being instrumental in solving a tricky bug that occurred when setting the time on the PineTime (thanks again for helping me troubleshoot that @bhibb!). With that in mind, I decided to add it to the app for everyone. To access the logs, enable Debug Mode in the Settings view, and you'll see a link appear that will take you to the log pages.
- The logs are not persistent, so if you experience a crash, please report it through TestFlight.
- Bear in mind that the log entries you'll see under the 'App' log section are all for bugs I've found or error messages generated by Swift APIs, so it's not a complete list of every possible scenario.
Behind the Scenes:
- Bluetooth refactor! Bluetooth was the first thing I implemented in this app, and the first time I had worked with Swift. Needless to say it was a bit of a rat's nest. It's been tidied up and optimized now, and a lot of mistakes and/or oversights have been corrected.
Bug Fixes:
- Fixed notifications somehow still trying to send with a nil value. This should fix a crash that someone reported on TestFlight.
- Established some functions to handle the logic of how buttons should appear and when they're disabled. This fixes a few edge cases where a button is disabled that shouldn't be disabled, for example.
- Fixed GitHub API request function. This was calling way too often, to the point that some users might have hit the generous 60-request-per-hour limit. Now the app pulls InfiniTime releases when it starts up, and then disables checks for the next 24 hours. I did not make the timer persistent, so the only way to hit that limit now is to open and close the app 60 times in an hour.