Skip to content

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 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

 

1.4B.0 Eagle | 03 January 2020

Major Changes

UI Changes

Companion Changes

New Components

Palette components

  • New Custom Progress component in User Interface. Screen Shot 2019-12-24 at 00.07.54|250x148

  • New Grid View component in Layout > General. Screen Shot 2019-12-24 at 00.12.05|250x148

  • New Gallery View component in Layout > Views. Screen Shot 2019-12-24 at 00.09.56|250x148

  • New Hygrometer component in Sensors. Add environment sensors · mit-cml/appinventor-sources@f2554cf · GitHub Screen Shot 2019-12-24 at 00.15.16|250x168

  • New Battery Utilities component in Utilities. Screen Shot 2019-12-24 at 00.13.48|250x148

  • New Decoration component in Utilities. Screen Shot 2019-12-24 at 00.13.00|250x168

  • New Firebase Storage component in Google. Screen Shot 2019-12-24 at 00.15.44|250x128

Parity components

Parity components will not be available in the Palette and are meant only to support projects imported from AppyBuilder.

  • Spacer component.

  • Network Manager component.

  • Google Spreadsheet component.

  • Memory Info component.

New Events

User Interface

  • Web Viewer
    • New parameter “value” in the Web View String Change event of the Web Viewer component. This parameter returns the new WebViewString value, a change of which originally invoked the event. component_event|355x85

New Methods

User Interface

  • Button

    • New Set Animation Style method. Inserts an animated image inside the component. component_method|273x129
  • Date Picker

    • New Set Animation Style method. Inserts an animated image inside the component. component_method|311x129
  • Label

    • New Set Animation Style method. Inserts an animated image inside the component. component_method|265x129
  • List Picker

    • New Set Animation Style method. Inserts an animated image inside the component. component_method|302x129
  • Textbox

    • New Set Animation Style method. Inserts an animated image inside the component. component_method|289x129
  • Time Picker

    • New Set Animation Style method. Inserts an animated image inside the component. component_method|311x129

Media

  • Audio Picker

    • New Set Animation Style method. Inserts an animated image inside the component. component_method|315x129
  • Image Picker

    • New Set Animation Style method. Inserts an animated image inside the component. component_method|319x129
  • Video Picker

    • New Set Animation Style method. Inserts an animated image inside the component. component_method|315x129

Drawing and Animation

  • Canvas
    • New Draw Polygon method. Draws an n-sided polygon in the canvas. component_method|245x204

Social

  • Contact Picker

    • New Set Animation Style method. Inserts an animated image inside the component. component_method|330x129
  • Email Picker

    • New Set Animation Style method. Inserts an animated image inside the component. component_method|316x129
  • Phone Number Picker

    • New Set Animation Style method. Inserts an animated image inside the component. component_method|381x129

Connectivity

  • Network

    • New Is Wifi Connection method. Returns true if the device is currently connected to WiFi, false otherwise. component_method|275x26

    • New Is Mobile Connection method. Returns true if the device is connected to a mobile network, false otherwise. component_method|291x26

    • New Is Fast Connection method. Returns true if the current connection speed is greater than 400kb/s. component_method|279x26

    • New Is Roaming method. Returns true if using roaming; false otherwise. component_method|231x26

New Properties

User Interface

  • Notifier
    • New Linkify property. Allows disabling auto-hyperlinking of URLs and phone numbers. blocks|239x30 component_set_get|179x26, 100%

Drawing and Animation

Maps

Connectivity

Monetization > Advertising

  • Unity Ads Interstitial
    • New Placement ID property Allows for Rewarded Videos to be placed in Unity Ads. Screen Shot 2019-12-24 at 00.06.20|295x66

Sensors

