|
Novarum DX Ltd
|
Document ID: IFU044
|
Summary
This release delivers a significant set of enhancements to the RARE mobile applications for both iOS and Android, focused on improving reliability, usability, regulatory compliance, and post-market traceability. Key additions include event logging via Firebase Analytics and Crashlytics, a new Refresh Methods button for on-demand method synchronisation, a self-signup link on the login screen, and an embedded Help tab providing direct access to RARE documentation. The release also includes a substantial number of bug fixes addressing UI, data synchronisation, and navigation issues across both platforms.
New Features
Event Logging (Firebase Analytics & Crashlytics)
-
Traceability & Auditability: Both apps now log key user events and crash data to Firebase Analytics and Crashlytics, supporting post-market surveillance and regulatory compliance.
-
Privacy by Design: Logging is implemented to avoid the inclusion of personal or sensitive data, in line with GDPR and HIPAA requirements.
-
Performance Safeguards: Event logging is designed to avoid performance degradation during critical operations such as API calls and result processing.
Refresh Methods Button
-
On-Demand Method Sync: A new "Refresh Methods" button has been added to the Home page on both Android and iOS, allowing users to update their available test methods without logging out and back in.
-
Clear State Feedback: When pressed, the button clears the selected method, disables the method dropdown, and shows a loading indicator. On failure, a clear error message or icon is displayed and the dropdown is re-enabled.
-
Accessible Design: All button states are accessible and visually distinct.
Self-Signup Link
-
Account Creation Access: A link to the self-signup page has been added to the login screen, enabling new users to create accounts directly from the app.
https://rare.software/create-account
Help Tab
-
In-App Documentation: A new Help tab displays RARE documentation in an embedded web view, providing users with quick access to guidance and instructions without leaving the app.
-
Domain-Restricted Navigation: Navigation within the Help tab is restricted to the documentation domain to mitigate security risks.
https://docs.rare.software/rare-documentation
Improvements to Existing Features
Method Refresh Process
-
Active Methods Only: The method refresh process now ensures that only active methods available to the user's organisation are shown in the picker, reducing the risk of outdated or invalid test methods being used.
-
No Reinstall Required: Users no longer need to clear data or reinstall the app to receive updated method lists.
Background Upload Transparency
-
Failure Notifications: Users are now notified of upload failures, reducing the risk of silent data loss or delayed reporting.
-
Comprehensive Logging: All upload attempts and failures are logged for traceability.
-
Retry Mechanism: A retry mechanism has been added for failed uploads.
SDK Update
-
Latest Platform SDKs: Both apps have been updated to the latest SDK versions for Android and iOS. All new dependencies have been assessed for security and privacy risks, ensuring compliance with IEC 62304 and ISO 13485.
About Page
-
Redesigned About Page: The About page has been updated to align with current requirements, removing legacy device info, call, email, and website buttons, and presenting a cleaner, more accurate view of app information.
Bug Fixes
iOS
-
Help Page Blank on iOS 26+: Fixed an issue where the Help page WebView displayed blank content on iOS 26 and later.
-
Method Sync Stuck on Success: Resolved a bug where the method synchronisation indicator could become stuck in a success state when switching tabs rapidly.
-
Multi-Line Notes Not Supported: The "Return" key on iOS now correctly inserts a new line in the notes field instead of dismissing the keyboard.
-
Duplicate Results on Retake: Fixed a race condition triggered by geolocation processing that could produce duplicate results when the retake button was tapped rapidly.
-
Multi-Line Notes Truncated in Result Detail: Multi-line notes are now displayed in full on the Result Detail screen.
-
Phone Model and OS Version Missing: The About/version display now correctly shows the device model and OS version.
-
Deactivated Methods Not Removed: Deactivated methods are now correctly removed from the app's method picker when they are disabled on the portal.
-
Mocked Geolocation Data: Replaced mocked geolocation data with true device geolocation in production builds.
Android
-
UI Frozen When Saving Results: Fixed an issue where the UI spinner would freeze during result saving by moving work off the UI thread.
-
Selected Method Persisted Between Launches: Resolved a bug where the previously selected method was remembered across app launches, potentially causing issues if a different user signed in.
-
Camera Preview Overlay on Result Detail: Fixed a known Compose issue where the camera preview could display over the Result Detail page after navigation.
-
Failed Initial Sync Did Not Log User Out: The app now correctly logs the user out when the initial data synchronisation fails.
-
SyncAll Failure Due to Coroutine Cancellation: Fixed a crash where synchronisation failed because the coroutine scope was removed from the view hierarchy, causing sporadic crashes on scan and method errors on the dashboard.
-
Login Error Message Cut Off: Login error messages are now displayed in full and no longer truncated.
-
Back Navigation After Logout: Users can no longer navigate back to the dashboard after logging out.
-
Multi-Line Notes Truncated in Result Detail: Multi-line notes are now shown in full on the Result Detail screen.
-
Phone Model and OS Version Missing: The About/version display now correctly shows the device model and OS version.
-
Result Detail Button Layout Broken: Fixed a layout issue where vertical button alignment was breaking the Result Detail screen.
-
Cards Overlapping in Result Details: Resolved an issue where the Sample Info card overlapped the graph in non-data-collection mode.
-
Missing Methods Due to Pagination: Fixed a bug where methods were missing from the picker because the sync process saved results before pagination was complete.
-
Carousel Not Updating Image: The result image carousel now correctly refreshes when a new result is captured.
-
Pending Results Missing Amber Icon: Pending results are now correctly displayed with an amber background icon as required.
-
Profile Data Not Scrollable: The Profile screen is now scrollable, ensuring all data is accessible on smaller screens.
Both Platforms
-
Method Versions Not Unique in Picker: Fixed an issue where default methods showed duplicate version entries (e.g., multiple "V1") in the version picker.
-
Result Colour Scheme Mismatch: Updated the result colour scheme to align with requirements.
-
About Page Mismatch: The About page and its sub-requirements have been updated to match the current on-screen display.
-
About Page WebView URL Filtering: The About page WebView now restricts navigation to approved domains, preventing users from navigating outside the app's intended scope.
-
Requirement Alignment: Resolved discrepancies between the app implementation and requirements for the About page, including removal of legacy device info and contact buttons.
Known Issues & Limitations
-
Reader Out of Memory Exception (Android): Large result packages may occasionally cause an OutOfMemoryException, particularly on 10-strip tests. This can cause the app to crash during result processing.
-
Login Placeholder Text (Android): The login screen placeholder text displays "Email" instead of "Username" as specified in requirements. The submit button also cannot trigger an empty-field error as it is disabled when the field is empty.
-
Login Placeholder Text (iOS): The login screen placeholder text displays "Email" instead of "Username" as specified in requirements.
-
Peak Labelling (iOS): Peak labels on the graph display "Testline, T1" instead of the correct labelling format specified in requirements.