-
Notifications
You must be signed in to change notification settings - Fork 0
Add MOBILE_DESIGN.md with comprehensive iOS and Android deployment strategies #50
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
Conversation
Co-authored-by: anicolao <[email protected]>
|
@copilot an important constraint that I missed is that I want the user to be able to install DikuClient and run it and have a working setup. They should not need to install any other program to use the result. Please add an assessment of this constraint to the analysis and if necessary change the recommendation to one that satisfies the constraint. |
Co-authored-by: anicolao <[email protected]>
I've updated MOBILE_DESIGN.md to satisfy the standalone installation requirement (commit 7c76db2). Key changes:
The document now recommends native apps for both platforms as the only approach that satisfies all constraints including standalone installation. |
|
@copilot the current recommendation looks good. I missed one more requirement: in future development, the app needs to be able to display buttons overlayed on top of the terminal window for fast controls to control the client. I do not want these buttons to have to be non-overlapping; and it seems likely that it is possible to display them atop the terminal but I want to be sure that the recommended approach allows this to be implemented later. Add "floating buttons" to the requirements and update the document accordingly. |
Co-authored-by: anicolao <[email protected]>
I've updated MOBILE_DESIGN.md to include the floating buttons requirement (commit e40237c). Key additions:
The recommended native app approaches for both platforms fully support floating buttons through their native UI frameworks, which naturally provide view layering and Z-order control. This allows buttons to be easily overlaid on the terminal view for future fast-control features. |
Overview
Adds a comprehensive design document (
MOBILE_DESIGN.md) that outlines strategies for deploying the dikuclient on iOS and Android mobile devices while minimizing code changes and running Go code directly on the device with full-screen terminal display.Important Requirements: This document includes:
What's New
This document provides detailed analysis and recommendations for mobile deployment across both platforms:
iOS Deployment (Recommended: Go Mobile + SwiftTerm)
Explores three deployment options and recommends using gomobile to build a native iOS app integrated with the SwiftTerm terminal emulator:
The document includes:
Android Deployment (Recommended: Native Android App with Go Mobile)
Explores three deployment options and recommends building a native Android app using gomobile with an embedded terminal emulator:
The document includes:
Note on Termux: While the Termux approach (Option 1) requires zero code changes and can be implemented in half a day, it has two critical limitations: (1) does not satisfy the standalone requirement because users must first install Termux, and (2) does not support floating buttons as it's a terminal-only environment with no native UI layer. This approach is documented but not recommended given these constraints.
Document Contents
The 1025-line design document covers:
Key Principles
Both recommended approaches maintain all core requirements:
Why These Recommendations?
Native Apps for Both Platforms: The standalone installation and floating buttons requirements necessitate native app development for both iOS and Android. While this requires more effort than simpler approaches (like Termux), it provides a professional, consumer-grade user experience where users install one app and can immediately use DikuClient, with full support for future UI enhancements like floating control buttons.
Code Sharing: The mobile wrapper code (~200-300 lines) can be largely shared between iOS and Android platforms, making the combined development effort only 2-3 weeks instead of 4 weeks if done in parallel.
iOS/SwiftTerm: Using gomobile with SwiftTerm provides a native iOS experience while requiring minimal code changes and maintaining full compatibility with the existing Bubble Tea TUI. SwiftUI's ZStack and UIKit's view hierarchy naturally support overlaying floating buttons on the terminal.
Android/Go Mobile: Using gomobile with an embedded terminal emulator (Termux library or TerminalView) provides a native Android experience with the same benefits as iOS. Jetpack Compose's Box and FrameLayout naturally support overlaying floating buttons on the terminal.
Next Steps
This design document provides the foundation for:
The document serves as a complete implementation guide for anyone wanting to deploy dikuclient on mobile platforms with standalone installation and floating buttons support for future enhancements.
Original prompt
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.