Infinite LiveCode: Native Field Object
As a community we successfully funded the core goal and the first two stretch goals in the infinite LiveCode campaign meaning that Foreign Function Interface, an SQLite library and Full cross platform audio recording is on it's way to LiveCode. We got so close with the final stretch goal, in fact we made over $10k of the $15k required for the native field widget. This project is to finish funding that stretch goal. We have already pledged the amount overfunded from the previous Feature exchange.
The Final Stretch Goal.
As a community we successfully funded the core goal and the first two stretch goals in the infinite LiveCode campaign meaning that Foreign Function Interface, an SQLite library and full cross platform Audio Recording is on its way to LiveCode.
You can view the original campaign here
We got so close with the final stretch goal, in fact we made over $10k of the $15k required for the native field widget.
Stretch Goal 3 – Native Field Widget
LiveCode currently has an extremely extensive cross-platform text field control, however it has a downside in that it doesn’t feel entirely native on mobile platforms – particularly on iOS where copy/paste and other actions use a custom iOS-only user interface. Right now you can create a ‘native’ field control on iOS and Android which present these features, but it’s a very clunky process as you can’t manipulate them like you can all the LiveCode controls you are familiar with.
We will develop a new native field widget that will hook into the native field on each mobile platform that you can simply drag and drop onto your application making the native services on fields instantly available to you such as the select and copy and paste features that appear on iOS when you press down in a field.
This stretch goal’s proposal is to build a Builder widget which uses a native layer to make it possible to drag-drop native mobile field controls onto your stacks and use them, with the native features available without any extra coding being required.
For this Infinite LiveCode stretch goal we will:
- Wrap the relevant classes needed to use a native input control on iOS and Android using the glue generator
- Use the widget’s native layer feature to host the native input control just like all other LiveCode controls
- Write a widget which works just like every other engine control, but when run on Android and iOS presents a native input control.
A Similar Example
One of the biggest new features of LiveCode 8 was the Browser Widget. This new control allows any LiveCode application to take advantage of an embedded browser by just dragging and dropping a control onto a card – just like other LiveCode controls. This replaces the previous way you would use an embedded browser in LiveCode – either via revBrowser on Desktop, or mobileControlCreate(“browser”) on Android/iOS. It goes without saying that this widget was implemented using the power of LiveCode Builder!
The new browser widget really does make using an embedded browser so much easier: there’s no cross-platform difference between how you use it; and there’s no need to manage the browser’s lifetime yourself as it works just like a normal engine control (because that is what it is!). We’d like to extend this ease of use to mobile-specific feature which is widely used: the native field control accessible via mobileControlCreate(“input”).
Further to the actual code, we will also make this feature ‘fully worked’ – we’ll provide associated documentation and training materials explaining how it all works so that you can start learning how to implement similar things yourselves. This will be a gold mine for seeing how to work with the Android and iOS native layers, and how to use native layer features already present in Builder widgets to build your own native controls. With this information you’ll be able to go out and start wrapping your own native controls on the mobile platform yourself – tailoring them to your applications needs!
Finally, remember, that this will all be open source code, built and included in the community edition – you will be able to take it, adapt it and help improve it!
We only need an additional $5k to complete this feature. This campaign will run for 30 days until 23rd June 2016 at 7pm GMT
Please pledge today.
5 comments
Join the conversationDave - May 25, 2016
I’ve just pledged.
LiveCode’s ancestry and past is glorious – but the future, the future will be bright!
And written by us…
eraklis - May 25, 2016
Come on people if half of the people who pledged before, give just $20 we are done – and you even have a month to save up.
Jose - July 14, 2016
Hi, what is the planned date to finish this project?
Andrew - June 20, 2017
*bump*
Jose - April 11, 2018
One year and the question still not answered , what is the planned date to finish this project?