StrideSide is a real-time running assistant coach powered by Gemini and ElevenLabs Text-to-speech Voice AI. It provides instant personalized coaching, performance feedback, and goal-based motivation during your runs to help you achieve your fitness goals. It is a coach right beside you as you make strides towards a healthier lifestyle 😄 🏃
There are four main components in this projects that communicate with each other:
StrideSide Watch <----> StrideSide Phone <----> Gemini API
|
ElevenLabs APIWe did not have time to provide a simple one-click way to allow anyone to reproduce the simulation in Xcode quickly. However, based on our setup, these manual steps should be enough to reproduce the StrideSide iOS and watchOS apps running locally in Xcode, with both targets set up properly.:
git clonethe project.- Create a project workspace in Xcode named
XCode-StrideSide. - Create a target for the
StrideSidePhone, placing the git clonedStrideSidePhonedirectory's contents under it.- Ensure that:
- The
Secrets.xcconfigfile is created by going toFile > New > File... > Configuration Settings Fileto hold API keys and link it to the target. Add the following keys to theSecrets.xcconfigfile:ELEVENLABS_API_KEY = <Your ElevenLabs API Key>ELEVENLABS_VOICE_ID = <Your ElevenLabs Voice ID>GEMINI_API_KEY = <Your Gemini API Key>
- The
Secrets.xcconfigfile is linked to theStrideSidePhonetarget. - The
ELEVENLABS_API_KEYandELEVENLABS_VOICE_IDkeys are added to theSecrets.xcconfigfile with your ElevenLabs API key and desired voice ID. - The info.plist adds the keys to read from the
Secrets.xcconfigfile:ELEVENLABS_API_KEYwith value$(ELEVENLABS_API_KEY)ELEVENLABS_VOICE_IDwith value$(ELEVENLABS_VOICE_ID)GEMINI_API_KEYwith value$(GEMINI_API_KEY)
- The
- Ensure that:
- Create another target for the
StrideSide Watch App, placing the git clonedStrideSideWatchdirectory's contents under it.- Ensure that:
- The Watch App target is created to pair with the already existing iOS target.
- The Watch App target has
HealthKitandBackground Modescapabilities added. - The Info.plist of the Watch App target has the necessary privacy usage description keys added.
Privacy - Health Share Usage DescriptionPrivacy - Health Update Usage Description
WatchConnectivity.frameworkis added to both targets.
- Ensure that:
- Run the StrideSide iOS target on the iOS Simulator, and the StrideSide Watch App target on the watchOS Simulator.
Some common issues include:
- Issues with Target Membership in Xcode.
- Issues with missing HealthKit permissions in Info.plist.
- API Key misconfigurations.
- API Key exceeding usage limits.