268 lines
7.3 KiB
Markdown
268 lines
7.3 KiB
Markdown
# Frequently Asked Questions
|
|
|
|
## General
|
|
|
|
### What is Mosis?
|
|
|
|
Mosis is a virtual smartphone OS for VR games and applications. It provides a phone-like device that users can interact with inside VR environments, complete with real smartphone functionality.
|
|
|
|
### Who can develop apps for Mosis?
|
|
|
|
Anyone! Sign up for a free developer account to start building apps. There's no fee to register or submit apps.
|
|
|
|
### What can I build with Mosis?
|
|
|
|
You can build any app that works on a phone screen:
|
|
- Utilities (calculators, converters, timers)
|
|
- Productivity (notes, to-do lists, calendars)
|
|
- Games (puzzles, casual games)
|
|
- Entertainment (media players, readers)
|
|
- Social apps (chat, messaging)
|
|
- And more!
|
|
|
|
### How do users get my app?
|
|
|
|
Users discover and install apps through the Mosis App Store, which is built into the virtual phone. Published apps appear in store listings where users can browse, search, and install.
|
|
|
|
## Development
|
|
|
|
### What languages/technologies do I need to know?
|
|
|
|
Mosis apps use:
|
|
- **RML** - Similar to HTML for structure
|
|
- **RCSS** - Similar to CSS for styling
|
|
- **Lua** - Lightweight scripting language for logic
|
|
|
|
If you know HTML/CSS, you'll find RML/RCSS very familiar. Lua is simple to learn and has many tutorials available.
|
|
|
|
### Can I use JavaScript instead of Lua?
|
|
|
|
No, Mosis uses Lua for scripting. Lua was chosen for its:
|
|
- Lightweight footprint
|
|
- Easy sandboxing for security
|
|
- Simple learning curve
|
|
- Fast execution
|
|
|
|
### Can I use React/Vue/Angular?
|
|
|
|
No, Mosis uses its own RML/RCSS system based on RmlUi. Standard web frameworks won't work, but the concepts are similar enough that web developers can adapt quickly.
|
|
|
|
### What IDEs are supported?
|
|
|
|
Use any text editor! VS Code is recommended with these extensions:
|
|
- Lua Language Server
|
|
- XML/HTML tools for RML editing
|
|
|
|
### Is there a visual designer?
|
|
|
|
The Desktop Designer provides:
|
|
- Live preview of your app
|
|
- Hot reload on file changes
|
|
- Hierarchy inspection
|
|
- Screenshot capture
|
|
|
|
It's included in your developer tools download.
|
|
|
|
### Can I test on a real device?
|
|
|
|
Yes! You can:
|
|
1. Install the Designer on your PC
|
|
2. Build a .mosis package
|
|
3. Sideload onto a VR device with MosisService installed
|
|
|
|
### How large can my app be?
|
|
|
|
The maximum package size is **10MB**. This is plenty for most apps. If you need more:
|
|
- Optimize images (use TGA format)
|
|
- Remove unused assets
|
|
- Load large data from the network
|
|
|
|
### Can I use external APIs?
|
|
|
|
Yes, with the `network` permission. Make HTTPS requests to any API:
|
|
|
|
```lua
|
|
http.get("https://api.example.com/data", function(response)
|
|
local data = json.decode(response.body)
|
|
end)
|
|
```
|
|
|
|
### Can I access the device camera/microphone?
|
|
|
|
Yes, with the appropriate permissions:
|
|
- `camera` - For photo capture
|
|
- `microphone` - For audio recording
|
|
|
|
Users will be prompted to grant access.
|
|
|
|
### Can my app run in the background?
|
|
|
|
Currently, apps only run when visible. Background execution is planned for future versions.
|
|
|
|
### Can I access native device features?
|
|
|
|
Mosis apps are sandboxed for security. Available device features:
|
|
- Storage
|
|
- Network
|
|
- Camera (with permission)
|
|
- Microphone (with permission)
|
|
- Clipboard
|
|
- Notifications
|
|
|
|
Direct hardware access (Bluetooth, USB, etc.) is not available.
|
|
|
|
## Publishing
|
|
|
|
### How long does review take?
|
|
|
|
Most apps are reviewed within 24-48 hours. Apps requesting sensitive permissions may take longer.
|
|
|
|
Automated checks run instantly. Manual review is triggered for:
|
|
- First-time developers
|
|
- Sensitive permissions
|
|
- Flagged content
|
|
|
|
### Why was my app rejected?
|
|
|
|
Check the rejection reason in your dashboard. Common reasons:
|
|
- Crashes on launch
|
|
- Missing required assets
|
|
- Policy violations
|
|
- Inappropriate content
|
|
- Misleading metadata
|
|
|
|
### Can I update my app?
|
|
|
|
Yes! Submit a new version with:
|
|
- Higher `version_code`
|
|
- Updated `version` string
|
|
- Release notes
|
|
|
|
Updates go through the same review process.
|
|
|
|
### Can I remove my app from the store?
|
|
|
|
Yes, go to your app's settings and choose "Unpublish". Users who installed it can keep using it, but it won't appear in searches.
|
|
|
|
### Can I have paid apps?
|
|
|
|
Currently, all apps are free. Paid apps and in-app purchases are planned for future versions.
|
|
|
|
### What's the revenue share?
|
|
|
|
When monetization launches, the split will be:
|
|
- **70%** to developers
|
|
- **30%** to Mosis platform
|
|
|
|
### Can I distribute outside the store?
|
|
|
|
Yes, you can share `.mosis` files directly. However:
|
|
- Users must enable sideloading
|
|
- Updates won't be automatic
|
|
- No store discoverability
|
|
|
|
## Technical
|
|
|
|
### What RML/RCSS version is supported?
|
|
|
|
Mosis uses RmlUi 6.x. The [UI Design Guide](guides/ui-design.md) covers supported features. Not all CSS3 features are available.
|
|
|
|
### What Lua version is supported?
|
|
|
|
Lua 5.4 with some restrictions for sandboxing. See the [Lua Scripting Guide](guides/lua-scripting.md) for details.
|
|
|
|
### Are there size limits for storage?
|
|
|
|
Each app has 5MB of local storage. For more data, use network storage.
|
|
|
|
### Can I use databases?
|
|
|
|
Use the `storage` API for key-value storage. SQLite is not directly available, but you can:
|
|
- Store JSON data
|
|
- Use a remote database via network
|
|
|
|
### How do I handle different screen sizes?
|
|
|
|
Design for the standard phone screen (1080x1920 logical pixels). Use:
|
|
- `dp` units for consistent sizing
|
|
- Flexbox for flexible layouts
|
|
- Percentage widths for adaptability
|
|
|
|
### Can I create multiple screens?
|
|
|
|
Yes, use the navigation system:
|
|
|
|
```lua
|
|
navigateTo("settings") -- Load settings.rml
|
|
goBack() -- Return to previous screen
|
|
```
|
|
|
|
### Can apps communicate with each other?
|
|
|
|
Currently, apps are isolated. Inter-app communication is planned for future versions.
|
|
|
|
### What happens if my app crashes?
|
|
|
|
Crashes are caught by the sandbox. The user sees an error message and can restart. Crash reports are sent to your analytics dashboard (if telemetry is enabled).
|
|
|
|
### Can I access the file system?
|
|
|
|
No direct file system access. Use:
|
|
- `storage` API for persisted data
|
|
- Bundled assets for static files
|
|
- `http` API for remote files
|
|
|
|
## Account & Legal
|
|
|
|
### Is there a developer fee?
|
|
|
|
No, developer accounts are free. There's no cost to register, develop, or publish apps.
|
|
|
|
### Can I transfer my app to another developer?
|
|
|
|
Contact support to request a transfer.
|
|
|
|
### What content is not allowed?
|
|
|
|
- Malware or security exploits
|
|
- Hate speech or discrimination
|
|
- Adult content (unless properly rated)
|
|
- Copyright infringement
|
|
- Privacy violations
|
|
- Impersonation of other apps/brands
|
|
|
|
See the full content policy in your developer agreement.
|
|
|
|
### Do I need a privacy policy?
|
|
|
|
You need a privacy policy if your app:
|
|
- Collects user data
|
|
- Uses analytics
|
|
- Makes network requests
|
|
- Accesses contacts, location, etc.
|
|
|
|
### Who owns the IP for my app?
|
|
|
|
You retain all intellectual property rights to your app. By publishing on Mosis, you grant a license to distribute it through the store.
|
|
|
|
### Can I use open source code?
|
|
|
|
Yes, but respect the licenses:
|
|
- MIT, BSD, Apache: Generally safe
|
|
- GPL: May require source distribution
|
|
- Proprietary: Check terms carefully
|
|
|
|
## More Questions?
|
|
|
|
If your question isn't answered here:
|
|
|
|
1. Check the [Troubleshooting](troubleshooting.md) guide
|
|
2. Search the developer forum
|
|
3. Contact support through your dashboard
|
|
|
|
## See Also
|
|
|
|
- [Getting Started](getting-started.md) - Create your first app
|
|
- [Troubleshooting](troubleshooting.md) - Common problems and solutions
|
|
- [API Reference](api/lua-api.md) - Complete API documentation
|