Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Running Scala code on iOS [duplicate]

Possible Duplicate:
Any way to use some Scala for iOS coding?

Would it be possible to use the Scala.NET implementation, and then MonoTouch to run Scala code on an iOS device?

like image 825
MasterScrat Avatar asked Jul 30 '11 19:07

MasterScrat


3 Answers

I have not been able to find a page with binaries of Scala.NET that I can test, so the following are just general guidelines as to what you can do with MonoTouch and .NET languages.

MonoTouch can run any ECMA CIL that you feed to it. When you consider using a new language with Monotouch, there are two components that come into play:

  • Tooling for the IDE
  • Runtime for the language

The tooling for the IDE is the part responsible for starting the builds, providing intellisense and if you use Interface Builder, it creates a set of helper methods and properties to access the various outlets in your UI. As of today, we have only done the full implementation for C#. What this means for an arbitrary language is that you wont get the full integrated experience until someone does the work to integrate other languages.

This is not as bad as it sound, it just means that you need to give up on using XIB files from your language and you probably wont get syntax highlighting and intellisense. But if you are porting code from another language, you probably dont need it. This also means that you would probably have to build your assembly independently and just reference that from your C# project.

So you compile with FoobarCompiler your code into a .dll and then reference in your main C# project.

The language runtime component only matters for languages that generate calls into a set of supporting routines at runtime and those routines are not part of the base class libraries (BCL). C# makes a few of those calls, but they are part of the BCL.

If your compiler generates calls to a supporting runtime that is not part of the BCL, you need to rebuild your compiler runtime using the Mono Mobile Profile. This is required since most runtimes target a desktop edition of the BCL. There are many other API profiles available, like Silverlight, Mono Mobile, Compact Framework and Micro Framework.

Once you have your runtime compiled with our core assemblies, then you are done

like image 99
miguel.de.icaza Avatar answered Nov 05 '22 18:11

miguel.de.icaza


If you had read the MonoTouch FAQ, you would have noticed that it currently supports only C# and no other CLR languages.

like image 41
Kim Stebel Avatar answered Nov 05 '22 18:11

Kim Stebel


Binaries for the Scala.NET library and the compiler can be obtained via SVN, in the bin folder of the preview:

svn co http://lampsvn.epfl.ch/svn-repos/scala/scala-experimental/trunk/bootstrap

Bootstrapping has been an important step, and ongoing work will add support for missing features (CLR generics, etc). All that will be done.

For now we're testing Scala.NET on Microsoft implementations only, but we would like our compiler to be useful for as many profiles and runtime implementations as possible.

A survivor's report on using Scala.NET on XNA at http://www.srtsolutions.com/tag/scala

Miguel Garcia http://lamp.epfl.ch/~magarcia/ScalaNET/

like image 3
Miguel Garcia - Scala team Avatar answered Nov 05 '22 17:11

Miguel Garcia - Scala team