Using Monogame without Xamarin - xamarin

I want to develop mobile game using monogame. Is it necessary to use xamarin? Can I create game without xamarin, like in unity3d?
Thanks for answers.

Some of the platforms that you can target with MonoGame:
Windows / WinPhone / WinStore / ...
You can use .Net to target Windows and thus no need for Mono or Xamarin
OS-X
You can use the non-commerical version of Mono to target OS-X using the older (open-source) MonoMac and OpenTK, or if you need access to more of the current OS-X apis, than an Indie (or higher) License of Xamarin.Mac would be needed.
Android / iOS
You would need an Indie (or higher) License of Xamarin.iOS and/or Xamarin.Android
Of course, you can get a 30-day trail of Xamarin to play around with.

Now, since Microsoft acquired Xamarin and give it out for free, there is no reason to avoid Xamarin. MonoGame and Xamarin now work perfectly together and is a perfect free solution to develop mobile games.
The only downer is the MonoGame.Portable, which is still in 3.2.99-Beta and makes it harder to create the game inside an PCL.

Related

Can xamarin apps be built for Windows, MacOS with same source code?

Given an app written in C# for Xamarin, can it be built to run on all the supported platforms with minimal changes, including Android, iOS, MacOS, Windows?
I realize that Xamarin claims 90% of the code is shareable across platforms (and 10% needs to be customized), and I'm referring to that "90%".
What I don't understand is whether that 90% is shareable across the different Xamarin tools,e.g. Xamarin.Forms and Xamarin.Mac or if those are substantially different tools with different APIs, etc.
For example, I see that with Xamarin.Forms I can build for iOS, Android, and Windows. But not MacOS. So, on a Mac, can I install Xamarin.Mac and then build the same app for MacOS ?
You can add a MacOS target for your Xamarin.Forms-based UI, of course, this is done via Visual Studio for Mac:
https://learn.microsoft.com/en-us/xamarin/xamarin-forms/platform/other/mac
There are items within Forms that are not feature complete on MacOS and thus it is still in a "Preview" release and those are listed on the "Platform Support macOS Status" wiki:
https://github.com/xamarin/Xamarin.Forms/wiki/Platform-Support-macOS-Status
Xamarin.Forms is the framework that allows you to create cross-platform apps between Android, iOS and UWP. In my experience, a lot of the features of Xamarin.Forms do not transfer over to Xamarin.Android. In fact, a big chunk of the way things are done for UI Xamarin.Forms will not transfer over to the Xamarin.iOS and Xamarin.Android. Most of the times when I find a solution that works in Xamarin.Forms and I try to do the same thing in Xamarin.Android I end up just figuring out the problem myself in Xamarin.Android from scratch.
When they say that 90% is shared, they mean that within Xamarin.Forms... 90% of the work on your models and code behind can be shared between the projects (within that Xamarin.Forms solution) and 10% will have to be custom tailored for each platform (UWP, Android, iOS)
EDIT: Just for clarification in the future, you need an iOS device or an iOS virtual machine to compile the code on iOS
To build Xamarin.iOS apps with Visual Studio 2019 on Windows, you will
need:
A Windows machine with Visual Studio 2019 installed.
This can be a physical or a virtual machine.
Windows system requirements
A network-accessible Mac set up with Apple's build tools and Xamarin.iOS.
Visual Studio 2019 accesses this machine over a network
connection to use Apple's build tools, which are required for
compiling native iOS applications.
Mac system requirements
source: https://learn.microsoft.com/en-us/xamarin/ios/get-started/installation/windows/?pivots=windows
As long as you use .Net code and Xamarin.Forms it is 100% portable/sharable across every single project. Xamarin.Forms are currently in beta for macOS and Windows WPF (but for UWP it is not beta), and for macOS particularly they don't have the true native look.
Xamarin does support using the native interfaces and native APIs and whenever you do that, it is not portable.
So there is nothing like 90% sharable, it may be some estimate for some cases. It can be 100% sharable or it can be only 10% sharable depending on your project and how much you stick to the sharable APIs.

Visual Studio App Center Build for iOS

I know that all iOS apps must be built on a Mac before they can be submitted to the App store but I've noticed that Visual Studio App center provides build services - even for iOS.
Can this be used for beta testing purposes or do I still need a Mac to do the build even for beta testing purposes?
BTW, the app is an enterprise Xamarin Forms app for internal use.
Yes, you also need Mac for Beta testing.
But I use https://www.macincloud.com for testing rather then buying Expensive hardware.
It has built in Support for Xamarin and it very cheap.
iOS not like Android you also ned Apple Developer Lic. for distribute your app.
you can purchase your Lic. as your Requirement from hear : https://developer.apple.com/support/compare-memberships/
(if you just want to check how look your app in Device you can use Xamarin Live )

Monodevelop + Linux and Android Xamarin developement

