Introducing Gideros plugins
It's crucial to have an extensible software, in order to raise a healthy ecosystem based on community members. This way both the company and the community grows, enabling new businesses and value added projects around the product. Based on this, we've been discussing the new Gideros plugin based system in our forum with our users, and seen a very positive feedback from all of you. What's a Gideros plugin? you may ask. Well, first let's define it:
"A Gideros plugin is a software module which adds a specific ability to Gideros Studio for supported platforms" Let's dig into this sentence and identify key parts:
Software module: A plugin consists of a C, C++, Obj-C or Java code compiled for the target platform. If the compiled software is a DLL or a dylib, then you can immediately use it on your desktop player.
Specific ability: A plugin can do a predefined job, defined by the programmer, like displaying a native UI, or showing an advertisement.
Supported platforms: Gideros plugins can run on Android, iOS and desktop players provided that they meet the language requirements (see below).
Sounds cool, eh? There are a variety of software that can act as a plugin, once they are compiled for the target platforms (e.g desktop player, Android or iOS):
Native UIs for Android or iOS
In-app purchase libraries
Analytics plugins
Native UI libraries on top of OpenGL window
Ad plugins
Achievements, leaderboards plugins
Push notifications
Map view
There are even more specific cases where plugins can be of use:
A client-server messaging library which enables fast implementation of a messaging application.
A synchronization library which can read and write data from and to a database without extra code and effort.
A scientific library which can be used to build applications for statistics, optimization, signal and image processing.
3rd party AI libraries
In order for a plugin to work Gideros, you need some prerequisites. The plugin you are going to use with Gideros Studio does not need to be open source. A plugin is distributed as a .dll for Windows desktop player, .dylib for Mac desktop player, .so for Android, or as a .a file for iOS. Basically, the following rules will hold for any plugin, so before using a plugin or try to develop your own, keep in mind that there are some language restrictions that are brought to us by phone manufacturers and OS developers:
If the library you are going to use is programmed using C or C++, then it can be used on both mobile platforms plus desktop.
If the plugin is programmed using Java, then it can be available for Android only.
If the plugin is programmed using Objective-C, then it can be available for iOS only.
With Gideros Studio plugin framework, you can create a class and then use this class to reach the library itself. Another good feature is the event mechanism: you define a trigger for specific events in the library, and when that action is done, a specific event is dispatched to Lua. This way, you can understand that "something has happened" in your library. Think of this post as an introduction to plugins. In the upcoming days, we'll be releasing a new Gideros Studio beta to our developers, in order to get more feedback from you. We expect lots of comments and critics, and try to make Gideros Studio plugin infrastructure the most convenient, flexible, powerful feature of Gideros Studio ever. Edit: We have released our plugin supported beta. Head over to our forum and get the latest, sweetest Gideros Studio.












