WebView being moved to Native Extension


#1

With Defold release 1.2.146 we are moving the previous core module webview into an external native extension library.

If you previously were using webview , you will need to add the following URL to your dependencies in game.project :

https://github.com/defold/extension-webview/archive/master.zip

Reasoning

As presented in out roadmap for H1 2019, we are in the process of making the engine runtime more modular.

During H1-2019 we will use this system to extract non-vital parts of the engine core into native extensions, thus giving users even better control of what to include in the engine core, as well as opening up for community collaboration and improvements. We will start by extracting the webview into a native extension and then move on to also extract push, iap, iac and the Facebook SDK.

The webview module is our first step in this direction, it’s a good candidate for us to learn what removing modules from the core would mean for both us and our users.

Changes

Only a stub implementation is left in engine core, it will throw a Lua error if any webview function is used on mobile. The error will look like this:

webview has been removed from core, please read /builtins/docs/webview.md for more information.

Documentation

The documentation for webview is now available here: https://defold.github.io/extension-webview/

Caveats

  • The code editor inside Defold will no longer display code completion for the webview namespace. We are looking into a general solution for this, where libraries/extensions can expose code completions. However, this feature will not be available in 1.2.146 and we are sorry for the inconvenience. The issue ID for this feature is: DEFEDIT-1532

Feedback

We are open for your feedback and would like to hear any suggestions how we can make this new direction as painless as possible for our users. If you have any suggestions or annoyances how this new direction will affect you, please reply to this topic!


Defold 1.2.146 has been released
#2

You will continue use old doc format for webview, or it will use another format? Prev was json, now you use yml, if i understand right.

EmmyLua use lua annotations(something like luadoc) to describe params,functions,types. It is very easy to use it. If in library we can use annotations in lua to make autocomple it will be cool and easy for users. https://emmylua.github.io/annotations/return.html


#3

We have a meeting on Thursday to discuss and hopefully agree on a format for documenting extensions so that the editor can provide autocomplete. I haven’t heard of EmmyLua before but I’ll take a look at it for sure!