Feature/mobile deployment#169
Conversation
* Add screenshots from deploying to iOS simulator and Android emulator. * Set landscape orientation. * Android documentation started. * Updated android doc. * More information about csproj. * Fix image link. * Initial notes for part 1. * Updated doc and images. * Add android doc and images. * Add android project image. * Work on the cross platform changes. * More tidy ups. * notes * Restructure. * Update for debugging. * Updated image. * Renamed screenshots. * Add iOS simulator. * Adding rider images. * Added getting started section. * Refactoring folders. * Parts 1 and 2. Setup 3 and 4 the right order. * Update mobile development tutorial: refine iOS section, add modern .NET features, and enhance clarity * Updated versions of library. * Cropped image better and removed unnecessary one. * Touch tutorial. * Publishing documentation. * Include transporter images. * Updated documents and tidy ups.
There was a problem hiding this comment.
Pull Request Overview
This PR introduces a comprehensive mobile deployment tutorial series for MonoGame, extending the existing desktop tutorial to cover Android and iOS development. The tutorial covers the complete mobile development lifecycle from initial setup through app store publishing.
Key changes include:
- Complete mobile development workflow tutorial spanning 5 chapters
- Cross-platform project architecture and setup guidance
- Touch input handling for mobile interfaces
- Publishing processes for both iOS App Store and Google Play Store
Reviewed Changes
Copilot reviewed 5 out of 40 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| 01_getting_started/index.md | Introduction chapter covering development environment setup and requirements for Android/iOS |
| 02_crossplatform/index.md | Guide for converting Windows-only projects to cross-platform architecture |
| 03_touch/index.md | Touch gesture handling fundamentals and implementation patterns |
| 04_debugging_locally/index.md | Local debugging setup with screenshots for Android and iOS |
| 05_publishing/index.md | Comprehensive publishing guide for iOS App Store and Google Play Store |
Comments suppressed due to low confidence (1)
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| |120x120|| | ||
| |120x120|| | ||
| |152x152|| | ||
| |83.5x83.5|| |
There was a problem hiding this comment.
The table shows '83.5x83.5' but the image filename and alt text show '167x167'. This inconsistency will confuse readers about the correct icon size.
| |83.5x83.5|| | |
| |167x167|| |
| [https://github.com/vchelaru/Gum](https://github.com/vchelaru/Gum) | ||
|
|
||
| ```xml | ||
| <PackageReference Include="Gum.MonoGame" Version="2025.6.26.1" /> |
There was a problem hiding this comment.
I would recommend upgrading to the latest version of Gum before releasing this, unless of course you are concerned that you haven't spent enough time with it to verify compatibility.
There was a problem hiding this comment.
I don't have an issue with updating the version number and would need to check compatibility.
There was a problem hiding this comment.
The 3.8.5 base branch has been updated, so you should be able to refresh to the latest used by the base tutorial
There was a problem hiding this comment.
The mobile tutorial is using 2025.8.3.3 where as the original tutorial is using 2025.5.1.1.
I've updated the doc to match the tutorial.
|
|
||
| #### Using Command Line | ||
|
|
||
| The creation of an IPA file can be achieved on the terminal. Currently, Rider does **not** support this process. |
There was a problem hiding this comment.
What about Visual Studio - is that worth discussing here?
There was a problem hiding this comment.
The 2D tutorial focused on Visual Studio Code, so I think it is ok to continue with that here. Using full Visual Studio is the same pattern, just a different interface. Same with Rider.
There was a problem hiding this comment.
Yes the tooling for MacOS is not perfect since the departure of VS for Mac. Especially when terminal is needed to do the publish part then it's just a preference about the IDE.
| AlwaysRetainTaskState = true, | ||
| LaunchMode = LaunchMode.SingleInstance, | ||
| ScreenOrientation = ScreenOrientation.SensorLandscape, | ||
| ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.Keyboard | |
There was a problem hiding this comment.
What do these mean? Why might I want to change them?
| Label = "@string/app_name", | ||
| MainLauncher = true, | ||
| Icon = "@drawable/icon", | ||
| AlwaysRetainTaskState = true, |
There was a problem hiding this comment.
What does AlwaysRetainTaskState mean? Why might I want to change it?
|
|
||
| ```bash | ||
| # Build AAB using .NET CLI | ||
| dotnet publish -f net8.0-android -c Release |
There was a problem hiding this comment.
Is it worth discussing how to do all of this in normal Visual Studio? Or linking to the MS docs?
…econtroller class was updated to use the new "TouchInfo" class.
SimonDarksideJ
left a comment
There was a problem hiding this comment.
A good start, but a few crucial changes needed to align with the styles from the original 2D tutorial:
- Encapsulation of images into figures.
- More explanation of subjects instead of just headings.
- No contractions :D (just ask @AristurtleDev :P )
- More instructions rather than referring to the sample
- Doesn't include links to the finished sample :S
Overall a great start, just needs some finishing touches.
|
|
||
| # Getting Started and Overview | ||
|
|
||
| This tutorial extends the **MonoGame 2D Dungeon Slime tutorial** to mobile platforms. If you haven't completed the desktop tutorial yet, we recommend finishing it first as we'll be building directly on that foundation. |
There was a problem hiding this comment.
When mentioning other content or API's, provide a hyperlink back to the source content so the user does not have to search
|
|
||
| **Required Tools:** | ||
| - **Android Device Manager** - Used to set up simulators (accessible through Visual Studio) | ||
| - **Android SDK Manager** - Used to install the SDK platforms |
There was a problem hiding this comment.
iOS mentions having an iOS developer account. Is the same setup not also required for Android?
There was a problem hiding this comment.
A Google Developer account is required to publish, but not to build I think.
There was a problem hiding this comment.
Added comment to page to say that you do not need a paid developer account to build locally and test.
|
|
||
| # Prerequisites | ||
|
|
||
| Before starting this chapter, ensure you have: |
There was a problem hiding this comment.
Ideally, this should be included in the previous chapter, which detailed what the reader should know before starting the tutorial.
By Chapter 2, they should be "ready" to begin :D
|
|
||
| ### Creating Your App | ||
|
|
||
| 1. **Create App** in Google Play Console |
There was a problem hiding this comment.
Pretty much the same comments as already stated for the iOS walk through.
- More concise
- Explain a bit more (far too many sections are just lists, e.g. signing configuration, shows the configuration but does not explain to the reader what signing is and what it is for?
- include links to tools that help, e.g. generating icons/images
| For **Android**: | ||
|
|
||
| ```xml | ||
| <ItemGroup Condition="'$(TargetFramework)'=='net8.0-android'"> |
There was a problem hiding this comment.
These should be using
Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'"
This means the code will not need to change when the TargetFramework changes
…ecklist and conclusion. (#18)
5af3400 to
1504684
Compare
98d170a to
b484644
Compare
…properties. AoT issue may happen during publish on own projects.
This is the documentation part of deploying to the app stores - Apple and Google Play. This covers the continuation of Dungeon Slime game from it's Windows-ness to the mobile world.
In addition, we have a separate touch demo that can be used to test out the gestures.