Kodular Eagle

Kodular Eagle

1.4 Eagle | 17 August 2019

Major Changes

  • New Ads Commission system
    No more fixed commissions; you will now pay for what you use: few components means lower commission

  • Web View can now upload files
    You will now be able to upload files within a web viewer

  • Export and import blocks via PNG files
    You can now right-click on any block and pick "Download Blocks as PNG". And you can just drop that PNG file into the workspace, and the blocks will appear

  • Added Android Support Libraries for SDK 28
    It provides optimized compiled apps for Android 9

  • Now Projects can be renamed
    Just click on the projects name at the top left corner, type the new name and hit Enter

  • Loading projects now use a new JIT (just-in-time) system, removing the old AOT (ahead-of-time)
    This makes loading projects from 5 to 10 times faster

  • Deleting screens/projects now involves a secondary confirmation
    You have to type the project/screen name before deleting it

  • Bumped Minimum SDK from 16 to 19
    We needed to add more features, and it could only be possible increasing the Min SDK to Android 4.4

  • New default app icon when none is set for new projects
    We replaced our logo icon with a fancier one

  • You can now copy/cut and paste components in the same screen, and from one screen to another
    Check the UI Changes, Point 3, for more information

  • Added two new languages: Greek and Japanese
    Their translation progress were enough to be implemented

UI Changes

  • Kodular Creator has been fully redesigned
    Now the platform sports a brand new design, adapted for the modern times. It is based on Material Design 2

    • You can now collapse panels to provide a better experience You can now display only the Viewer and the Components Tree in demos, for example
    • Selected theme will now be saved across sessions
    • Added My Account button at Account dropdown
    • Moved Language dropdown and Theme switcher to new Settings button in Account dropdown
      It will open a new Creator Settings dialog
    • Palette now supports nested categories to better organize components
      Check below where components have been moved
    • Added fancy illustrations to dialogs
    • Visibility of components can now be toggled from a button in the Viewer header
      It depreactes the display hidden components button at the bottom
    • Added new phone's and tablet's mocks to Viewer
      It deprecates the tablet preview button at the bottom
    • Components Tree and Properties have been splitted
      We took back the App Inventor interface, with the ability to hide any of those
    • Removed Non-Visible Components panel below phone's mock
      This has been deprecated in favour of the next feature
    • You can now click on All Components to switch to Visible Components or to Non-Visible Components
    • New Colour Picker
      It has a bunch of default colors plus a HSV color selector
    • Added Project Colours
      These are the colours which are being used in your project, so that you can easily select them across properties and screens
    • Height and Width selectors now sport a new layout
      The dialog has been removed in favour of a textbox where you type a number and "px" or "%", plus two buttons to easily switch between Automatic and Fill Parent
    • Assets selectors now support previewing files
      You can now preview the selected file in your Property
    • Redesigned all dialogs
      Brand new "Create Project", "Baking your app" dialogs, and many more
    • File uploader now accepts only legal types
      You won't be able to upload/select a not-supported format
    • Added more properties preview to designer
      You will be able to preview more properties like Checked Switches, Sliders or so in the mock; and current ones have been updated
  • You can now use shortcuts to work on the Creator
    Check a complete list in the dialog available at the "Help" dropdown

  • Added new right-click context menu in Designer
    You can now copy, cut and paste components in your project, just by right-clicking on them; and much more like Paste Properties...

  • Added new Settings Dialog under My Account dropdown
    It will trigger themes, switch to compact layout, display experimental properties, change preferences, show keystore hashes...

Companion

  • Companion will show a dialog when an update is available
    It makes usage of the In-App Updates component, and it will prevent errors for having an outdated version

  • Added new Dark Theme mode to Companion
    Code during nights in both Creator and Companion without harming your eyes; just press the button in the top bar

