Xamarin Android Emulator with Maps - visual-studio

I want to run local test of an app using the Android Emulator within Visual Studio 17. It works great using the Visual Studio Emulator for Android and the app is almost complete.
However I need to add a map with a few pins and I have this working and tested on my PC using the UWP app. However trying to run on the Android emulator there is no Maps as there is no play store.
I have googled lots and found lots of things to try but none seem to work and I notice that the latest of all the pages and blogs I have read are dated 2015 so in software terms and indeed Xamarin they are very old.
So if I want to test the maps part of my app what is the best way if I can't get the Emulator to run with maps or am I missing some fancy new tool to test with other than shipping the app and hoping that it works in the wild?
Thanks
Cliff.

You cannot see the map as Visual studio emulators for Android do not have google play services installed by default. In order to test and see your map, you should install google play services in the android emulator.
You can do this by installing gapps on your emulator which provides you with google play services functionallity. The installation is just a drag and drop in the emulator. After installing this packge, you could use maps on the emulator.

I would create a new Android VM in that process you can tell it to add the google store to the android VM

Related

Xamarin Deploy To Android

So I got Xamarin onto Visual Studio, and did the Xamarin.Forms template. I would expect that when I connect my phone to the computer I would be able to deploy to my phone, like the mobile development with C++ workload. When I connected it, though, it still only had the option to deploy to the Android Emulator.
The Android Emulator takes up a lot of space on my hard drive, so I'd like to just deploy it to my phone. When I use the Mobile Development with C++ workload, it shows my phone on the deployment thing, but with Xamarin it doesn't.
Does anyone know how I can deploy to my phone using Xamarin, and not install the Emulator?
;)
If you encounter this problem, make sure you have selected this:
Otherwise, Xamarin will make you install the emulator.

Xamarin workflow on Windows

I'm aware that a Mac or a Mac service e.g. MacInCloud.com is necessary for building and submitting iOS apps.
My question is about the actual workflow of building an app on Windows using Xamarin on Visual Studio 2017.
We need to write code, test and debug throughout development cycle. How does this work with Xamarin running on Windows? How would I actually see what my mobile app looks like or behaves during the actual development cycle?
While developing my web apps in Visual Studio, there are many trips back and forth to the browsers and back to VS in order for me to see the results of my code. How does this work with Xamarin running on Windows? Is Xamarin Live Player the only option for development cycle? Is there a solution through MacInCloud or similar services so that tethering a device to dev machine is not necessary?
I'm just trying to understand how a healthy development cycle is created for Xamarin developers on Windows.
I will answer your question in few section: Coding, Debug, Test
Coding
You will be using Visual Studio to write your codes. iOS and Android code will be written in C#. You will get access to UI Designer for both iOS and Android to edit the layout files and storyboard/xibs. For 3rd party library, there is NuGet to serve your needs.
Debug
You can use Xamarin Live Player without connection to a Mac/MacInCloud for basic preview. However, some features of iOS is not available in Xamarin Live Player (e.g. xibs files not supported...).
If you setup with connection to a Mac, you will be able to see a list of Simulator that available in the Mac you connected to. By default, if you debug it, the simulator will still show up in the Mac. Then you will need to VMWare or remote into the Mac to check the simulator output. If you have Visual Studio Enterprise license, you can get access to a Remote iOS Simulator feature. You will need to turn the option ON. After that, you will able to see a remote iOS Simulator showing in your Windows machine without the needs to remote into Mac machine anymore. For debugging in actual iOS devices, you will still need to plug your device into the Mac. Previously (more than 1 years ago), Xamarin announce that they are working on "iOS USB remoting" to allow you to plug in iOS device into Windows machine and debug on it. But it is not release until now.
For Android, you can get access to Android Emulator Manager to add emulator to debug or you can deploy apps to physical phone just like what you can do with Android Studio.
Test
I will be referring to Xamarin.UITest for this part. You will be able to write UITest code in C# inside Visual Studio. Xamarin have product "Xamarin Test Cloud" to allow you to upload test code and binary and then run your test in cloud periodically. If you want to run the test locally in your machine, you will only able to run Android UITest in windows machine. To run iOS UITest locally, you will only able to run it in Mac machine. Using a Mac, you can also run Android UITest.
You can use a simulator/emulator instead of a device. For iOS, the simulator would run on the Mac Build Host that you are connected to. You can select the option for "Remote iOS simulator" in Visual Studio -> Xamarin.iOS options and you'll be able to interact with the simulator without having to RDP/VNC/look at the mac. For android, you can just run an emulator in Window and interact with it like that. Using your web apps comparison, you would use a simulator/emulator instead of browser but, for the most part, the process would be similar.
I have been developing a Xamarin MVVM app targeted at iOS and Android. I initially did the iOS development on Windows with VS 2022 and an iPhone attached via USB. I knew that I was going to have to eventually move to the Mac for final provisioning but I ended up taking that painful step earlier than planned because certain Xamarin features were just not working on Windows. First I could not get my app icon to be anything other than the Xamarin default and then Xamarin.Essentials.FilePicker would not select a file:
https://github.com/xamarin/Essentials/issues/1710
So after a week of struggling I finally got my project building and deploying on the Mac. However, I am not nearly as comfortable working on the Mac as I am on Windows where I have all my familiar development tools. So then the question was how to share the project files between the PC and the Mac so that I could edit and compile on the PC and then move to the Mac for final testing.
At first I tried iCloud but I could never get the files to sync reliably between the shared folder on the PC and the Mac. I am used to Dropbox and OneDrive, which work as expected. iCloud not so much.
So what I have been doing is committing and pushing the changes to github and then pulling the changes into the project on the Mac. It is quick and has the added benefit of version control using an offsite server. I am happy with this workflow and publishing the app on the Apple Store should be an easy task when that time comes.
Update:
This process is still working for me. I have taken the additional step of doing the release configuration on VS Mac and publishing my app to App Store Connect. That experience was convoluted and frustrating but it now works and I have people testing my app via TestFlight.
One hiccup is that when selecting Automatic iOS Bundle Signing in the project properties on VS Windows, this change gets pushed to the Mac side and causes a build error under Debug until I select the Automatic provisioning profile on the Mac. Somehow it gets set to the Wildcard profile on the Windows side.

