Releases: InfiniTimeOrg/InfiniLink
v1.1-beta
This beta is the first release since 2022! InfiniLink has been completely refreshed, and now includes several new features that users have been waiting for a long time!
First, the user interface has been completely redesigned.
Second, several new APIs have been implemented, like InfiniTime 14's new Simple Weather Service and the BLE FS API. Weather is fetched using the National Weather Service API for users inside the United States, and for users outside of the United States, it is fetched using the WeatherAPI API.
Because of the BLE FS implementation, the ability to fetch settings from the watch and sync them with the app, uploading external resource packages, and a simple file explorer have all been implemented.
Thank you to everyone involved!
v0.9.4
This is a smaller release, mostly to push out some bug fixes. People were experiencing crashes related to the music interface, and that should be fixed now. Also, the steps settings page has been trimmed down to fit smaller displays. Please let me know if you're still having trouble interacting with those pages! I don't have a smaller screen to test on so I need feedback to make improvements there.
Please note that the secure BLE bonding implemented in v1.8.0 of InfiniTime is not currently compatible with the way that iOS initiates bonding. I am working with the wonderful devs at InfiniTime to sort this out, but in the meantime, your BLE connection to your watch will still be unencrypted.
Thanks to @WowieMan for help with the music app crashes, and thanks to @friendlytsy for creating our first localization! Their hard work has created a foundation for future localizations as well, so if you're willing and able to translate InfiniLink to your language, please let me know and I can get you set up for that!
V0.9.3
v0.9.2
This update includes a revamped chart filtering screen. Click the gear button to set the date range you’d like!
This version also marks the change of the app’s name to InfiniLink! That accounts for most of the delay in releasing this version. There was lots of red tape to wade through to satisfy the requirements that Apple suddenly imposed.
v0.9.1
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.
v0.9.0
Hey everyone! Lots of big changes in this version, hope you all enjoy. As always, please let me know what you think by leaving GitHub issues, email, Mastodon, Matrix, and of course through TestFlight. It takes a day or so to be validated by Apple before it's pushed out to you, but you should be seeing the update soon.
What's new in v0.9.0:
- Tons of UI changes: New 'Home' view features some stats about your watch and the connect/disconnect button. DFU page was cleaned up a little. Color scheme changes were made to improve clarity for light mode users.
- Chart Persistence: Infini-iOS is now capable of saving chart data as it is generated, and chart data can now be filtered by time. I've set the watch to prune data older than a week for now, but am open to suggestions about this time period
- Device Naming: Devices can now be named in Infini-iOS! While this name has no effect on the watch, setting a name for the device in Infini-iOS associates the UUID of the watch with the new name. Any time this watch would appear on screen (Home screen, Connect screen, etc), your chosen name will display instead of 'InfiniTime'. Hopefully this will be helpful for those of you that have more than one watch!
- Arbitrary Notifications: Now you can send arbitrary notifications to your PineTime from the Settings Menu. Have a short list of stuff to get at the store? Send the list as a notification and it will be on your wrist as you shop!
- Updated DFU process: DFU downloads are now available! Now, when you tap the 'Select Firmware File' button, you're given the option to select a local file or download a firmware file. Tapping the download button uses the GitHub API to bring up a list of firmware files available on GitHub. Selecting a file from that list will download it and prepare it for flashing. After flashing, the file is deleted. Also, when a watch is connected, Infini-iOS will compare the firmware version number on the watch to this list, and notify you of any updates on the Home screen.
v0.8.5
Mostly bug fixes and UI updates based on TestFlight and GitHub feedback (thank you!!!)
- Added a line-only graph for battery and heart rate, and put toggles in the Settings tab to let users select which graph style they prefer
- Graph displayed on Status page at open is now whatever the last viewed graph was
- Added some more information to the DFU page. Now the page gives you a big green box that tells you the update was successful, and also returns the page to its default state on completion.
- Added a cutesy little onboarding screen and added a little bit of buffer to allow the Bluetooth permissions to resolve before starting the first scan ever. This should help with some of the first connection issues that were reported.
- Fixed a crash that occurred when trying to send non-ASCII characters to the PineTime for notifications, song titles, and artist names. If you notice an artist name or track title that is not displaying, it's because InfiniTime does not support a character in the song's title.
- Added some error handling to the function that writes the date and time to the watch. I'm not sure how it happened, but a user experienced a crash because this function failed somehow. Now it should show an alert that this function failed and ask you to disconnect/reconnect to the PineTime.
v0.8.0
Just released on TestFlight! Come check it out and let me know what you think!