Gideros Studio has a very powerful feature which enables developers to use a C/C++/Java/ObjC library next to Lua. This way it's possible to call the library functions under Lua, get the results and interpret them directly under Gideros Studio.
What can you do?
Example libraries that can be used to develop applications are in-app purchase libraries, Analytics plugins, native UI libraries on top of OpenGL window, ad plugins, social network plugins, push notifications, data storage and client-server messaging.
Currently Gideros Studio supports both iOS and Android plugins.
How does it work?
In order for a plugin to work Gideros, you need some prerequisites. 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).
- 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.
Sample plugins & tutorials
Writing plugins is easy once you get the main idea. There are some introductory articles and examples which will guide you through writing your own plugin.
- Plugins that come with Gideros Studio (iOS): There are many example plugins packed with Gideros Studio like GameKit, Bitop and SQLite (for iOS) and Bitop (for Android). Start examining them, and learn how you can build your own.
- Step-by-step tutorial to deploy your C++ plugins to the desktop player: See this Gideros forum thread
- iOS native functions plugin: This plugin is written by Andy Bower and it allows you run any iOS class/function next to Lua. This plugin benefits from Wax, a bridge between Lua and Objective-C. See more here.
- Data exchange plugin (iOS): The one written by Caroline Begbie (forum nick: @caroline) pretty much covers many types of data exchange between iOS stack and Lua code. (Download from GitHub)
- Android Facebook plugin: This is written by Arturs Sossins. Detailed installation instructions can be found here.
- Basic test plugin (iOS): This is a test plugin showing how to implement your own class, events and new commands in general by Michael Hartlef (forum nick: @MikeHart) (source code & forum discussion)
- iOS image picker plugin (iOS): This plugin gives access to iOS photo library and camera (source code & forum discussion)
- Key input plugin (iOS) (source code & forum discussion)
- Creating a simple Android plugin: Step by step tutorial on how to create a simple Android plugin (Read the article Writing Android plugins, or discuss it in our forum)
- Creating Android plugins by Arturs Sossins on AppCodingEasy
- Introductory tutorial - Using UIKit with Gideros Studio by Ian (forum discussion)
- Screen capture and save - Android plugin (forum discussion)
If you are in doubt, or have a question, subscribe to our forum and ask your questions. Gideros forums have a big list of very talented developers. You are always welcome to contribute!