xamarin studio android emulator starting take infinite time

I am using xamarin studio community edition on my macbook pro. when I try to run any sample project on android emulator it takes infinite time.
Can you please suggest. FYI It was working previosuly . Please check screen shot Android emulator error
I would highly suggest using the Xamarin Android Player instead of Google's default emulator manager.
The Xamarin Android Player is much faster and more reliable in my opinion although I have also heard that choosing different Google Play emulator images can make a big difference. Installing HAXM can also speed up the default Intel Google Play emulator images.
Download the Xamarin Android Player from here.
*Edit: Thanks to #SushiHangover for pointing out the fact that Xamarin deprecated the Xamarin Android Player. SushiHangover suggests using the Genymotion Android emulator which I have heard good things about but have not tried yet.

Basic Android App not working on Xamarin Android Player via VS2015

I have been trying to run basic Android App provided by Visual Studio 2015 via XAMARIN Android Player. Program gets build and deployed successfully, yet, App or anything does not appear on screen. Xamarin Player takes more than 20 mins to start and then nothing happens. Find Screenshots as well.
WIthin the Android SDK Manager look under Extras there is an package called Intel x86 Emulator Accelerator (HAXM Installer). Installing HAXM will increase the speed of the emulator when you use the Intel Atom CPU/ABI
Also when creating the emulator device check Use Host GPU for increaded performance.
I ran into few issues with Xamarin Android Player as well. Currently I am using Genymotion Emulator and it is much faster.
Well, Well, Well, I got my thing up and running. Following are the steps I performed:
After installing Xamarin for VS2015, I checked for latest Android SDK via SDK Manager. Got all the necessary updates installed.
Installed Xamarin Android Player and used emulator Nexus 5 KitKat API level 19.
Earlier I was using Nexus 5 Lollipop, was the reason why, it was not working. May be its not fixed for buil yet.
As, described by Mr.Pilatus in above answer, the particular HAXM things surely does help in accelerating emulator.
Got my Android app running.
Thank you all for all the necessary suggestion and guiding my in my baby steps in XAMARIN development. Gracias. NAMASTE!

Debugging Xamarin.iOS project without physical mac

My idea is to use macincloud to build xamarin project. And I'd like to debug it also.
On xamarin's site it's written that "Xamarin.iOS applications can be debugged with the built-in debugger in Xamarin Studio or Visual Studio." But it's still not clear if the device, for example iPad can be connected to Windows machine? Or It has to be connected to Mac only?
Device has to be connected to the Mac. If we are connecting to a mac remotely, we can use a Simulator and and view the result using a RDP client like TeamViewer. I'm not sure if that is possible with MainCloud. You can also go for Xamarin Test Cloud if that is feasible for you.
No, it's not possible to deploy to device and debug with MacinCloud. You can however launch a simulator and debug your app inside the emulator.
If you want to deploy to your ipad you can use publish your app with TestFlight service and install TestFlight builds on your iPad.
See more details at Developing iOS Apps in Visual Studio with MacinCloud
There are two possible ways how to do it. First one is more proper but it's in preview version - Microsoft introduced Xamarin Live Player.
Second way is to have your own virtual machine of macOS on Windows machine. Here is the tutorial how to do it.

Resources