This is the general "what?" of the feature. What is your feature? Why is it important? Keep it brief and to-the-point.
* The "why?" of this feature
## Post-Mortem (optional)
Initially TBD. This section is filled after development is complete.
* This should be updated as you implement the feature
* Add anything that you missed in your original architecture
* This should be updated as you implement the feature
* Add anything that was more challenging than expected, and may have contributed to misjudgement of time
* List the metrics changes that arose after the feature was shipped
* Don't forget to compare them with your expectations
* Jot down what you learned in architecting and building this feature
* How will you improve in future feature architectures and implementations?
* Every new metric that will be tracked
* Eg. `CONVERSATION_OPENED { isRead }`
* Every metric that be was modified
* Eg. `SIGNUP` segmented by `{ type: 'email'|'facebook' }`
* Events that you expect to see more of
* Events that you expect to see less of
* SIGNUP > PREMIUM_SUBSCRIBED
* Problem: Ask every question that you can think of regarding this feature and the challenges involved in implementing it
* Describe results you obtained through research and development
* What frameworks did you try? Why?
* What information did you gather? StackOverflow answers, videos, GitHub comments, etc.
* What assumptions did you make? How did they change? Why?
* What had to be reverted? Why?
* Solution: What was the final solution? Why did you pick it? List any sources.
* Problem: `react-native-audio-toolkit` does not support audio playback on a locked device on iOS
* https://github.com/futurice/react-native-audio-toolkit/blob/master/docs/API.md#player-methods
* `react-native-sound` does not support streaming
* https://github.com/zmxv/react-native-sound/issues/353
* Solution 1: `react-native-track-player`
* https://github.com/react-native-kit/react-native-track-player/wiki/Background-Mode
* Solution 2: `react-native-video`
* https://github.com/react-native-community/react-native-video#audio-mixing
* Conclusion: Use `react-native-track-player` since it's better suited for playing long audio files in the background.
* Switch to `react-native-video` if something is missing there.
* This is the "when?" and "where?" of this feature. Detailed user stories are examples of the flow.
* Go through all scenarios
[ ] This is the specific "how?" and "what?" of this feature
[ ] How will you achieve your goals?
[ ] Be as specific as possible
[ ] Solve all problems before they occur and discover overlappings
[ ] These checkboxes are then checked off as you implement the feature
[ ] The feature is complete once all checkboxes are checked, meaning nothing should be missing from this list
[ ] Once your architecture is merged, these can be moved to your favourite project management system
[ ] <ConversationsContainer>: A container that will act as the root for the new <Stack>, left of <NotificationsContainer>
[ ] bootyUtil.getSpanks: Get the number of spanks for the given performer
[ ] bootyUtil.checkBooty: Checks the provided booty
* How will the current architecture be modified to migrate to this new architecture?
* What files will be removed?
* What functions will be deprecated?
* What storage migrations will be performed
* Write as much code in here as you can
* Function signatures, constants, contract interfaces, etc
* Structure sections by filenames
* Be sure to alphabetize your api sections
### [filename/path/here.js]
* Fully document everything. This code is copy-pasteable for when
* you begin the implementation phase.