Cocoon 3.0.0 is out!

We have addressed a couple of things that were bugging most of you lately: the Google PlayStore API Level requirements and the issues with the GDPR in some Cocoon plugins.

Google PlayStore API level update

Google has recently introduced an API level requirement for new apps uploaded to the PlayStore.

This issue has been solved in the latest Cocoon update and you can start compiling your apps with API level version 26 (Android 8). For that purpose we have added a new Cocoon version to the Cloud Service. During the first days this version will be labelled as 3.0.0-beta and the “latest” version will still point to the latest stable until we make sure everything is working fine. If you want to use Cocoon v3.0.0-beta make sure you select it in your project settings even for new projects.

Cocoon v3.0.0-beta uses cordova-android@7.1.1 and we have updated the Cocoon plugins to work with it but if you are using other Cordova third party plugins you need to make sure that those plugins work fine with that Cordova Android version before uploading as maybe there are updates of those plugins that you need to use.

We have also updated the Cocoon plugins so you shouldn’t be worried if you are only using those. Remember that if you have a specific plugin version the cloud service won’t override that version so make sure hat you have the correct plugin version or just remove the version from the plugins settings. You can do it choosing the “latest” plugin version or removing the “spec” tag from the XML.

GDPR plugin updates

We have updated the Cocoon plugins to comply the GDPR policy.

You can find the list of plugins and the version you must install at the end of this post. If a Cocoon plugin you are using is not on the list, then it’s safe to use latest.

GDPR updates are not ready for every ad network. We are going to release them in batches and the first batch is AdMob as it’s the mostly used Ad Network in the Cocoon platform.

AdMob

AdMob and its adapters will arrive with Cocoon v3.0.0 to Android and iOS. The Android version will only work in Cocoon v3.0.0 so if you are using a different Cocoon version than v3.0.0 check the list below to know which version you should install.

The new plugins have some breaking changes. Read the documentation to learn how to configure them, and how to notify the networks about the user’s consent.

Also, you can now use request rewarded videos from AdMob and any of their adapters that support them.

Plugin versions for Cocoon v3.0.0

If you are using Cocoon v3.0.0 you can just install the latest version of the plugin and that should work fine.

Plugin versions for Cocoon <v3.0.0

If you are going to use a Cocoon version older than 3.0.0 these are the plugin versions that you should use:

  • <plugin name=”cocoon-plugin-ads-android-admob” spec=”1.0.12″/>
  • <plugin name=”cocoon-plugin-ads-android-admob-adcolony” spec=”1.0.2″/>
  • <plugin name=”cocoon-plugin-ads-android-admob-applovin” spec=”1.0.2″/>
  • <plugin name=”cocoon-plugin-ads-android-admob-chartboost” spec=”1.0.2″/>
  • <plugin name=”cocoon-plugin-ads-android-admob-unityads” spec=”1.0.2″/>
  • <plugin name=”cocoon-plugin-ads-android-applovin” spec=”1.0.1″/>
  • <plugin name=”cocoon-plugin-ads-android-chartboost” spec=”1.0.7″/>
  • <plugin name=”cocoon-plugin-ads-android-common” spec=”1.0.5″/>
  • <plugin name=”cocoon-plugin-ads-android-heyzap” spec=”1.1.1″/>
  • <plugin name=”cocoon-plugin-ads-android-heyzap-adcolony” spec=”1.1.1″/>
  • <plugin name=”cocoon-plugin-ads-android-heyzap-chartboost” spec=”1.1.1″/>
  • <plugin name=”cocoon-plugin-ads-android-heyzap-unityads” spec=”1.1.1″/>
  • <plugin name=”cocoon-plugin-ads-android-mopub” spec=”1.0.6″/>
  • <plugin name=”cocoon-plugin-ads-android-mopub-adcolony” spec=”1.0.3″/>
  • <plugin name=”cocoon-plugin-ads-android-mopub-admob” spec=”1.0.3″/>
  • <plugin name=”cocoon-plugin-ads-android-mopub-chartboost” spec=”1.0.5″/>
  • <plugin name=”cocoon-plugin-ads-android-mopub-greystripe” spec=”1.0.1″/>
  • <plugin name=”cocoon-plugin-ads-android-mopub-inmobi” spec=”1.0.3″/>
  • <plugin name=”cocoon-plugin-ads-android-mopub-millennialmedia” spec=”1.0.6″/>
  • <plugin name=”cocoon-plugin-ads-android-unityads” spec=”1.0.3″/>
  • <plugin name=”cocoon-plugin-inapps-android-amazon” spec=”1.0.4″/>
  • <plugin name=”cocoon-plugin-inapps-android-googleplay” spec=”1.0.3″/>
  • <plugin name=”cocoon-plugin-multiplayer-android-googleplaygames” spec=”1.0.4″/>
  • <plugin name=”cocoon-plugin-notifications-android-local” spec=”1.0.5″/>
  • <plugin name=”cocoon-plugin-notifications-android-parse” spec=”1.0.9″/>
  • <plugin name=”cocoon-plugin-social-android-googleplaygames” spec=”1.1.5″/>
  • <plugin name=”cocoon-plugin-social-android-facebook” spec=”1.1.5″/>
  • <plugin name=”cocoon-plugin-ads-android-adcolony” spec=”1.0.4″/>

