My First extension - Binary converter

Wow, I really like that extension,
Thank you for making that extension @Kumaraswamy.
Good Work :grin: :+1:


Good start Xoma


Thanks, see what's coming next in next 7 mins!

1 Like

Excellent start! Let me tell you, if at 12 years old you are doing this, you are up to big things in the future!
Keep going! :+1:
As a challenge, try to build an extension for something people need and App Inventor can't do with simple built in blocks.


Thanks, I will am trying to make an extension that can convert binary to string and back again. :relaxed:


I am trying to create converter extension which can convert binary to string and back again with other conversions like octal. Do you need this in the same extension or separate?

  • Same
  • Separate
  • Don't care

0 voters

Is this a question? Or you joking sorry but what if app inventor was made different website for designer and different for blocks? Sorry but it does not make any sense

as Italo already said

try to build an extension for something people need and App Inventor can't do with simple built in blocks.

see also the already available convert number block

PS: please also do not mix your different threads... I moved your last post into the correct thread, which is this one... thank you...


I am trying to create conversions between STRING and BINARY by there is no block or that...

taken from here MIT App Inventor Math Blocks

can you provide an example of that string, which you like to convert into binary?
PS: please keep the discussion in the community rather than sending my a PM... thank you...

1 Like

AI2 lacks a string to byte list converter for use by people coding for data communication.
Likewise for the opposite direction: byte list to string.


Interesting idea.
Unfortunately byte[] can't be returned from a method in app inventor but we have list as workaround.

By byte list, I am referring to the Bluetooth data streams typified in this Ble block from

  • BytesReceived – The BytesReceived event is run when one or more byte values are received from a connected Bluetooth device. Depending on the sign parameter of the last call to ReadBytes or RegisterForBytes for the given serviceUuid and characteristicUuid , the byteValues list will contain numbers ranging from -128 to 127 ( signed = true ) or 0 to 255 ( signed = false ). Parameters :
    • serviceUuid ( text ) — The unique identifier of the service passed in the read or register call.
    • characteristicUuid ( text ) — The unique identifier of the characteristic in the read or register call.
    • byteValues ( list ) — A list of values read from the device. The range of each value will depend on the sign flag previously specified in the call to read or register.

when BluetoothLE1 BytesReceived serviceUuid characteristicUuid byteValues do


Update 2.0

  • Added ability to convert text to binary & back again.

Thanks to @Italo for encouraging me, I didn't want to do it as it was a little difficult.


His encouragement helped :slightly_smiling_face:


component_method (11)

  • Convert Text to binary code.

component_event (3)

  • Triggered when conversion is completed.


component_method (12)

  • Converts back Binary to regular text.

component_event (4)

  • Triggered when conversion is completed into text.


Google Drive - ZIP file

Direct download - BinaryTool (6.8 KB)

Binary Tool AI2 Extension by Xoma (Kumaraswamy) is licensed under CC BY-ND 4.0

(My friend will scold me if the dint't provide link to license. :grimacing:)

Any suggestions or improvements are appreciated!

Thanks :slightly_smiling_face:


Suggestion: Add a when Error occurred event. It is better than throwing a YailRuntimeError for that.

1 Like

Hey, thanks for the suggestion, but do you know how to do it? I am still learning..
Also why you got that error?

For fast operations like this with one input and one output,
it would be more convenient to offer a block with input and output ports,
like a math block.

Also, offer sample input annd output examples in your tool tip docs.

1 Like

I didn't understand these lines..?

What @ABG mean is you shouldn't use void, instead you should return something directly.

I don't have any error. I am just suggesting. Use a try-catch statement to catch the exception error, and use an event block to handle it.


@SimpleEvent(description = "Raises when error occurred.")
    public void ErrorOccurred(String error) {
        EventDispatcher.dispatchEvent(this, "ErrorOccurred", error);

@SimpleFunction(description = "Integer addition")
    public int Addition(int a, int b){
        try {
              return a + b;
        } catch (Exception e) {
              return 0;
1 Like

Its throws and error that "catch" without "try"... But the code is all correct