-
Notifications
You must be signed in to change notification settings - Fork 2
FCE-2534: Create mobile fishjam chat example app #443
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
base: mobile-sdk-2-0
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This pull request introduces a new mobile example application for Fishjam video chat built with React Native and Expo. The app demonstrates how to use the Fishjam mobile client SDK for both video room conferencing and livestreaming capabilities.
Key changes include:
- Complete mobile chat application with video room and livestreaming functionality
- React Native components for UI including buttons, text inputs, and video grid layouts
- Integration with Fishjam mobile client SDK hooks for camera, microphone, and connection management
- Configuration for both iOS and Android platforms with proper permissions
Reviewed changes
Copilot reviewed 31 out of 37 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| examples/mobile-client/mobile-fishjam-chat/package.json | Defines project dependencies including Expo, React Native, and Fishjam mobile client |
| examples/mobile-client/mobile-fishjam-chat/app.json | Expo configuration with platform-specific settings and permissions |
| examples/mobile-client/mobile-fishjam-chat/tsconfig.json | TypeScript configuration extending Expo base config |
| examples/mobile-client/mobile-fishjam-chat/app/_layout.tsx | Root layout with FishjamProvider and navigation stack setup |
| examples/mobile-client/mobile-fishjam-chat/app/(tabs)/_layout.tsx | Tab navigation layout for Room and Livestream sections |
| examples/mobile-client/mobile-fishjam-chat/app/(tabs)/room.tsx | Video room connection screen with input forms |
| examples/mobile-client/mobile-fishjam-chat/app/(tabs)/livestream.tsx | Livestream connection screen with viewer/streamer options |
| examples/mobile-client/mobile-fishjam-chat/app/room/preview.tsx | Camera/microphone preview before joining room |
| examples/mobile-client/mobile-fishjam-chat/app/room/[roomName].tsx | Active video room screen with participant grid |
| examples/mobile-client/mobile-fishjam-chat/app/livestream/viewer.tsx | Livestream viewer implementation |
| examples/mobile-client/mobile-fishjam-chat/app/livestream/streamer.tsx | Livestream streamer implementation |
| examples/mobile-client/mobile-fishjam-chat/app/livestream/screen-sharing.tsx | Placeholder for screen sharing functionality |
| examples/mobile-client/mobile-fishjam-chat/components/* | Reusable UI components (Button, TextInput, VideosGrid, etc.) |
| examples/mobile-client/mobile-fishjam-chat/utils/Colors.ts | Brand color definitions |
| examples/mobile-client/mobile-fishjam-chat/README.md | Project setup and development documentation |
| examples/mobile-client/mobile-fishjam-chat/eslint.config.js | ESLint configuration |
| examples/mobile-client/mobile-fishjam-chat/babel.config.js | Babel configuration with reanimated plugin |
| examples/mobile-client/mobile-fishjam-chat/assets/images/* | Application icons and splash screens |
| yarn.lock | Updated dependencies for the new example app |
| examples/react-client/livestreaming/package.json | Added Radix UI dependencies for select and icons |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
examples/mobile-client/mobile-fishjam-chat/app/livestream/streamer.tsx
Outdated
Show resolved
Hide resolved
examples/mobile-client/mobile-fishjam-chat/app/livestream/streamer.tsx
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Could you please remove the old fishjam-chat folder and rename this folder to be named fishjam-chat instead of mobile-fishjam-chat? The old one is no longer relevant.
- When I run the app I ge the following error:
ERROR [runtime not ready]: Error: Cannot find native module 'ExpoLinking'
Code: construct.js
2 | var setPrototypeOf = require("./setPrototypeOf.js");
3 | function _construct(t, e, r) {
> 4 | if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);
| ^
5 | var o = [null];
6 | o.push.apply(o, e);
7 | var p = new (t.bind.apply(t, o))();
Call Stack
- When I try to use the staging cloud URL I get the following error:
Failed to join room: [SyntaxError: JSON Parse error: Unexpected character: W] SyntaxError: JSON Parse error: Unexpected character: W
- When I try to enable/disable camera while in the room already, nothing happens. Is this some error of react-client?
- ScreenShare button does nothing.
- On the LiveStream screen some loader would be nice, while starting the stream.
Otherwise the example looks and works really great. Much better than the previous version! Good work 🎉
examples/mobile-client/mobile-fishjam-chat/.vscode/settings.json
Outdated
Show resolved
Hide resolved
examples/mobile-client/mobile-fishjam-chat/.vscode/extensions.json
Outdated
Show resolved
Hide resolved
7280adc to
515d3bd
Compare
| "dependencies": { | ||
| "@fishjam-cloud/react-client": "workspace:*", | ||
| "@hookform/resolvers": "^5.1.1", | ||
| "@radix-ui/react-icons": "^1.3.2", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
question: What happened here?
Description
Create mobile fishjam chat example app
Motivation and Context
This app shows how to use fishjam room and livestreaming functionalities.
Documentation impact
Types of changes
not work as expected)