New Components

  • Added new JSON component to Storage category
    Useful to work with Web APIs, for example
    image|239x142

  • Added new Keyguard Manager component to Utilities category
    Require the app to be unlocked using phone's security lock
    image|243x161

  • Added new Dynamic Card View component to Dynamic Components category
    Generate dynamically beautiful cards to place more dynamic components
    image|252x144

  • Added new Dynamic Image component to Dynamic Components category
    Create more images in your apps execution
    image|249x141

  • Added new Dynamic Space component to Dynamic Components category
    Use this component to increase the separation between components
    image|248x140

  • Added new Google Play Games component to Google category
    One of the most requested components will allow you to create awesome games integrated with Play
    image|238x204

  • Added new Kodular Donations component to Monetization>General category
    A new way to donate to Kodular: this component will make commission go to 100%, so all ads will be rewarded to our account
    image|245x160

  • Added new AdColony Interstitial component to Monetization>Advertising category
    Insert AdColony ads in your apps
    image|239x163

  • Added new AppLovin component to Monetization>Advertising category
    Display AppLovin interstitials in your app
    image|235x141

  • Added new Facebook Rewarded Video component to Monetization>Advertising category
    The missing Facebook Ads component allows you to reward your users by watching ads
    image|241x183

  • Added new StartApp Interstitial component to Monetization>Advertising category
    Improving StartApp integration, this component allows you to display StartApp interstitial
    image|243x158

  • Added new In-App Update component to Experimental category
    Most people will find this component really useful, as it will automatically prompt users with a dialog when an update is available on Play Store
    image|247x219

Moved Components

  • Moved Push Notifications component to Social category
    We think it was time to move it away from Experimental

  • Moved Shell component to Utilities category
    This component has been working properly for months, so we placed it in its appropiate category

  • Moved List View component to new Layout>Listviews category

  • Moved List View Image and Text component to new Layout>Listviews category

  • Moved Bottom Sheet component to new Layout>Views category

  • Moved Chat View component to new Layout>Views category

  • Moved View Flipper component to new Layout>Views category

  • Moved Surface View component to new Layout>Views category

  • Moved Web Viewer component to new Layout>Views category

  • Moved Bottom Navigation component to new Layout>Navigation category

  • Moved Side Menu Layout component to new Layout>Navigation category

  • Moved Tab Layout component to new Layout>Navigation category

  • Moved View Pager component to new Layout>Navigation category

  • Splitted Lego Mindstorms category into Lego Mindstorms>Lego EV3 and Lego Mindstorms>Levo NXT

  • Splitted Monetization category into Monetization>General and Monetization>Advertising

New Events

Screen

  • Got Received Shared: triggered when shared content is received
    image|313x104

User Interface

  • Checkbox component

    • Click: triggered only when an user interacts with a checkbox
      image|276x96
  • Slider component

    • Touch Down: triggered when an user touches the slider
      image|236x74
    • Touch Up: triggered when an user releases the slider
      image|221x78

Media

  • ExoPlayer component
    • Completed: triggered when the track finishes reaches the end
      image|257x77

Social

  • Push Notifications component
    • Send Message Done: triggered when the message has been successfully sent
      image|381x105

Connectivity

  • Download component
    • On Download Progress Changed: triggered when the progress of a download changes
      image|400x98

Google

  • Firebase Authentication component

    • Got Id Token: triggered when Firebase gets the ID Token
      image|362x111
    • Reset Password Email Done: raised once the email to reset password has been sent
      image|476x103
  • YouTube Player component

    • Initialized: triggered when the component has been loaded and it's ready
      image|283x84

New Methods

User Interface

  • Snackbar component
    • Is Shown: returns true when the snackbar is on the Screen
      image|239x46

Layout>Navigation

  • View Pager component
    • Remove All Tabs: deletes all created tabs
      image|296x45

Social

  • Push Notifications component
    • Send Message: sends a push notification to the subscribed users
      image|340x121

Utilities

  • Device Tools component
    • Is Adb Debugging Enabled: returns true when the ADB debugging mode is active Thanks to @Cian for this block
      image|378x47
    • Is Emulator: returns true when the app is running in an emulator
      Thanks to @Cian for this block
      image|278x44
    • Is Installed From Play Store: returns true when the app was installed from Google Play Store
      Thanks to @Cian for this block
      image|388x48
    • Has Dangerous Apk Installed: returns true when the user has apps like Lucky Pather or Xposed Installer
      Thanks to @Cian for this block
      image|388x50

