This commit is contained in:
Trevi Awater
2026-03-30 21:37:04 +02:00
parent aa39ac057b
commit 3f87a65c14
+38 -96
View File
@@ -1,135 +1,77 @@
# PocketGraph - Neo4j Mobile Client # PocketGraph
[![Deploy GitHub Pages](https://github.com/kl0070/xamarin-neo4j/actions/workflows/deploy-pages.yml/badge.svg)](https://github.com/kl0070/xamarin-neo4j/actions/workflows/deploy-pages.yml) [![Integration Tests](https://github.com/kl0070/xamarin-neo4j/actions/workflows/integration-tests.yml/badge.svg)](https://github.com/kl0070/xamarin-neo4j/actions/workflows/integration-tests.yml)
A powerful mobile Neo4j database client for iOS and iPad, built with Xamarin.Forms. A mobile Neo4j and Memgraph client for iOS, built with .NET MAUI.
[![Download on the App Store](https://tools.applemediaservices.com/api/badges/download-on-the-app-store/black/en-us?size=250x83&releaseDate=1280278400)](https://apps.apple.com/nl/app/pocketgraph/id1604368926) [![Download on the App Store](https://tools.applemediaservices.com/api/badges/download-on-the-app-store/black/en-us?size=250x83&releaseDate=1280278400)](https://apps.apple.com/nl/app/pocketgraph/id1604368926)
🌐 **[Visit our website](https://kl0070.github.io/xamarin-neo4j/)** for more information and beautiful screenshots!
## Overview
PocketGraph is a professional Neo4j graph database client that brings the power of Neo4j to your mobile device. Connect to your Neo4j instances securely via the lightning-fast Bolt protocol with SSL encryption, and manage your graph data on the go.
## Features ## Features
### 🔐 Secure Connections - Connect via the Bolt protocol with SSL/TLS support
- Connect via the lightning-fast Bolt protocol - Compatible with Neo4j and Memgraph
- SSL/TLS encrypted connections - Interactive graph visualization with expand/collapse
- Multiple connection management - Table view for query results
- Database switching support - Save and manage connections and queries
- Light and dark theme
### 📊 Data Visualization - iPhone and iPad support (iOS 14.2+)
- **Graph View**: Visualize nodes and relationships in an interactive graph
- **Table View**: View query results in a structured table format
- Interactive data exploration
### ✍️ Advanced Query Editor
- Syntax highlighting for Cypher queries
- Query history and management
- Save and organize your queries
- Execute Cypher queries directly
### 🎨 Modern Interface
- Light and Dark theme support
- Responsive design for iPhone and iPad
- Intuitive navigation
- FontAwesome icon integration
### 📱 Platform Support
- iPhone (iOS 14.2+)
- iPad (iPadOS 14.2+)
- Apple Silicon Mac (macOS 11.0+)
- Apple Vision Pro (visionOS 1.0+)
## Project Structure ## Project Structure
``` ```
Xamarin.Neo4j/ Xamarin.Neo4j/
├── Xamarin.Neo4j/ # Shared Xamarin.Forms project ├── Xamarin.Neo4j/ # Shared .NET MAUI project
│ ├── Controls/ # Custom UI controls ├── Xamarin.Neo4j.iOS/ # iOS platform project
│ ├── Converters/ # XAML value converters ├── Xamarin.Neo4j.Tests/ # Unit tests
│ ├── Managers/ # Connection and query managers └── Xamarin.Neo4j.IntegrationTests/ # Integration tests (Neo4j + Memgraph via Docker)
│ ├── Models/ # Data models
│ ├── Pages/ # Application pages
│ ├── Services/ # Business logic services
│ ├── ViewModels/ # MVVM view models
│ └── Visualization/ # Graph visualization components
├── Xamarin.Neo4j.Android/ # Android-specific implementation
├── Xamarin.Neo4j.iOS/ # iOS-specific implementation
└── Xamarin.Neo4j.Tests/ # Unit tests
``` ```
## Key Components
### Services
- **Neo4jService**: Handles all Neo4j database operations via Bolt protocol
- **ConnectionStringManager**: Manages saved connections
- **SavedQueryManager**: Organizes and stores queries
### Pages
- **ConnectionsPage**: Manage database connections
- **SessionPage**: Execute queries and view results
- **GraphPage**: Interactive graph visualization
- **TablePage**: Tabular data view
- **QueriesPage**: Saved queries management
- **SettingsPage**: Application settings
## Technology Stack
- **Framework**: Xamarin.Forms
- **Database**: Neo4j (Bolt Protocol)
- **Languages**: C#, XAML
- **Visualization**: Custom WebView integration with Neovis.js
- **Architecture**: MVVM (Model-View-ViewModel)
## Development ## Development
### Prerequisites ### Prerequisites
- Visual Studio 2019/2022 or Visual Studio for Mac - .NET 10 SDK
- Xamarin workload installed - Xcode (for iOS builds)
- iOS development: macOS with Xcode - Docker (for integration tests)
- Android development: Android SDK
### Building the Project ### Building
1. Clone the repository:
```bash ```bash
git clone https://github.com/kl0070/xamarin-neo4j.git cd Xamarin.Neo4j
cd xamarin-neo4j dotnet build Xamarin.Neo4j.sln
``` ```
2. Open the solution:
```bash
open Xamarin.Neo4j/Xamarin.Neo4j.sln
```
3. Restore NuGet packages and build the solution
### Running Tests ### Running Tests
```bash ```bash
dotnet test Xamarin.Neo4j/Xamarin.Neo4j.Tests/Xamarin.Neo4j.Tests.csproj # Unit tests
dotnet test Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Tests/
# Integration tests (requires Docker)
dotnet test Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.IntegrationTests/
``` ```
## Technology Stack
- .NET MAUI
- Neo4j.Driver (Bolt protocol)
- C# / XAML
- MVVM architecture
- Testcontainers for integration testing
## Privacy ## Privacy
PocketGraph does not collect any user data. All connections and queries are stored locally on your device. PocketGraph does not collect any user data. All connections and queries are stored locally on your device.
## About ## About
PocketGraph is created by [Re: Software B.V.](https://resoftware.nl) PocketGraph is a product of [Re: Software](https://resoftware.nl).
**Note**: The Neo4j Graph Database is a product created by Neo4j, Inc. Neo4j® and Cypher® are registered trademarks of Neo4j, Inc. Neo4j and Cypher are registered trademarks of Neo4j, Inc.
## License ## License
See [LICENSE](LICENSE) file for details. See [LICENSE](LICENSE) for details.
## Support ## Support
For support, please contact: info@resoftware.nl Contact: support@resoftware.nl
---
**Available on the App Store** - [Download PocketGraph](https://apps.apple.com/nl/app/pocketgraph/id1604368926)