The Finmars Mobile App is the mobile client for the Finmars financial management platform. It is built with Ionic + Capacitor, allowing the same application to run as a web app, Android app, and iOS app.
The mobile application connects to the Finmars backend and provides access to dashboards, reports, and portfolio data from a mobile device.
Before running the project locally you need:
- Node.js (recommended ≥ 20)
- npm
- Ionic CLI
- Android Studio (for Android builds)
- Xcode (for iOS builds, macOS only)
Install Ionic CLI globally:
npm install -g @ionic/cliClone the repository and install dependencies.
git clone https://github.com/finmars-platform/finmars-mobile.git
cd finmars-mobile
npm installInstall required plugin:
npm install ionic-plugin-deeplinksSync Capacitor platforms:
ionic cap syncBuild the web version and start the development server.
npm run build
VITE_BASE_URL='/m/' VITE_APP_PLATFORM='web' ionic serveThe application will start in your browser.
- Android Studio installed
- Android SDK configured
- An emulator or a physical Android device
VITE_APP_PLATFORM='android' npm run build
ionic cap sync android
npx cap run androidThis builds the application and runs it on the connected Android device or emulator.
To open the project manually in Android Studio:
ionic cap open androidBefore publishing to Google Play, update the version number in:
android/app/build.gradle
Increase:
versionCode
If you built a release APK in Android Studio:
adb install app-release.apkCheck connected devices:
adb devicesDisconnect devices:
adb disconnectTo generate a signed build:
- Open the project in Android Studio
- Navigate to Build → Generate Signed Bundle / APK
- Select APK
- Provide your keystore information
- The release build will appear in:
android/app/release
Upload the resulting app-release.apk to Google Play Console.
Documentation: https://capacitorjs.com/docs/ios
npm install @capacitor/iosEnsure Xcode is selected:
sudo xcode-select --switch /Applications/Xcode.appBuild the project:
VITE_BASE_URL='/m/' VITE_APP_PLATFORM='ios' npm run build
npx cap add ios
npx cap open iosTo sync project changes:
ionic cap sync iosRun the app using Xcode simulator or connected iPhone.
The app supports deep linking using:
ionic-plugin-deeplinks
Example installation:
cordova plugin add ionic-plugin-deeplinks \
--variable URL_SCHEME=finmars \
--variable DEEPLINK_SCHEME=https \
--variable DEEPLINK_HOST=finmars.com \
--variable ANDROID_PATH_PREFIX=/Android configuration may require updating:
android/app/src/main/AndroidManifest.xml
Helpful resources:
- https://devdactic.com/setup-deep-links-capacitor
- https://developers.google.com/digital-asset-links/tools/generator
Example Digital Asset Links configuration:
https://finmars.com/.well-known/assetlinks.json
Example content:
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.finmars.mobile",
"sha256_cert_fingerprints": [
"1A:6C:25:F9:8E:5D:4F:FF:54:82:07:18:B9:CB:95:28:14:CD:3F:92:FF:80:35:EC:B1:48:AE:EE:8E:FE:72:30"
]
}
}]Environment variables are defined using .env files.
Example .env.example:
VITE_BASE_URL=/m/
VITE_APP_PLATFORM=web
VITE_KEYCLOAK_URL=
Do not commit real .env files to the repository.
If Android SDK is not detected, add it to your shell profile.
Edit:
~/.bash_profile
Add:
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/platform-toolsReload shell:
source ~/.bash_profilePlease refer to the LICENSE file for license details.
For bug reports or feature requests please open an issue in this repository. For Finmars platform documentation visit:
Important
Do not delete, keycloak-js depends on them
"cordova-plugin-inappbrowser": "6.0.0",
"ionic-plugin-deeplinks": "1.0.24",
"@ionic-native/deeplinks": "5.36.0"