That’s all for now.

Thanks fro using Cocoon!

Cocoon 2.2.0 – V8 Update is here!

We have some important updates. The main one is the new Canvas+ Android Javascript V8 virtual machine integration.

Canvas+ Android V8 update

Canvas+ Android uses the v8 Javascript engine internally. We haven’t updated it in a long time as it requires quite a big code update inside Cocoon. As the previous version was a bit old already (v3.5), after the summer we decided to take the time to update v8 to a more recent version (v5.4) and now it’s ready to be used in the latest Canvas+ plugin v2.6.0 that is available in Cocoon v2.2.0.

What can I expect from this update?

The main two things that you’ll notice with this update are:

  • Better performance in JS. This version delivers a number of key improvements in memory footprint and startup speed. These primarily help accelerate initial script execution and reduce page load.
  • ECMAScript ES6 support.

Better performance includes many different specific performance improvements like:

  • TypedArray performance improvements. TypedArrays are heavily used in rendering engines. For example, engines often create typed arrays (such as Float32Array) in JavaScript and pass them to WebGL after applying transformations.
  • Idle garbage collection scheduling. Garbage collection operations are scheduled during idle times on the main thread which unblocks the compositor and results in smoother rendering.
  • Improvements in specific Javascript features: executing loops like for-in, Object.assign, Promise and RegExp instantiation, calling Object.prototype.hasOwnProperty, Math.floor, Math.round and Math.ceil, Array.prototype.push, Object.keys, Array.prototype.join & Array.prototype.toString, Flattening repeat strings e.g. ‘.’.repeat(1000), etc

There are a lot more things, theseare just the main ones. You can read further in the V8 release notes here.

As v2.6.0 includes lots of new features and is quite an update we have also released a new v2.5.x branch release, Canvas+ v2.5.4 that includes the previous V8 version but with all the bug fixes that are also included in v2.6.0 so in case you find any issues with v2.6.0, you can still switch back to v2.5.4.

If you want to use v2.5.4, you’ll need to manually set that Canvas+ plugin version in you project config.xml:

<plugin name="com.ludei.canvasplus.android" spec="2.5.4"/>

The V8 update is a Canvas+ Android only feature.

New Cocoon v2.2.0

We have released a new Cocoon v2.2.0 that includes fixes and updates in all the Cocoon core plugins and Canvas+ v2.6.0. When choosing Cocoon v2.2.0 you’ll be automatically using the updated plugin set. The main plugin improvements are:

  • Canvas+ 2.6.0 with bug fixes and the V8 update
  • Webview+ update with lots of bug fixes for the iOS Webview+ and Developer App integration.

As always, you can use this Cocoon version by just changing the Cocoon version in your project:

Of course you can still use previous versions of Cocoon and you’ll only be using 2.2.0 automatically in case you have set the Cocoon version to latest.

Architecture selection

This is something that has been requested several times in the past. At the moment when building a Cocoon app for Android both, armv7 and x86 where being built, since this release you can select if you want to build armv7, x86 or both architectures.

This will save both final APK size and also compilation time so you no longer need to wait twice the time in case you only need one architecture or you are just testing.

