As the question implies, is there any tutorial or article about using .NET C# to build a native extension for Adobe AIR ?
Is it a must to use C ?
You're limited to using C for iOS ANEs or Java for Android ANEs as the Flash Runtime Environment provides an SDK only for those languages. You can, in practice, write your native extension in any language that can properly interface with the SDK language (e.g. Objective-C or C++ on the iPhone, for example).
Related
I have developed a game using C++ and require to add the video/audio chat options embedded in the game. Can someone suggest ways to do them?
Agora offers a C++ SDK, check out the "Agora Windows" SDK QuickStart Guide. it's labeled Windows but it is the C++ SDK as can be noted by the C++/ All Platforms designation in the API Documentation: https://docs.agora.io/en/Video/API%20Reference/cpp/index.html
By saying native code, we understand the code which is being executed by directly calling CPU or OS functions. Why do people say that Android went with Java, or Java is native for Android development when Java is being executed on VM? The same things you can for Objective-C and iOS. What is the reason people say that?
None of them are "native" to the OS. Both are languages, both get compiled.
objective C will get compiled to assembly, that can be directly run by a processor
java will get compiled to byte code that will be interpreted by a JVM (namely dalvik)
since Android 4.4, a new virtual machine appeared for Android : ART, it will get all bytecode compiled in assembly, but this is still experimental for now.
With Objective C you could argue that the language used to create apps is the same as the language to code the OS. For Android is would be more difficult to say so. The OS is build mostly in C, some parts in Java, but Android API themselves are also made of a mix of C and Java.
Android Native Library, allows you to implement parts of your app using native-code languages such as C and C++, allows you write native code. JAVA - is not native. On the byte-code level, Android doesn't use Java. The source is Java, but it doesn't use a JVM.
WHY JAVA? Android runs on many different hardware platforms. You would need to compile and optimize your native code for each of these different platforms!
Why does Android use Java?
I am trying to understand the "write once deploy anywhere" feature of Kony Studio. What about native code? I know that Kony added JavaScript support in V5 but as I understand it that is just for the Web-based app portion. Am I correct to assume that native code is still written with Lua and then generated for each platform? Do they convert Lua to Java, Objective-C and C# for the 3 main platforms? When debugging are you looking at Lua or the native language? - Thanks.
Kony embeds the google v8 js engine along with the native app. This will interprets the js code to native at runtime.
JavaScript is still used for scripting against the Kony API. LUA is not necessary for native apps. Remember that the API is an abstraction layer to the underlying native SDK - Kony is not a code gen tool.
Added to we can choose the developing language from javascript or Lua. If we choose Lua then instead of V8 engine it will be Lua Virtual machine that which is doing the interpretation.
I think the title is pretty self explanatory. The only thing is I come from the background of XCode and Obj-C and I have this project that I have to develop for IOS, Android and BB. So what are my options? which one would you recommend? I am leaning more towards Mono, is that a good call?
A
Do you have any experience with C#?
Since you have an Objective-C background, it might be easier for you to use Obj-C, and Java for Android/BlackBerry. Otherwise it will be C# for iOS/Android and Java for BlackBerry (you could potentially have to learn 2 languages there).
I have very a strong preference for MonoTouch and find it much more productive than Objective-C, but I came from a C# .Net/Windows background.
I would stay away from "cross-platform" tools such as Airplay SDK, you app will probably be slower and not feel very native in the end. MonoTouch and Mono for Android are more truly native.
As you want to target three platform, I think your only option is Marmalade. Otherwise you have to write your project for those three platforms, separately. Using Marmalade you can distribute your project for all those mentioned platform easily just using their Deployment Tool. And for iOS development you don't need to own a Mac or xCode, although for publishing your project into Apple Store you still need to join Apple Developer program.
I personally not recommend MonoTouch as you still need a Mac computer (if you already don't have one). Plus, you still face the problem with porting your project into BB because AFIK MonoTouch don't support it. Also with MonoTouch you have to learn Cocoa, Cocoa Touch framework and Android framework, as MonoTouch is only an abstract class over these SDKs in C#. But if you go with Marmalade you only need to learn Marmalade SDK, which IMP is simpler than Android and Cocoa*.
What exactly is Adobe Air? I've seen a lot of people talking about it and I've even seen applications for it but I'm still not entirely sure what makes it unique or how it is different from other languages. Can someone please give me the concise version from a programmer's point of view?
Edit:
I wasn't familiar with Flex so I found this nice explanation: http://www.onflex.org/ted/2008/01/what-is-flex.php
In a nutshell.
Start with the assumption that you know what Flex and Actionscript are. Then take the fact that they both run exclusively in your browser and to all intents and purposes are for building web apps.
Now assume you want to develop the same app, with the same language and user interface resources, but run it as a desktop app on a workstion (PC, Mac, or Linux interchangeably).
AIR is what you add (as a link library) to Flex and Actionscript to accomplish that.
http://en.wikipedia.org/wiki/Adobe_Integrated_Runtime
Write cross-platform desktop apps in Flash, Flex, HTML, Ajax.
Adobe Air is a framework which allows to build desktop applications and it is based on HTML/JS and Flash.
Adobe Air its Flash Runtime that can run Flash inside it and provide access to your operation system.
Adobe Air can be used for gaming and software as usual Flash. Its stand alone flash player with extended and reach functionality. For example you can develop flash app that will interact with filesystem or hardware.
Also its support native extensions so you can extend Air using native C/Java libraries.
air can be produced as exe for windows, app for mac, ipa for ios, apk for android, linux with limitations and blackberry.
Adobe Air is cross platform language/tool for mobile, window and OSX application.