-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature/navigation architecture #35
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#31 Should be good for merging once this is done |
nicolas-f
added a commit
that referenced
this pull request
Aug 19, 2024
…io-source # Description Adds `AudioSource` implementation for iOS⚠️ **This PR is built on top of #35! It should only be merged afterwards.**⚠️ ## Changes - Implements the `AudioSource` interface for iOS using `AVAudioSession` and `AVAudioEngine` - See Apple documentation for more details: [AVAudioSession](https://developer.apple.com/documentation/avfaudio/avaudiosession), [AVAudioEngine](https://developer.apple.com/documentation/avfaudio/avaudioengine) ## Linked issues #34 ## Remaining TODOs - The output level seems a little high compared to the Android equivalent (same for the web version btw). I think the gain value should be platform specific (currently `ANDROID_GAIN` is used by default everywhere) - Currently the default microphone is picked up by default (same of other platforms atm), but in fine it should be possible for the user to switch microphones ## Checklist - [x] Code compiles correctly on all platforms - [x] All pre-existing tests are passing - [x] If needed, new tests have been added - [x] Extended the README / documentation if necessary - [x] Added code has been documented
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Refactoring the current structure of the app to move towards MVVM design pattern.
Changes
features
package that should contain one sub package per "feature" of the app (generally a screen but can be an ensemble of screen in the case of an onboarding flow for instance)home
,settings
,login
, etc) with UI components tied to this feature, and screen classesnavigation
package that should contain navigation related code such as routes and navigation logiccomponents
package for shared and reused UI components (there isn't any for now tho)ViewModel
class that takes care of providing the data to the presentation layer. The view itself should never access the data layer, and the view model should never directly update the presentation layer, only provide data updates that the view will subscribe to. View models are then injected using Koin to resolve needed dependencies. Eachfeature
package contains a koin module that will be registerd inKoin.kt
MeasurementsScreen
for instance).GlobalScope
. This seems to fix the crash in the web implementation.Linked issues
Remaining TODOs
Regarding #26, the current implementation seems stable but we will still need to add platform specific implementations to keep the measurement service running in the background (
Foreground Service
for Android and enabling Background audio capability on iOS)Checklist