Dynamic Components

  • Dynamic Button component

    • Delete Button: deletes the given generated button
      image|297x68
  • Dynamic Label component

    • Delete Label: deletes the given generated label
      image|294x70
  • Dynamic Textbox component

    • Delete Textbox: deletes the given generated textbox
      image|340x68

Google

  • Firebase Authentication component

    • Get Id Token: retreives from Firebase the id for the current user
      image|347x45
    • Phone Number Sign In: authenticates the user using the given phone number sending an OTP code
      image|421x70
    • Send Reset Password Email: sends an email to the user to change the password
      image|458x72
    • Update Phone Number: changes the user's phone number
      image|421x74
    • Verify Email: sends a confirmation email to verify user's email address
      image|340x47
    • Verify Phone Code: checks if the given OTP code is valid
      image|394x66
  • Firebase Remote Config component

    • Get Boolean: returns a boolean value from Firebase
      image|379x75
  • Google Maps component

    • Add Polyline: inserts a polyline in the map and returns its id
      image|301x117
    • Get All Polyline Ids: returns all available polyline ids on the map
      image|328x45
    • Get Points From Json: returns an object containing all points in a JSON string, which can be used in polylines
      image|356x65
    • Remove Polyline: deletes the given polyline from the map and returns true if it has been removed properly
      image|329x75
    • Update Polyline: updates the given parameter (property Name) to the given value (points) in a polyline, such as points, width and color
      image|306x122

Experimental

  • Shell component
    • Is System User: returns true when phone has enabled system user permissions
      Thanks to @Cian for this block
      image|244x40
    • Has Super User Apk Installed: returns true when phone has installed super user apps, even if it is not rooted
      Thanks to @Cian for this block
      image|340x45

New Properties

Screen

  • Drawer Arrow Icon Color: sets the color of the drawer's arrow
    image|375x47

  • Navigation Icon Color: sets the color of the drawer's icon
    image|351x46

  • Options Menu Icon Color: sets the color of the option's menu icon
    image|373x43

  • Receive Shared Files: allow receiving a type of files
    Enabling this feature, your app will appear in the "Share To" menu when sharing this kind of content
    image|281x156

User Interface

  • Floating Action Button component
    • Call Fab Click Event When Label Clicked: enables triggering the click event when clicking on the message
      image|342x60
    • Call Fab Click Event When Label Long Clicked: enables triggering the click event when long-clicking on the message
      image|331x62
    • Hide Label When Clicked: enables hidding the message when clicking on it
      image|332x39
    • Hide Label When Long Clicked: enables hidding the message when long-clicking on it
      image|335x43
    • Show Label On Left Side: shows the text message to the left of the FAB
      image|345x41
    • Label Background Color: sets the background color of the text message
      image|347x79
    • Label Corner Radius: sets the corner radius of the text message
      image|345x80
    • Label Text: enables and sets the text of the FAB's text message
      image|348x73
    • Label Text Color: sets the text color of the text message
      image|347x72

Layout>General

  • Card View component
    • Stroke Color: changes the stroke's color of the card
      image|272x66
    • Stroke Width: changes the stroke's width of the card
      image|272x59

Utilities

  • Device Tools component
    • Get Device Id: returns the Android ID of the device Thanks to @Cian for this block image|282x51

Monetization

  • Admob Interstitial component

    • Interstitial Commission: specifies which ad network will be used to take the commission
      image|270x62
  • Amazon Interstitial component

    • Interstitial Commission: specifies which ad network will be used to take the commission
      image|270x62
  • Facebook Interstitial component

    • Interstitial Commission: specifies which ad network will be used to take the commission
      image|270x62
  • Leadbolt component

    • Interstitial Commission: specifies which ad network will be used to take the commission
      image|270x62
    • Rewarded Video Commission: specifies which ad network will be used to take the commission
      image|272x62

Deprecated Blocks

Monetization>General

  • In App Billing component
    • Initialize: with the new library, it is no longer needed
      image|332x124
    • Update Subscription: with the new library, there is no function associated to it
      image|428x81

