{"id":43952966,"url":"https://github.com/magicappdev/mobile","last_synced_at":"2026-04-01T22:51:12.723Z","repository":{"id":336966751,"uuid":"1147421044","full_name":"magicappdev/mobile","owner":"magicappdev","description":"An mobile app built with Ionic to build apps with MagicAppDev","archived":false,"fork":false,"pushed_at":"2026-03-22T08:54:43.000Z","size":1610,"stargazers_count":1,"open_issues_count":10,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-22T10:42:14.539Z","etag":null,"topics":["appdev","appdevelopment","mobile-app","mobile-development"],"latest_commit_sha":null,"homepage":"https://app.magicappdev.workers.dev/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/magicappdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"Security.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"github":["involvex"],"custom":["https://buymeacoffee.com/involvex","https://paypal.me/involvex","https://rewards.bing.com/welcome?rh=14525F68\u0026ref=rafsrchae\u0026form=ML2XE3\u0026OCID=ML2XE3\u0026PUBL=RewardsDO\u0026CREA=ML2XE3"]}},"created_at":"2026-02-01T18:07:10.000Z","updated_at":"2026-03-22T08:54:45.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/magicappdev/mobile","commit_stats":null,"previous_names":["magicappdev/mobile"],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/magicappdev/mobile","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magicappdev%2Fmobile","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magicappdev%2Fmobile/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magicappdev%2Fmobile/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magicappdev%2Fmobile/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/magicappdev","download_url":"https://codeload.github.com/magicappdev/mobile/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magicappdev%2Fmobile/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31292703,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T21:15:39.731Z","status":"ssl_error","status_checked_at":"2026-04-01T21:15:34.046Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["appdev","appdevelopment","mobile-app","mobile-development"],"created_at":"2026-02-07T04:04:19.919Z","updated_at":"2026-04-01T22:51:12.714Z","avatar_url":"https://github.com/magicappdev.png","language":"TypeScript","funding_links":["https://github.com/sponsors/involvex","https://buymeacoffee.com/involvex","https://paypal.me/involvex","https://rewards.bing.com/welcome?rh=14525F68\u0026ref=rafsrchae\u0026form=ML2XE3\u0026OCID=ML2XE3\u0026PUBL=RewardsDO\u0026CREA=ML2XE3"],"categories":[],"sub_categories":[],"readme":"# MagicAppDev Mobile Application\n\nA modern cross-platform mobile application built with Ionic Framework and Capacitor, providing on-the-go access to the MagicAppDev platform. The application features AI-powered chat, project management, and no-code app generation capabilities, mirroring the web interface functionality.\n\n\u003e Repository boundary: treat `apps/mobile` as its own independent repo/workflow surface. When you are working on mobile-only tasks, paths and commands are relative to `apps/mobile`. Mobile GitHub Actions live under `apps/mobile/.github/workflows/` in the monorepo and should be interpreted as `.github/workflows/` for the mobile repo.\n\n## Overview\n\nMagicAppDev Mobile enables users to interact with AI agents, manage projects, and generate applications from anywhere. Built on a React foundation with Ionic's UI components and Capacitor's native bridging, the app delivers a native-like experience while maintaining code sharing with the web platform.\n\n## Tech Stack\n\n- **Framework**: Ionic React 8.5.0\n- **Runtime**: React 19.0.0\n- **Build Tool**: Vite 5.0.0\n- **Native Bridge**: Capacitor 8.0.2\n- **Language**: TypeScript 5.9.0\n- **Styling**: Ionic CSS Variables with custom theme\n- **State Management**: React Context API\n- **Routing**: React Router DOM 5.3.4\n- **Testing**: Vitest 0.34.6, Cypress 13.5.0\n\n## Features\n\n- **AI Chat Interface**: Real-time streaming AI conversations with code generation\n- **Project Management**: View and manage projects on mobile devices\n- **Theme Support**: Light, Dark, and Auto (system-preference) themes\n- **GitHub Authentication**: Secure OAuth integration with JWT session management\n- **Admin Dashboard**: Full administrative interface for system management\n- **Responsive Design**: Optimized for mobile screens with native navigation patterns\n- **Offline Support**: Capacitor plugins for local preferences and storage\n\n## Installation\n\n### Prerequisites\n\nBefore you begin, ensure you have the following installed:\n\n- **Node.js** 18.x or higher\n- **bun** 1.3.10\n- **Android Studio** (for Android development)\n- **Xcode** 15.x or higher (for iOS development, macOS only)\n\n### Setup Steps\n\n1. **Clone the repository**\n\n   ```bash\n   git clone \u003crepository-url\u003e\n   cd magicappdev\n   cd apps/mobile\n   ```\n\n2. **Install dependencies**\n\n   ```bash\n   bun install\n   ```\n\n3. **Sync Capacitor platforms**\n\n   ```bash\n   bun ionic:sync\n   ```\n\n4. **Configure environment variables**\n   Create a `.env` file in the mobile project root (`apps/mobile/.env`) with required API endpoints and keys.\n\n## Development Scripts\n\nThe following npm scripts are available for local development and production builds:\n\n### Development\n\n- **`bun dev`**: Start the Vite development server for web-based development\n- **`bun android`**: Run the app on an Android device/emulator with live reload and external access\n- **`bun preview`**: Preview the production build locally\n\n### Building\n\n- **`bun build`**: Compile TypeScript and build for production using Vite\n- **`bun prebuild`**: Run TypeScript type checking before build (automatically runs with build)\n- **`bun ionic:build`**: Build the Ionic application (alias for build)\n\n### Capacitor Operations\n\n- **`bun ionic:sync`**: Sync web assets to native platforms (required after code changes)\n\n### Code Quality\n\n- **`bun lint`**: Run ESLint to check code quality\n- **`bun typecheck`**: Run TypeScript compiler to verify type correctness without emitting files\n\n### Testing\n\n- **`bun test.unit`**: Run unit tests using Vitest\n- **`bun test.e2e`**: Run end-to-end tests using Cypress\n\n### Release\n\n- **`bun run release`**: In the standalone `apps/mobile` repo, auto-bumps the patch version, runs `bun run build`, stages mobile-repo changes, creates a `chore(release): v\u003cversion\u003e` commit when needed, reuses the `v\u003cversion\u003e` tag created by `bun pm version patch`, and pushes the branch and tag from that repo.\n- **`bun run release:dev`**: Same flow, but after the patch bump it creates and pushes a `v\u003cversion\u003e_dev` tag for a dev/mobile test release.\n- **`bun run release -- --dry-run`**: Preview the next patch release flow without modifying git state.\n\nRelease scripts are intended for the standalone `apps/mobile` repository checkout, not the monorepo root Git checkout. They push commits and tags from the mobile repo/workflow surface so the mobile release workflow can run on tags that match `v*`.\n\n### Ionic-Specific Commands\n\nAdditional Ionic CLI commands can be executed using bunx:\n\n```bash\nbunx ionic capacitor add ios          # Add iOS platform\nbunx ionic capacitor add android     # Add Android platform\nbunx ionic capacitor open ios         # Open iOS project in Xcode\nbunx ionic capacitor open android     # Open Android project in Android Studio\nbunx ionic capacitor build ios        # Build iOS app\nbunx ionic capacitor build android    # Build Android app\n```\n\n## Project Structure\n\n```\napps/mobile/\n├── src/\n│   ├── components/          # Reusable UI components\n│   ├── constants/           # Application constants and theme definitions\n│   ├── contexts/            # React Context providers (Auth, Theme)\n│   ├── lib/                 # Utility libraries (API client, storage)\n│   ├── pages/               # Page components and screens\n│   │   ├── admin/          # Administrative interface pages\n│   │   ├── Chat.tsx        # AI chat interface\n│   │   ├── Projects.tsx    # Project management\n│   │   ├── Settings.tsx    # User settings\n│   │   ├── Login.tsx       # Authentication pages\n│   │   └── ...\n│   ├── theme/              # Ionic CSS variables and custom styling\n│   ├── types/              # TypeScript type definitions\n│   ├── App.tsx             # Main application component with routing\n│   └── main.tsx            # Application entry point\n├── android/                 # Android native project\n├── public/                  # Static assets\n├── capacitor.config.ts     # Capacitor configuration\n├── ionic.config.json        # Ionic framework configuration\n├── vite.config.ts           # Vite build configuration\n├── tsconfig.json            # TypeScript compiler configuration\n└── package.json             # Project dependencies and scripts\n```\n\n## Key Dependencies\n\n### Runtime Dependencies\n\n- **@ionic/react (^8.5.0)**: Core Ionic React framework components\n- **@ionic/react-router (^8.5.0)**: Ionic integration with React Router\n- **react (19.0.0)**: React library for building user interfaces\n- **react-dom (19.0.0)**: React DOM rendering library\n- **react-router-dom (^5.3.4)**: Declarative routing for React applications\n- **ionicons (^7.4.0)**: Premium icon pack for Ionic applications\n\n### Capacitor Plugins\n\n- **@capacitor/android (8.0.2)**: Android platform support\n- **@capacitor/app (8.0.0)**: App lifecycle and information\n- **@capacitor/browser (^8.0.0)**: In-app browser capabilities\n- **@capacitor/core (8.0.2)**: Core Capacitor runtime\n- **@capacitor/haptics (8.0.0)**: Haptic feedback engine\n- **@capacitor/keyboard (8.0.0)**: Keyboard management\n- **@capacitor/preferences (^8.0.0)**: Local data storage\n- **@capacitor/status-bar (8.0.0)**: Status bar styling and control\n\n### Development Dependencies\n\n- **@capacitor/cli (8.0.2)**: Capacitor command-line interface\n- **typescript (~5.9.0)**: TypeScript compiler\n- **vite (^5.0.0)**: Next-generation build tool\n- **@vitejs/plugin-react (^4.0.1)**: Vite plugin for React\n- **@vitejs/plugin-legacy (^5.0.0)**: Support for older browsers\n- **vitest (0.34.6)**: Fast unit testing framework\n- **cypress (^13.5.0)**: End-to-end testing framework\n- **eslint (^9.20.1)**: Code linting and quality checks\n- **prettier (^3.8.1)**: Code formatting\n\n## Configuration Files\n\n### Capacitor Configuration\n\nThe [`capacitor.config.ts`](capacitor.config.ts) file defines app metadata and platform settings:\n\n```typescript\n{\n  appId: \"com.magicappdev\",\n  appName: \"MagicAppDev\",\n  webDir: \"dist\"\n}\n```\n\n### Ionic Configuration\n\nThe [`ionic.config.json`](ionic.config.json) file configures Ionic CLI behavior only; it does not control Android `versionName` or `versionCode`:\n\n```json\n{\n\t\"name\": \"Magic App Dev\",\n\t\"type\": \"react-vite\",\n\t\"integrations\": {\"capacitor\": {}}\n}\n```\n\nAndroid version metadata is sourced from [`android/app/build.gradle`](android/app/build.gradle), which derives its defaults from [`package.json`](package.json).\n\n### Vite Configuration\n\nThe [`vite.config.ts`](vite.config.ts) file configures the build tool with React and legacy browser support.\n\n## Development Workflow\n\n### Repo-Local Guardrails\n\n- Run mobile scripts from `apps/mobile` unless a task explicitly says it spans the monorepo root.\n- Treat `apps/mobile/.github/workflows/` as the mobile repo workflow directory.\n- Do not assume root `.github/workflows/`, root `.env`, or root package scripts are the correct target for mobile-only changes.\n- Run `bun run release` for production tags in the form `v\u003cversion\u003e` and `bun run release:dev` for dev tags in the form `v\u003cversion\u003e_dev`.\n\n### Local Development with Browser\n\nFor rapid development without native platforms:\n\n```bash\nbun dev\n```\n\nThis starts the Vite dev server at `http://localhost:5173`.\n\n### Native Platform Development\n\nFor testing on actual devices or emulators:\n\n**Android:**\n\n```bash\n# Ensure Android device/emulator is connected\nbun android\n```\n\n**iOS:**\n\n```bash\n# Add iOS platform (first time only)\nbunx ionic capacitor add ios\n\n# Sync and open in Xcode\nbun ionic:sync\nbunx ionic capacitor open ios\n```\n\n### Building for Production\n\n1. **Build the web application**\n\n   ```bash\n   bun build\n   ```\n\n2. **Sync to native platforms**\n\n   ```bash\n   bun ionic:sync\n   ```\n\n3. **Open in native IDE and build**\n\n   ```bash\n   bunx ionic capacitor open android  # or ios\n   ```\n\n## Architecture\n\n### Component Architecture\n\nThe application follows a modular component architecture:\n\n- **Pages**: Top-level route components ([`pages/`](src/pages/))\n- **Components**: Reusable UI elements ([`components/`](src/components/))\n- **Contexts**: Global state management ([`contexts/`](src/contexts/))\n- **Libraries**: API clients and utilities ([`lib/`](src/lib/))\n\n### State Management\n\nState is managed through React Context API:\n\n- **AuthContext**: Authentication state and user session management\n- **ThemeProvider**: Theme preferences (Light/Dark/Auto) with persistence\n\n### Routing\n\nThe app uses React Router with Ionic's navigation components:\n\n- Tab-based navigation for authenticated users\n- Protected routes for authenticated and admin sections\n- Redirect logic based on authentication state\n\n### Theme System\n\nThe application supports three theme modes:\n\n1. **Light**: Always use light theme\n2. **Dark**: Always use dark theme\n3. **Auto**: Follow system preferences (default)\n\nTheme values are defined in [`src/constants/theme.ts`](src/constants/theme.ts) and applied via Ionic CSS variables.\n\n## Platform-Specific Notes\n\n### Android\n\n- Minimum SDK: Defined in `android/app/build.gradle`\n- Target SDK: Configured for latest stable release\n- Cleartext traffic enabled for development (see [`capacitor.config.ts`](capacitor.config.ts))\n\n### iOS\n\n- Requires macOS with Xcode 15.x or higher\n- Minimum iOS version: Defined in Xcode project settings\n- Auto-signing configured for development builds\n\n## Testing\n\n### Unit Tests\n\nRun unit tests with Vitest:\n\n```bash\nbun test.unit\n```\n\nTests are configured to use jsdom environment with global test variables.\n\n### End-to-End Tests\n\nRun E2E tests with Cypress:\n\n```bash\nbun test.e2e\n```\n\nCypress configuration is defined in [`cypress.config.ts`](cypress.config.ts).\n\n## Troubleshooting\n\n### Common Issues\n\n**Capacitor sync fails**\n\n- Ensure the native platform is added: `bunx ionic capacitor add android` or `bunx ionic capacitor add ios`\n- Check that the build output exists: `bun build` before running `bun ionic:sync`\n\n**Android build errors on Windows**\n\n- Path length issues have been resolved in this configuration\n- Ensure `JAVA_HOME` is set correctly\n- Verify Android SDK is installed and accessible\n\n**TypeScript errors during build**\n\n- Run `bun typecheck` to identify type issues\n- Ensure all dependencies are installed: `bun install`\n\n**Hot module replacement not working**\n\n- Use `bun dev` for web development\n- For native, use `bun android` which enables live reload\n\n## Contributing\n\nWhen contributing to this project:\n\n1. Run the full quality check before committing: `bun lint \u0026\u0026 bun typecheck`\n2. Follow the existing code style and patterns\n3. Add tests for new features\n4. Update documentation as needed\n\n## License\n\nThis project is part of the MagicAppDev monorepo. Refer to the main project license for details.\n\n## Support\n\nFor issues, questions, or contributions, refer to the main MagicAppDev project documentation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmagicappdev%2Fmobile","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmagicappdev%2Fmobile","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmagicappdev%2Fmobile/lists"}