2.5.4 & 2.6.0 Bugfixes and improvements

Apart from the Canvas+ Android v8 update we have been working on bug fixes for both Canvas+ Android and iOS.

These are the main ones:

  • Now the Canvas+ internal webview uses the accelerated environment by default in iOS.
  • Reduced APK size as ARM architecture has been removed from Canvas+ Android 2.6.0.
  • Fixed hang when the App is suspended and an Audio pause is received.
  • Updated iOS device ID list reported by getDeviceInfo().
  • Fixed iOS internal webview so JS execution is not paused when the webview is not showing.
  • Fix crash when texture is disposed twice: this happens when texture loader thinks that texture is still alive but the new image was not loaded or is empty, and tries to dispose the current texture. (ie. When using image.src=“” to dispose images)
  • Fixed Local Storage data write to the internal plist with proper encoding. This might cause local storage corruption.
  • Fixed issue with font-size and line-height in fonts definition parsing.
  • Enable NPOT textures by default. This will be noticeable in some memory saving when allocating textures that are not POT.
  • Audio loading issues. Some audios might not be loaded correctly with slow connections.

Let us know what you think about this new update!

Cocoon Cloud SDK 2.0.0 released as alpha

A new version of our SDK has been released. It’s in alpha for the moment, but after a few improvements we are preparing, we hope this new version of the SDK will be easier to use by the users.

To use this new SDK use the instructions found in the repository.

We want to make it easy for our users to integrate this tool into their workflow to speed up the development of your Cocoon.io applications.

 

New platforms for Cocoon!

This has been the main feature we have been working on these last months. Now the Cocoon cloud compiler can compile and sign applications for some new platforms.

Windows 10
Windows 10 target will run on any Windows 10 based computer, tablet (ie. Surface) or mobile device and you will be able to distribute and monetize your app/game through the Windows Marketplace.

MacOS 
This target will run on any MacOS based computer and more importantly, you can distribute your app/game through the MacOS AppStore so everyone can find, buy and install your app or game from there.

Ubuntu
This target will work on any Ubuntu based device.

Steam
As Steam is a desktop based platform, having binaries for Windows 10, MacOS and Ubuntu opens up the possibility of publishing those games for Steam too, probably the biggest games distribution platform at the moment.

We have opened this feature as Beta for Platinum, Gold and Silver users but it will be available for the rest of the users in a couple of weeks.

Compilation backend Improvements

We have also taken some time to make some improvements in the compilation backend, mainly to prepare it for the new platforms but also to overcome some issues that we had detected since the release of the new Cocoon.

Faster compilations
The main one has been to make the compiler faster. We noticed that some compilations took a lot of time to start and that the compilation duration was too high. We’ve made some changes to the backend and the compiler code and now the compilation should start much faster than before and also take less time to complete.

Better logging
We have tried to improve the error handling when a compilation goes wrong so you have all the information to know what happened and how to fix it. We hope it’s helpful to solve the compilation errors faster.

Cordova compliance
The second issue was that the config.xml was not Cordova compliant. When we started the new Cocoon cloud we added these new custom tags like cocoon:plugin and cocoon:platform that you have probably noticed in the config.xml file. We have removed all of them and now the config.xml is fully Cordova compliant and should work just the same in any other Cordova based compiler. This shouldn’t have much impact on your daily work as it is migrated automatically by the compiler.

 

Hope you enjoy all this improvements. Let us know what do you think!

Cocoon Update: Encryption and improvements

Now that we’ve got Cocoon released, we’re rolling out new features and making improvements. Let us know what you think of the updates.

Encryption

Along with the Cocoon cloud release, we also put out a feature we’ve been working on for the past few weeks and that we hope will be useful to developers. When publishing your app, one of the main problems with HTML5 is how easy it is for anyone to access your code. In some cases, like web apps, this is not that important, as most of the logic is on the server side, but for other apps like games it can cause problems as anyone can have access to your assets and code and publish your game themselves.

Now with Cocoon you can encrypt all the assets and code in your application using the AES 128 encryption algorithm. The files are encrypted at compile time and decrypted at runtime so they remain encrypted inside the installed application bundle.

The encryption feature is currently only available for the Gold Plan users. If you are not a Gold Plan user and you would like to use encryption, please upgrade your plan here.

