Pre-sale questions

Kevin

Well-Known Member
Licensed User
Longtime User
I've been programming in BASIC for about 25 years (VB for about 18) and have been looking for something like Basic4Android ever since I got my HTC EVO last October. I've installed the Android SDK and Eclipse, but I'm just not understanding it. While I could probably adapt to Java, I hate to admit it, but I can't even figure out how to get started with much of anything in Eclipse! :confused:

I'll likely be purchasing a 2-year license for B4A in the very near future but I have some questions first:

1) How does Basic4android work exactly? Does it "convert" the BASIC-like code to actual java, just as if it had been written in Java from scratch?

If so, is there a way for me to view that Java code after it has been converted (in case I ever wanted to tweak it or just see how it is done)?

If not, how does it generate an app that runs on Android? Are they 'slower' than a normal app? Are they larger? Can the end-user tell the difference? What exactly is the app written in or how does it work without requiring extra libraries, etc?

2) Do apps generated with B4A require ONLY the permissions that it actually uses, or are certain features/functions somehow lumped together in a way that can cause an app to require permissions that the app doesn't even really need/use? I don't know if I will ever publish an app on the market, but if I do, I certainly don't want it requiring permissions that it doesn't need.

3) I realize that there are some limitations in what this can do (though it already seems MUCH better than Google App Inventor, which I played with about a week ago). What are some of the bigger limitations and are there any plans to support them in the future? For example, creating widgets.

4) Does the HTTP library allow me to send, receive and view cookies in the header?

5) If I get a 2-year license and a "version 2" comes out within 2 years, is that a free upgrade for me, or would it require me to purchase the new version, presumably at a discount?


Sorry for the questions but I didn't really see these answered yet (at least not where I was looking here). I really am impressed with this so far. About 10 minutes before I stumbled on it in a Google search, I was even thinking that if I knew how to create Android apps (write all the code from scratch) that this would be an excellent project for me (an "app inventor" or B4A type program). Unfortunately....... I don't know much of anything about writing Android apps. But I do know VB and VBA pretty well, and it seems like B4A is the "bridge" I am looking for to help me create apps for Android.

Thanks,
Kevin
 
Last edited:

Erel

B4X founder
Staff member
Licensed User
Longtime User
1) Basic4android converts the code to Java and then compiles it with the Java compiler. In most cases you will get the same performance as a Java written application.
The Java files are available under <project folder>\Objects.
The compiled code size depends on the referenced libraries and your code.

2) You can see the permissions related to each type in the documentation. Example: Basic4android - HTTP
These permissions are added to your application when you declare a variable of that type.

3) Widgets are not supported for now. I believe that they will be supported in the future. Using the external libraries mechanism new features are added daily.

4) The HTTP library handles cookies automatically. You can view the headers received from the server, including the cookies.

5) You will receive all upgrades for free, including major versions.
 
Upvote 0

Kevin

Well-Known Member
Licensed User
Longtime User
Thanks for the answers. So I'm curious why an app made in B4A would be slower (even if marginally) than one written directly in Java? If I had to take a complete uneducated guess, does it use common or generic java procedures or functions which are then 'called' from the procedures we write in "basic"? I suppose that might cause some slight slow-downs. Either way, I think I'm sold. :D
 
Upvote 0

Erel

B4X founder
Staff member
Licensed User
Longtime User
Thanks for the answers. So I'm curious why an app made in B4A would be slower (even if marginally) than one written directly in Java? If I had to take a complete uneducated guess, does it use common or generic java procedures or functions which are then 'called' from the procedures we write in "basic"? I suppose that might cause some slight slow-downs. Either way, I think I'm sold.

Most programs will run at the exact same speed.
In many cases a Basic4android program will even run faster than a Java program as Basic4android has a very good and simple support for running time consuming tasks in the background (used by HTTP, Network, AsyncStreams and other libraries).

BTW, Java generics do not affect performance at all.

I came across this in a search, and was wondering if this is somehow used in B4A?
No.
 
Upvote 0
Top