Bugs Fixed

  • Issue with Status and Navigation Bar dark icons. Status Bar dark icons and Navigation Bar dark icons can now be set simultaneously.

  • Inability to enter negative and decimal numbers. The TextBox and Notifier components now accept negative and decimal numeric inputs.

  • Issue with Background Color of Card Views. Updates to backgrounds of Card View components now reflect correctly in the display.

  • Issue with File Upload Cancel event in the Web Viewer component. Apps no longer crash when this event is invoked.

  • Lottie animations do not load. The Lottie library has been updated and animations now load as expected.

  • Issue with AES 128 and AES 256 algorithms in the Cryptography component. The algorithms now return the correct encodings regardless of the length of keys used.

  • Issue with MD5 algorithm in the Cryptography component. The MD5 algorithm has been updated and now reports the correct encoding.

  • Issue with Arduino icon in Knight and Bliss themes. The icon has been updated and now better reflects the original Arduino logo.

  • Failure to invoke the Download Progress event in the Download component. The Download component now correctly reports the progress of the download.

  • AdColony library version. The component’s library has been updated to its latest version.

  • Issue with Facebook ads and Monetization approval. All apps using Facebook ads now require approval before they can be monetized.

  • Issue with exposed API keys. The exposed API keys concerned have been removed, and the Google Play Store should no longer show API key warnings on apps made with Kodular.

  • Fabric deprecation. Fabric libraries have been removed from Kodular apps. Kodular apps are now smaller in size.

  • MIT Security vulnerability. A security hole in the MIT App Inventor system has been patched up; more details will be published soon.

  • Issue with Android Oreo Web Viewer layout size. The Web Viewer now loads with the correct sizing even after the first refresh.

1.4B.1 Eagle | 04 January 2020

Major Changes

  • Changed some links pointing to old Kodular Account They now point to My Kodular

Companion Changes

  • Added new launcher icon It now sports a fancier icon in your mobile desktop

  • Fixed ads removal purchase which were not flagged as one-time We have refunded all purchases; you can buy them again

New Events

  • Firebase Storage component
    • Upload Success: added new download Url parameter

New Methods

  • Cryptography component
    • Generate AES 128 Key: creates a random secure key to use with AES-128  
    • Generate AES 256 Key: creates a random secure key to use with AES-256

Bugs Fixed

  • Fixed naming components on their creation

  • Fixed issue with Performance mode and Blocks editor

  • Fixed adaptative icons crashing using the Task Description block

  • Fixed animation issue in Button-based components and Progress Bar component

  • Fixed NullPointerException in Card View component

  • Fixed In-App Purchases component which was not making one-time purchases

1.4C.0 Eagle | 22 March 2020

Major Changes

Companion Changes

New Components

New Methods

Storage

  • SQLite component

    • New Display Tables method.
      Retrieves the list of tables' names in the database.
      component_method|243x26

    • New Drop Table method.
      Removes the given table from the database.
      component_method (1)|227x50

    • New SQL Query method.
      Executes the given raw SQL query and returns result synchronously (same block).
      component_method (2)|229x50

New Properties

Storage

  • SQLite component
    • New Rows Affected property.
      Returns the number of rows affected by the most recent operation.
      component_set_get|232x26

Bugs Fixed

1.4C.1 Eagle | 05 April 2020

Bugs Fixed

  • Fixed Image picture loading issue related with a delay of some seconds

  • Fixed Dynamic Image picture loading issue related with a delay of some seconds

  • Fixed Camera component causing some errors

  • Fixed Pollfish test mode in Companion

  • Fixed Firebase Auth login problem

  • Fixed Sound Recorder path option

  • Fixed some issues related to custom package names

  • Updated AdColony library to latest version

1.4C.2 Eagle | 15 May 2020

1.4C.3 Eagle | 22 May 2020

Bugs Fixed

  • Upgrade Pollfish library

  • Moved JSON Utils to Internal category

  • Fixed some Blockly issues

  • Fixed Card View component

  • Fixed extension import dialog bugs with Knight theme

1.4C.4 Eagle | 24 May 2020

apps.new

1.4C.5 Eagle | 03 August 2020

Major Changes

  • Added Target SDK 29 Android 10

  • Updated QR Scanner layout

New Components

  • Added Unity Ads Banner component

New Methods

  • New Get Entries method to TinyDB
    component_method|232x25

Bugs fixed

  • Fixed some minor bugs

1.4D.0 Eagle | 30 August 2020

Major Changes

  • Introducing Android App Bundles.
    You can now export your Kodular projects as AAB files to distribute them through Play Store.

  • Introducing kodular.app links.
    When you export an app, you will get a kodular.app/ABC-XYZ link which you can use to download your built project.

  • Added App Center integration.
    We have integrated the App Center library that collects fully anonymized analytics to better understand apps usage. It will also collect crashes to report them into our system, so we can fix them.
    You don't need to add any extra section to your privacy policy. It fully complies with GDPR by not collecting any personal data.

New Components

Bugs Fixed

1.4D.1 Eagle | 04 September 2020

Bugs Fixed

  • Fixed package name validator, causing some packages to be flagged as invalid

  • Fixed some extensions to cause build failures

  • Some other minor bugs addressed


Last update: June 29, 2021