For more information on how to use the encryption feature, see the docs.

Documentation

We have made some changes to the Cocoon documentation. Now it is hosted atdoc.cocoon.io and it has a public repository at Github so you can contribute if you find any bug, typo or you just thing that you can improve some section. There is a search widget available in case you want to find an article or you want to get the information you need in a faster way. The documentation is a permanent work in progress so there will be improvements in the near future.

Improvements and Bug Fixes

  • Fixed Google Play Games Construct2 plugin login issues
  • Fixed Canvas+ iOS issue when using the Cordova Status bar plugin
  • Addressed problem with banner sizing in some Cocoon Ads plugins
  • Fixed iOS icon sizing problem when setting it with the icons UI which caused problems when uploading to stores
  • Fixed Cocoon Chartboost Ad plugin crash issue when compiling because of a missing library
  • Changed Canvas+ to use the Android immersive mode by default if full screen is enabled. You no longer need to use any plugin for this, as it is available by default

Hope you like the new Cocoon features and improvements. We will be back with more soon.

Cocoon Release!

Today is a great day for the Cocoon Team and we are thrilled to announce the release of the Cocoon Cloud.

After months of hard work and bug-fixing thanks to our beta users’ feedback (that’s you!), we are happy to announce that the Cocoon cloud is ready for public release. We have tried our best to keep it as polished as possible and during the last few months thousands of users have been using it, with some even publishing their games, so it seemed like the right time for a public release.

Pricing & Plans

Many of you have been eagerly awaiting our plans. We have designed four different plans to fit all your needs. Below is a brief summary of our four plans and for more information, take a look at the Pricing Plan table here.

  • Free Plan: All users are currently enrolled in the free plan. This plan includes 2 projects and a maximum zip upload size of 50MB. You can sign, use the developer app and all the configuration features, and build at any time with a low queue priority.
  • Silver Plan: This plan has been created for those of you who are happy with the Free plan features but want more resources. It includes 120MBs of zip file upload and 10 projects. The compilation queue priority is higher than that of the free plan, so you will be ahead of the Free users when compiling.
  • Gold Plan: The Gold plan includes all the Silver plan features as well as the highest resource offer. You will get 50 projects and 120MBs of zip file upload. You will also get the latest Cocoon features like Encryption. This plan also includes email support.
  • Platinum Plan: This is basically an “Ask us” plan. If you feel that the other plans are not enough for you, tell us your needs and we can work together to design a custom plan that fits your goals.

We are currently working on the purchase flow integration so if you are interested in upgrading your plan right now, send an email to Sales or visit the Pricing Page.

Canvas+ Splash removal

One of the most highly demanded features is the Canvas+ splash removal. By default for all plans, a Canvas+ compilation includes a Cocoon splash at the beginning. Now you can remove that splash for your bundle ids. The splash removal is a one-time fee of $500 for each bundle id.

If you want to remove the splash for a bundle id, please contact us here or you may manually remove it by accessing the Splash tab of your project configuration.

If you are a game publisher and you are planning to remove the Canvas+ splash from many games, please contact us.

If you have any questions about the Cocoon release, plan upgrades, or anything else, please let us know.

Canvas+ Plugin 2.2 Update

We have updated the Canvas+plugin version (for both iOS and Android)  with some bugfixes and new features.

To get this new features you just need to compile with the latest Cocoon version in the cloud.

Canvas+ improvements

  • Added support for Cookies in Android XHR.
  • window.location.href = URL to work.
  • Made getAttribute to return null if the attribute is not found. Previously it returned an empty string.
  • Improved XHR related error messages.
  • Added postMessage support to window.
  • Support for the anchor tag/element.
  • Added “hasAttribute” and “classList” to every node.
  • Added search to location.
  • Added JSON support for XHR connections and fixed a bug that was passing “undefined” to user and password in XHR open commands (did break connections in Android with JQuery).
  • Added minor modifications to make Canvas+ more JQuery and Construct2 (non CocoonJS export) friendly.
  • Added srcElement to every event instance.
  • Added DOMParser, querySelector and querySelectorAll.
  • Added getElementsByClassName.

