Writing cross-platform Unity3D plugins using Xamarin - c#

Is it possible to write cross-platform Unity3D plugins (specifically for android and ios) using the Xamarin APIs?
If yes, what would be the procedure to go about doing it? Are you aware of any documentation or reference that might be useful?
Unity still doesn't provide a lot of native functionality as Xamarin does. I'm asking this because it just makes sense minimizing the learning curve for developing unity plugins. After a lot of experimentation, I've just begun understanding the intricacies of C#. If I have to learn two other languages (Java and Objective-C) that would greatly impede my progress.
Thanks.

Microsoft is opensourcing the Xamarin SDK, so combined with Mono for Android (that Unity most probably uses), you could soon be closer to your goal
BTW, they're also changing Mono's licensing model to the more permissive "MIT License" and hosting it under the .NET Foundation

Xamarin and Unity MonoDevelop are separate project. Xamarin doesnt support Unity. If you want a crossplatform plugin you could use C++ read:
http://docs.unity3d.com/Manual/Plugins.html

Related

Is it possible to Convert or wrap C# APP to IO Xcode Apple APP and Android

I have an app developed for windows 10 on C# and now I want to move to IOS and Android. I have heard of xamarin and used some of there stuff in C# but would it be possible to embed the C# code and move it to apple xcode without having to redevelop the app from again?
would it be possible to embed the C# code and move it to apple xcode without having to redevelop the app from again?
No, it is not possible. Basically you can share some UIs across different platforms, but I think redevelop your app for each platform is necessary.
Not sure if you want to use Xamarin.Android and Xamarin.iOS or Xamarin.Forms to develop your app, you can use C# for development by using Xamarin, it provides a cross-platform implementation of the extensive features in .Net framework, but the actual implementation on each system is very different. For more information, you can refer to Understanding the Xamarin Mobile Platform.
For Xamarin.Android and Xamarin.iOS, you can refer to Android Architecture and iOS Architecture.
For Xamarin.Forms, you can have your UIs and some basic features designed in the PCL in order to share across different platforms, but for most features just for example like working with files, we need to access the native method of each platform, therefor, Xamarin.Forms provides a locator named DependencyService to achieve this.

Is Xamarin.Forms the right tools to use on application with heavy use of f.ex TTS, OCR, voices etc?

We are planning our first applications on tablets, to run on both iOS, Android and Windows.
We are considering using Xamaring.Forms.
Our applications must be able to access several functions/feature on the devices.
F.ex: OCR, TTS (text-to-speech), installed voiced, use our own installed voices, use our own c++ libraries
Anyone with experience with similar application using Xamarin.Forms?
- Performance, will it work smooth?
- Overhead
- complexity
- UI issues?
- Other issues
Or will native application for each platform be a better alternative?
Any idea/comment/recommendation?
As the team lead of Xamarin.Forms, I also suggest in your case you go with Xamarin platform. You would be basically in the sweet spot for maximal codeshare with minimal pain for a Xamarin platform (non-Forms) project.
If you used forms you would be doing too much DI and custom rendering from the sound of it to actually benefit dramatically.

How to reuse existing C# code in Android?

I have a C# network protocol library (about 5000 LOC) which I want to reuse in an android app. The protocol is likely to change in the future.
What is a good way to do this?
Port the library to Java/Android?
Use some sort of C# to Java converter like this. Build a Java library with the source and use it in my Android app?
Build a android service with Xamarin.Android (monodroid) and write a native Android app which uses this service?
other options?!
If you are looking to make an Android app and using Java isn't a requirement, Xamarin.Android is a very good solution. The way you build the app is pretty much the same as you would with Java. You still have resource files and axml files, etc. The main difference is that you use C# instead of Android.
There has also been some anecdotes that the .NET VM runs faster than Android's Dalvik JVM. So it is possible that your C# code will run faster than a Java port.
The Alpha Channel of Xamarin Studio has initial support for PCLs so if you have your library as a PCL already it may turn out to very easy to just plug it in.
You may want to check out this discussion to get a sense of Pros and Cons of C# vs. Java:
MonoDroid VS Java in android development?
You can also use this website to scan your lib to see how mobile friendly it is:
http://scan.xamarin.com/

openGL ES supporting languages and portability suggestion

I been googling alot and read most of the question here but still confused and need some help to understand few things.
Me: Web developer working in C# for a long time.
Target: Develop 2D games with openGL ES 2.0 for andriod & iOS only.
Question: Which language is better to work with for openGL ES 2.0 for developing 2D games for andriod & iOS (C# or Java)?
I am really confused about choosing a language which can target most of the devices.
Thanks
You can use C++ with Android via the NDK and in iOS via Objective-C++. Both use OpenGL ES so you could even share code between both platforms.
If you are a C# developer I would suggest to continue using it (as you need to learn a lot of new stuff for mobile development and OpenGL and by using the language you are already familiar with, you can at least avoid new language learning stress and focus yourself on new technology learning).
MonoDroid, C# for Android:
http://xamarin.com/monoforandroid
MonoTouch, C# for iOs:
http://xamarin.com/monotouch
No doubt that Java being the language of "native" support for Android as Objective C for iOS is a best choice for platform, but you should choose a best choice for you, so I would go for C#.
Keep in mind that Mono frameworks are NOT free!
There is another interesting alternative for C++ , MoSync: http://www.mosync.com/

developing tool for building Android/Iphone app

I have .net c# background(don't mind to learn new language to get the things right). Right now i want to make some small applications for Iphone/Android phones.Basically, i will show some graphs with data retrieved through my webservice.
Can anyone tell me which developing tool should i use to create those small apps quickly?
I don't have any experience with Flash.And i just know that Flash builder 4.5 can convert Flash applications to Iphone/Android. However, i don't feel like that it is a native way to build Iphone/Android app
But if you advise that, i might go that way.
thank you
Xamarin has products that allows you to use C# (and your existing skills) for both iOS (iPhone / iPad) and Android devices : MonoTouch and Mono for Android.
disclaimer: I work for Xamarin
You might want to use frameworks that help build apps for multiple platforms with the need to know native programming languages. PhoneGap is one of these popular frameworks.
You can use C# to create a WCF service. There are a few different libraries to develop Android applications. If you want to work with C#, you can check out Mono for Android.
http://docs.xamarin.com/android
From my knowledge, however, Java is the preferred language to develop Android application. Eclipse has a great plugin which integrates with the Android SDK / Emulator.

Categories

Resources