Bugs Fixed

  • Fixed security issue with extensions
    Some malicious extensions were found by some users. These extensions were distributed as "remove commission from Kodular", when they actually took 100% to the extension's developer. Apps containing this kind of extensions will fail to build.

  • Reduced by 0.2MB the APK Size

  • Only Companion should ask for write permission on start

  • Improved Crashlytics performance

 

  • Updated Play Services libraries

  • Updated Cloudinary library

  • Updated OneSignal library

  • Updated Facebook Ads libraries
    Currently using latest version (5.4.1)

  • Updated StartApp library

 

  • Fixed Navigation Bar show/hide visibility bug

  • Fixed In App Billing component; it was not working

  • Fixed Notifer component which had some Null Pointer Exceptions

  • ExoPlayer component supports now loading sources from external card

  • ExoPlayer component supports now loading sources from internal app data folder
    /storage/emulated/0/Android/data/YOUR_PACKAGE_NAME/cache/YOURFILE

  • Fixed ExoPlayer when playing something from Audio Picker selection

  • Fixed ExoPlayer component which crashed with Loop

  • Fixed ExoPlayer issue related to sound on start

  • Fixed Image component which was not asking for Read Storage permissions

  • Fixed YouTube Player issue which was not able to play videos instantly after loading them

  • Removed not needed libraries for Google Account Picker component

  • Lots of minor bugs have been fixed, improving performance

 

1.4.1 Eagle | 25 August 2019

Major Changes

  • Commissions have been lowered down a lot for a better earning rate
    Use this app to check your current commission

  • Reduced APK size when using ad networks without native commissions
    We now use Unity Ads by default, so lots of libraries have been removed

New Methods

  • Dynamic Button component
  • Get Button By Id: returns the view containing the generated dynamic button image|429x81

  • Dynamic Card View component

  • Get Card View By Id: returns the view containing the generated dynamic cardview image|498x80

  • Dynamic Image component

  • Get Image By Id: returns the view containing the generated dynamic image image|425x83

  • Dynamic Label component

  • Get Label By Id: returns the view containing the generated dynamic label image|408x78

  • Dynamic Space component

  • Get Space By Id: returns the view containing the generated dynamic space image|426x81

  • Dynamic Text Box component

  • Get Text Box By Id: returns the view containing the generated dynamic textbox image|448x81

Bugs Fixed

  • Card View stroke has been set to 0 by default

  • Share-to-own-app should only appear once on share menu

  • ArchTaskExecutor not found error has been solved

  • Facebook Rewarded Video reports getCommission on a null object reference is now fixed

  • Unity Interstitial commission was wrongly set to a higher value than real one

  • Bug in the new Commission System has been solved

  • Bug in Admob Banner which prevented them from loading is now solved

  • ExoPlayer problems with Status Changed event and status methods have been mitigated

  • Apps crashing randomly due to java.lang.RuntimeException: Unable to start activity ComponentInfo is now resolved

  • Surface View error related with face recognition reporting wrong results is fixed

  • ExoPlayer ask for permission bug has been solved

  • Player does not need permission to read internal files, so we removed it

  • WebView (and YouTube, as it's a webview) did not work properly on Android 9
    :appinventor: Fix from MIT App Inventor Team

  • Solved issue which prevented doing right-click in inputs to copy/paste text

  • File uploads were working incorrectly in Firefox

  • The import template option has been temporarily removed You will hear more about this soon

  • Hungarian language did not have translated blocks, even though they were translated

  • The Device Id block in Device Utilities component was not returning any value

 

1.4.2 Eagle | 22 September 2019

Major Changes

  • Improved Blockly performance
    We've tweaked the way Blockly compiles, so your blocks will now load and run faster

  • Treated com.appybuilder.email.app_name as default package for commission
    This keeps commission at 0% when using the equivalent AppyBuilder package name

New Blocks

New Events

  • Added Got Value event to Push Notifications
    image|380x116

New Events

  • Added Get Value method to Push Notifications
    image|372x106

Bug Fixes