In this edition of Ask a Developer we were lucky enough to get the chance to hear from developer Erel Uziel. Erel Uziel is the creator of the Android development environment Basic4Android that is the “simplest and most powerful Rapid Application Development (RAD) tool available for the Android platform.”
Can you give insight into how one builds the Android UI in the Basic4Android environment?
Building a UI that looks good on all devices is not as simple in Android due to the large range of screen sizes.
Basic4android includes several tools that help the developer with this task.
First, we have the WYSIWYG designer which allows the developer to see and modify the UI directly on the device or the emulator.
The second component is the “abstract designer”. It is useful for quickly testing the layout on different screen sizes.
The third component is a built-in script engine (yes, inside the visual designer). It allows the developer to write very simple scripts that take care of the different screen sizes.
The last component is our UI Cloud. The developer can click on a button and send the layout to a cloud made of real devices. After a few seconds the developers receives screenshots of his layout as it appears on each of the devices.
What are some advantages in using Basic4android over native development?
Developers will find a massive increase in their productivity due to:
- All the tools and libraries that they need in order to build an Android app.
- All of the best practices.
- The learning curve is much simpler.
What was your motivation for starting the Basic4Android project?
We realized that many developers are frustrated with the standard tools (Eclipse / IntelliJ) and they are looking for simpler tools that can help them to build their app.
There are many “wizards” or “app makers” available. They are good if you want to convert a site to a “semi-native” app. We were looking for something else. We were interested in a real tool for building real-world apps.
What is a real life example of someone using Basic4Andrid for quick development?
A team working for NASA has built a real-time processing app that connects to thousands of sensors in the lab and helps them with running and analyzing their experiments.
What were the advantages they found over native development?
They were engineers and researchers, not hard core programmers. They could not implement a similar solution with the standard Android development tools.
What is one of your favorite features of Basic4Android?
Well it is not really a feature but it is my favorite. The Basic4android community. There are amazing members there. Helping each other, creating libraries, finding bugs… We couldn’t have built Basic4android without them.
One IDE feature that we worked very hard to accomplish is the new rapid debugger. It allows the developer to run the app without re-installing it. Instead of waiting 10 – 30 seconds for the app to start, the app starts in 1-2 seconds. It also the only debugger available for Android that supports hot code swapping (edit and continue).
What are some of the features we can look forward to in a future version of Basic4Android?
We want to build a complete ecosystem. We have just released a new (free) development tool that is very similar to Basic4android, named B4J. It creates desktop apps. We want to add support for web apps and iOS apps.
What were some of the considerations that went into designing an IDE? What were some features that were more beneficial than originally expected? What was a feature that users really wanted that was eventually added?
Some of the components are mandatory. You must build a compiler, a decent code editor, debugger and so on.
A small tool that was very beneficial is the “manifest editor”. In Basic4android, the compiler is responsible for building the AndroidManifest.xml file. However, you also want to allow the developer to be able to customize it in some cases. For example if they need to integrate with a third party service. The manifest editor is a very simple script like language that allows the developer to modify the output of the compiler and affect the actual file.
What has been the most surprising user request during the development of Basic4Android?
Adding support for Windows Phone? Just kidding…
What is the process for building complex or custom UI components in Basic4Android?
Custom UI components can be either built in Java and added as a library or written as a B4A class. Usually they are made of a set of other UI elements with the help of some Canvas drawings.
What are some applications from the Basic4Android community that really highlight the potential? What are the current plans to increase the community engagement? What are some upcoming applications we should keep a look out for from the community?
There are many great applications in Google Play developed with Basic4android.
Mind Games for example was ranked #1 on Amazon and reached 4M downloads in Google Play.
B4A-Bridge which allows the developer to connect the IDE to the device over Wifi or Bluetooth is also written in Basic4android and is very popular.
You can see many other apps in the official Basic4Android forum.