Is it possible to develop a portable Xamarin mobile (Android) application with MonoDevelop on Linux?
I'm using Linux Mint, I have installed MonoDevelop with the guides MonoDevelop linux and MonoDevelop Ubuntu-Debian.
After installing, I have expected, when creating a project, to find out a project type similar to "Xamarin Android Application" or something.
The only project type mentioning cross-platform + Xamarin is this:
The guides on Xamarin site only applies to Xamarin Studio. I am lost, is there something broken in my installation or it is simply impossible to use MonoDevelop to develop Xamarin for mobile Android applications (and I totally misunderstood)?
In case, can you point me to a guide or resource about developing Xamarin portable mobile apps with MonoDevelop?
PS: There is one Stack Overflow question with last comment of year 2012, and, since then, lot things have changed: Xamarin merge with NET.foundation, the open source release of Xamarin SDK.
Clearly I have misunderstood about Linux support availability. I have thought the question should be re-formulated. I hope this match the policies.
Not yet, Xamarin Android will be available in Linux , but ETA is still unclear.
https://github.com/xamarin/xamarin-android

Target WP7 and WP8.1 (Will 8.0 devices get the WP7 app)?

If I target WP7 and WP8.1 then:
Will WP8.0 devices be able to download the WP7 version?
Will WP8.1 devices will get the WP8.1 version right ?
I'm developing an app I would like to target WP 7.1, 8.0 and 8.1.
I am thinking about targeting the 8.1 sdk for WP8. I am just not sure if that's a good idea right now as not all devices have gotten the 8.1 phone update.
According to my knowledge:
If your app is targeted to WP7 then it will be surely available for
Both the WP8 and WP8.1 until and unless you have not provided the
separate package for the later ones. so your first question's ans is
Yes
You said thinking about targeting the 8.1 sdk for WP8 But before
making this point explore that - Is it really worth or fruitful to do that
because what is New to WP8.1 will not be available for WP8 so
what's pushing you for doing it.
As you already mentioned that WP8.1 devices are very few. I think this should not be the point of making decision. What your decision should depend on is - Are you going to use new features of WP8.1 in your app or not. If you are doing then you should also target WP8.1.
Because in the end every single user should have better experience of your App.
If you are trying to use common code for the WP8.1 and Windows 8.1 then you can also check for Universal Apps and Difference between WP8.1 Apps using Win-rt Apis and WP8.1 Silverlight apps because their are significant differences between the later ones.

Xamarin IDE and visualstudio for windows +Mvvmcross

I have some confusions About the IDE to use for MvvmCross
a) VisualStudio (VS) uses Xamrarin.iOS and Xamarin.Android plugin for iOS and Android development. But can we also use PCL(Portable Class libraries) and MVVMCross/Monocross frameworks in VS? I see the PCL option on VS but, i don't see the support for Android & iOS. Do i need to install additional plugin for PCL to support these two platforms as well?
b) Xamarin IDE supports Android and iOS development on Mac but, is it true that Xamarin doesn't support Mono.iOS on windows? Isn't it strange that Visual studio can use the network mac for iOS development but why not Xamarin Studio?
Thank You for your time.
Regards,
Saurav
a) VisualStudio (VS) uses Xamrarin.iOS and Xamarin.Android plugin for iOS and Android development. But can we also use PCL(Portable Class libraries) and MVVMCross/Monocross frameworks in VS? I see the PCL option on VS but, i don't see the support for Android & iOS. Do i need to install additional plugin for PCL to support these two platforms as well?
MvvmCross currently uses Profile104 for Portable Class Library development. You can easily develop for this profile without installing Android and iOS. The mapping of PCL profile to platforms is, however, quite confusing (it's not exactly obvious) so the easiest way I find to create a Profile104 PCL is:
to create any PCL
then to manually edit the csproj file to say Profile104 - look for a line like: https://github.com/slodge/MvvmCross-Tutorials/blob/master/Babel/Babel.Core/Babel.Core.csproj#L14 in the csproj
I have customers who develop in medium size teams where only some people have the Xamarin tools installed - most people have just Windows tools and work on the PCLs using Unit Tests and using WindowsPhone/Store user interfaces.
b) Xamarin IDE supports Android and iOS development on Mac but, is it true that Xamarin doesn't support Mono.iOS on windows?
Yes, this is true.
Isn't it strange that Visual studio can use the network mac for iOS development but why not Xamarin Studio?
This may feel strange, but I believe this is actually this is Xamarin listening to their customers.
I believe, that the reason customers wanted Windows support for iOS was because they wanted to use Visual Studio and they wanted to use plugins like Resharper. Xamarin provided this in their 2.0 release.
It is true that they could also have added iOS functionality to XamarinStudio for Windows as well - but this (I believe) wasn't what any of their customers were asking for - so adding it would have created more work (both in creating and maintaining it) without adding any significant benefit (IMO)

Resources