Canvas+ extensions

  • Added secure text option for the text dialog
  • When a canvas object is disposed from javascript, dispose the context too.
  • Added XHR Dispose.
  • Only allow input capture on canvas and image HTML Elements.

Canvas+ bug fixes

  • Store vertexAttribPointerData in the WebGL defender. These fixes some conflicts with canvas2d and wangle renderer (specially on Pixi V3).

Cordova related

  • Added support for Cordova online/offline events.

Hope you enjoy this new Canvas+ version!

Cocoon Beta Update – Splashes and NPM Plugins


We are back again with a bunch of updates and fixes, check them out!

Updates

  • Splashes: We have added support for adding a custom splash to your project. You can add a default splash and override it for each platform. We have added a few parameters that you can set: scale mode, padding, background color and a delay. We have also added a preview. You can even see how it will look in a specific device resolution using the device simulator.

    We think this will save you some precious time of creating and setting up splashes. Just upload an image and generate your splashes for any device automatically. In iOS this image will also be the launch image.

  • We hope you find it useful!

    Cocoon

  • Plugins migration: Cordova is migrating their plugin registry from the Cordova Registry to NPM. The plugins in the Cordova Registry were starting to be a bit outpdated so we have decided to migrate our plugins and the Cocoon Cloud Plugins UI to NPM.

    Now everytime you add a Core or Cocoon plugin or when you look for plugins using the Cocoon Cloud Plugins UI, you will get the latest NPM available plugins.

  • Remember that you can use any Cordova plugin in the Cocoon Cloud.

  • Plugins documentation: Some of you were asking us where could you find the documentation for the plugins you discover throught the Cocoon Cloud Plugins UI. To make this task easier, we have added a link in the Plugins UI. Now if the plugin has documentation you will see an “Available” link that will lead you to the plugin documentation directly.
  • Hope that helps to make the plugins integration even easier!

    Cocoon

  • Smaller Developer App: Some of you asked us if we can reduce the Developer App size to upload to the stores when making tests (ie. Uploading to the PlayStore to test InApp Purchases). Now the Developer Apps generated in the Cocoon Cloud will not include the app source code so the size will be smaller.

Bug Fixes

  • Amazon AppStore Android Plugin:A NumberFormatException in the fetchProducts method has been fixed and the plugin has been updated to the Amazon SDK 2.0.
  • Google Play Store Android Plugin:“skusBundle array associated with key ITEM_ID_LIST cannot contain more than 20 items” issue has been fixed.
  • Cordova File-Transfer Plugin:We have fixed a bug in Canvas+ that prevented the file-transfer plugin from working properly in Canvas+ iOS and Android.
  • Canvas+ sleep prevention:Now when compiling with Canvas+ Android, your app won’t sleep and shut down the screen.

So that’s all for the moment, hope you enjoy this new features!

Thanks for using Cocoon!

The Cocoon Team

Cocoon Beta Update

This week we have deployed a new Cocoon cloud version and these are some of the main things we have been working on.

Features:

  • Help links: We have added help links in places where we think you may need more information.
  • Compilation errors: Now the compilation status icon is also clickable when a compilation fails and it will open a dialog with the compilation log.
  • Projects order: The project list is ordered by last compilation time instead of creation date.
  • Platform version: The cordova platform version is now shown in the platform settings top right corner, so you know which cordova version are you using. The cordova version is attached to the Cocoon version that you can configure in the project settings.
  • Plugin parameters: We have added support for plugin parameters in the compiler so the plugin will receive the parameters you set in a plugin when installing.

Bugfixes:

  • Webview+ cache: The Webview+ cache was not being cleared between launches when using the Developer App. It’s now fixed.
  • Local zip file in Webview+ iOS: Using local zip files with Webview+ in iOS was not working correctly. Now local and remote zip files should work correctly along with remote urls.
  • AdColony plugin iOS: We have fixed an issue with AdColony plugin for iOS that was crashing at compile time because a dependency was missing.
  • Support for queryselector in Canvas+: We have added support for queryselector in Canvas+ because some plugins like the whitelist plugin need it.

You can expect a new release next week with some new features and more bug fixes. In the meantime please keep on sending bugs, feature requests or any kind of feedback, that’s gold for us!.

Thanks for using Cocoon!

The Cocoon Team