A comprehensive iOS portfolio tracking application built with React Native and Expo, designed to help you monitor and analyze your investment portfolio with powerful analytics and insights.
- Real-time Holdings Tracking: Monitor your entire portfolio with live price updates
- Privacy Mode: Toggle sensitive financial information visibility with a single tap
- Multi-metric Dashboard: Track total value, 1-day returns, total returns, realized/unrealized returns, invested amount, and XIRR
- Custom Branding: Support for custom header logo and external links
- Multi-dimensional Analysis: View portfolio breakdown by:
- Sector
- Company
- Asset Type (Large Cap, Mid Cap, Small Cap, ETF)
- Broker
- Interactive Pie Charts: Visual representation of portfolio allocation
- Flexible Sorting: Sort holdings by current value, returns, or contribution
- Company Deep Dives: Detailed stock-level analysis with company logos
- Top Movers: Track your best and worst performing holdings
- Win/Loss Analysis: Visualize winning vs losing positions
- Activity Calendar: Heat map of your trading activity
- Yearly Analysis: Year-over-year performance with asset distribution breakdown
- Monthly Analysis: Month-by-month investment tracking and growth metrics
- Portfolio Forecasting: Project future portfolio value based on historical performance
- Easy Transaction Entry: Add buy/sell transactions with a clean, intuitive interface
- Multi-broker Support: Track investments across different brokers (Upstox, Groww, IND Money, etc.)
- CSV Import: Bulk import transactions from Excel/CSV files
- Transaction History: Complete audit trail of all portfolio activities
- Shareable Performance Cards: Generate beautiful cards showcasing your portfolio performance
- Export Functionality: Share portfolio snapshots with others
- Custom Currency Display: Toggle between showing/hiding currency symbols
- Framework: React Native with Expo (~54.0.32)
- Navigation: Expo Router (~6.0.22)
- State Management: Zustand (~5.0.10)
- Database: Expo SQLite (~16.0.10)
- Charts: React Native Gifted Charts (~1.4.70)
- Icons: Lucide React Native (~0.563.0)
- UI Components:
- React Native Gesture Handler (~2.28.0)
- React Native Reanimated (~4.1.1)
- Expo Linear Gradient (~15.0.8)
- Data Processing:
- XLSX (~0.18.5) for Excel file handling
- Lodash (~4.17.23) for data manipulation
- date-fns (~4.1.0) for date operations
- Node.js (v16 or higher)
- npm or yarn
- Expo CLI
- iOS Simulator (Xcode) or physical iOS device
- macOS (for iOS development)
-
Clone the repository
git clone <repository-url> cd Portfolio_ios_app
-
Install dependencies
npm install
-
Start the development server
npm start
-
Run on iOS
npm run ios
npm start- Start the Expo development servernpm run ios- Run the app on iOS simulator/devicenpm run android- Run the app on Android emulator/devicenpm run web- Run the app in web browser
Portfolio_ios_app/
βββ app/ # App screens and routes
β βββ (tabs)/ # Tab-based navigation screens
β β βββ index.tsx # Main portfolio screen
β βββ analytics.tsx # Analytics dashboard
β βββ add-transaction.tsx # Transaction entry screen
β βββ settings.tsx # App settings
β βββ forecast-details.tsx # Portfolio forecast details
β βββ yearly-analysis.tsx # Yearly performance breakdown
β βββ monthly-analysis.tsx # Monthly performance breakdown
βββ components/ # Reusable UI components
β βββ ActivityCalendar.tsx # Trading activity heat map
β βββ ForecastCard.tsx # Portfolio forecast widget
β βββ ShareableCard.tsx # Shareable performance card
β βββ TopMovers.tsx # Top gainers/losers widget
β βββ WinLossCard.tsx # Win/loss ratio widget
βββ store/ # Zustand state management
β βββ usePortfolioStore.ts # Portfolio state and logic
βββ services/ # External services
β βββ tickerService.ts # Stock price fetching service
βββ constants/ # App constants and themes
β βββ Colors.ts # Color scheme definitions
βββ types/ # TypeScript type definitions
βββ assets/ # Images and static assets
βββ app.json # Expo configuration
The app supports various customization options accessible through the Settings screen:
- User Name: Personalize your portfolio display
- Currency Symbol: Toggle βΉ symbol visibility
- Privacy Mode: Hide sensitive financial data
- Header Logo: Add custom branding
- Header Link: Link to external website/profile
- Forecast Years: Configure portfolio projection timeframe
The app uses SQLite for local data storage. All portfolio data is stored securely on-device with no external server dependencies.
The app calculates Extended Internal Rate of Return (XIRR) to provide accurate annualized return metrics accounting for the timing and size of cash flows.
Stock prices are automatically refreshed every 5 minutes when the app is active, with manual refresh available via pull-to-refresh gesture.
Utilizes Expo Background Fetch and Task Manager for periodic data updates even when the app is in the background.
Enhanced user experience with tactile feedback on all interactive elements.
- iOS: Full support (primary platform)
- Android: Supported with edge-to-edge display
- Web: Basic support via Expo Web
- Local-first: All data stored locally on device
- Privacy Mode: Quick toggle to hide sensitive information
- Biometric Authentication: Expo Local Authentication support for app access
- No Cloud Sync: Your financial data never leaves your device
This project is private and proprietary.
Developed by Akash Sharma
This is a personal project. For questions or suggestions, please contact the developer.
For issues or feature requests, please create an issue in the repository.
Note: This app is designed for personal portfolio tracking and analysis. Always verify calculations and consult with financial advisors for investment decisions.