2014-09-22 23:25:44

Hello Everyone.
Well I just recently picked up purebasic and am slowly learning the language. I like it a lot especially how accessible the ide is. I was wondering if it is possible to develop apps for android with purebasic? It says on the website that it works for windows, mac, and linux and some other os I've never heard of but it doesn't say anything about android. I googled it and found something called android basic but there wasn't much information about it.
Also I've noticed that android uses java so do I need to learn java to write apps in android? And another thing I found a development kit for android android sdk but then I found android studio which says it's still in beta. So which one do I use to create android apps? Is one more accessible then the other?
If it is possible to use purebasic I would prefer that to having to learn a whole new language. Also someday in the future I would like to write a game engine that I can use to build software for android and windows. Besides changing the interface for a touch screen what else would I have to do?
Thanks in advance.

Guitarman.
What has been created in the laws of nature holds true in the laws of magic as well. Where there is light, there is darkness,  and where there is life, there is also death.
Aerodyne: first of the wizard order

2014-09-22 23:44:10

Guitarman,
I'm just wondering, is PB your first language? I've looked at docs but will probably stick to learning BGT for the basics for now. Like you, I'd love to develop for iOS, Mac, you name it. And a PB gaming language like BGT? That'd be so good.

2014-09-23 03:30:19

Hi, saddly pure basic can't develop games for android. I think its a really grate language though as i've stated and shown by my games.

Check out the new reality software site. http://realitysoftware.noip.us

2014-09-23 05:47:09

Hi.
@Orin, no this isn't my first language I've worked in python and tried bgt a couple of times I also played around with perl but didn't like it at all. It would be awesome to make a full-featured game engine with an ide and things like that. If I ever do get around to it I have already decided it will be free. Well good luck learning bgt I played your memory train game and it was good. Keep going we need as many game developers as we can get.
@Danny, well I figured that purebasic wasn't on android since it's not mentioned on the website but I just wanted to be sure. Do you have any idea what language I could use that runs on windows and android? And please don't say python I've had it with that language.

Guitarman.
What has been created in the laws of nature holds true in the laws of magic as well. Where there is light, there is darkness,  and where there is life, there is also death.
Aerodyne: first of the wizard order

2014-10-08 11:25:12

It is impossible to make a game which works on Windows and Android without changes.
To code for Android, Java is the language, but using Android SDK.
The IDE is Eclipse with ADT Plugin which extends the capabilities of Eclipse.

Everything you need for programming for Android can be found here:
http://developer.android.com/tools/sdk/eclipse-adt.html

Eclipse is accessible, Android Studio isn't and is still in beta. I know that Android Studio won't be accessible soon, but, fortunately they used first Eclipse as IDE.

I started programming for Android and it is not so easy, of course BGT is better to start coding.

Emanuel Boboiu
Errare humanum est, sed perseverare... diabolicum.
For other Audio Games and programs, visit www.scripts.pontes.ro!

2014-10-08 15:41:11

It's java or nothing, basically.  I have a lot of problems with java, but being hard to learn is not one of them.  The other option--using JNI via C++--is wildly impractical for a huge number of reasons, and they don't include C++.  Getting other languages to run on it is not worth the trouble.  You can, but most are conceptually harder than java.  I'm assuming language power is not a question here-Java is intrinsically less powerful, but anyone who has done BGT can probably pick it up in an afternoon.  The harder part is learning the audio libraries-you don't have the ones from BGT, as it were.  They will let you do more, but you have to write the more, and that's not so easy.
As for development environment, it can be done from Eclipse.  You can also set up command line tools, but I don't know how to do this.  I know that a friend of mine who recently wrote an ebook reader found Eclipse to be worse than the command line tools, so your mileage may vary.  Working out the command line tools the first time might take a bit, but Eclipse has a lot of small accessibility bugs, at least in my experience.
And there's two things to remember.  First, 80% or so of blind people are on iOS.  This is because it's really that much better, over all.  You *can* be on android, but you're going to have to instal alternative apps for most things.  If the goal is getting to blind people on phones, doing iOS will let you ultimately get to a lot, lot more.  Secondly, phone app development is a whole different ball game.  It's not like Windows where you can write a 10-line test case.  You're going to have to write the entire framework of your app first, and then start coding your game.  You have no console, for example.  Debugging involves copying files to and from the phone.  Android is not an environment in which I'd like to learn programming, to put it quite simply.
And on a side note, I'm working on getting Libaudioverse running on it.  I don't have the JNI bindings, but I'm close to getting the C API to compile.

My Blog
Twitter: @ajhicks1992

2014-10-08 23:00:47

Hi.
@Camlorn, well I guess I'll have to learn java. I've noticed it is similar to bgt in some ways but then I also found something called rfo basic do you know anything about that? It looks fairly easy but I'm thinking it might be too good to be true.
I use both android and iOs so I would like to write apps for both if I could. The one big problem that I have with iOs is that it is not free to put your apps on the appstore and I want my games to be free. I know google doesn't charge so I was focusing on that a little bit more than iOs.
Obviously the interface is different I've looked at example android apps and it is interesting how different it is. I'm used to writing a program that checks if the keyboard or mouse has been pressed but with touch screens you have to check if a certain part of the screen has been touched which is a little strange for me. I'll have to work on learning java for now.
@Manu, I know you wrote some apps for simbeon. I've never used simbeon but how is writing games for that different than writing games for android?

Guitarman.
What has been created in the laws of nature holds true in the laws of magic as well. Where there is light, there is darkness,  and where there is life, there is also death.
Aerodyne: first of the wizard order

2014-10-08 23:51:44

What I don't understand is why people use BGT so much. Sure, BGT is nice for simple audio games, but what about if you want to get a little better and do things like 3D audio, advanced joystick support, very high-level library usage, and so much more? BGT isn't beginner friendly, and the tutorials are not as simple as they seem. PureBASIC's language is very simple and very beginner friendly, although the docs can be a pain to read. However, if you read books and learn from the code examples provided in said books or in the docs, it is relatively easy to learn. BGT uses object oriented programming, which, again, is hardly beginner friendly at all. It is also more C++ oriented than anything; the only thing it doesn't have is namespaces, generic programming and templates. And the auto keyword it doesn't ahve s well. BGT is completely crushed when PureBASIC enters the game. PB just completely outclasses, overpowers and outranks BGT in many diferent ways. One of these is no OOP. OOP actually can make someones life a hell of a lot harder than easier. Sure, classes are easy, but not using classes is more efficient than using them. Classes just make lives a lot harder because you have to learn things that you shouldn't have to learn, and the C++ reference manuals you find out there are wayyyyyyyyyyyyyyyyyyyyyy to much to hold on ones head. That's why other languages like Go, Java, Pascal, PB, and others are used: they are used because they are simpler and easy to hold in ones head to always remember; you can remember parts you need to remember and parts you need to forget. With C++ and all the other languages that are just as complicated as C++, you have to remember the entire reference manual in order to do anything.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2014-10-09 01:30:05

Camlorn, why do you thing iOS is better than Android? If we compare, let’s compare an iOS with a Nexus with Android 4.4. If you can do something better than me, or if you thing something is impossible on Android, but possible on iOS, I am curious...
Of course, sometime ago Android was less accessible. I can say this because I use also iPhone.
IPhone is of course a good phone for U.S.A., but they give fewer facilities than Android. For instance I cannot use a device with other voice than Eloquence, only if it is absolutely necessary.
I like programming, but I still want to use Windows, Mac isn't so cheap...

Emanuel Boboiu
Errare humanum est, sed perseverare... diabolicum.
For other Audio Games and programs, visit www.scripts.pontes.ro!

2014-10-09 02:10:32 (edited by camlorn 2014-10-10 04:44:38)

You may wish to look at ruby motion.  Ruby motion was working on Android support.  You can't share all the code, but you can maybe at least share the language.  This is not free, but it's possibly the least painful approach to iOS development.  I'm suspicious of anything with the word "basic" in its name.  "basic" usually means exactly what it says-programming language minus stuff to make it simpler but less expressive.  Java is at least as easy as BGT, possibly easier.  Just learn java.  If nothing else, it's a marketable skill and it's not that hard.
Edit: I'm putting this here because the rest is kind of off topic.  Let's see what I can find that talks about why android is bad.  O, I know, how about this: 30 days with Android?  Especially see day 18.  This is by someone who is very high up in Mozilla's accessibility department and who was involved in getting Firefox on Android.  Or this one, by a former Freedom Scientific employee Testing Android Accessibility: I Give Up.  And as for things I can do better than you?  Reliably turn on accessibility in the first place, select text, use my phone without installing an alternative web browser, home screen, ebook reader, and probably a few other things I don't know about, crash accessibility services by turning them on in the wrong order?  And that's not even getting into the bugs that exist in the core accessibility APIs that developers are supposed to use.  I do not count "install the 15 alternative apps", I do not count "but there's workarounds if you do x, y, and z."  But that's moot anyway-most blind people are on iOS, end of story.
And the rant about object oriented programming.  I have to address this, because it's wrong.  If we call this my opinion, we're going against the overwhelming majority, so please keep that in mind.
Upwards of 50 years of people getting it wrong and figuring out that we need something better should just be thrown out, too.  I mean, pointers are annoying, so let's get rid of memory allocation.  Passwords are annoying, so why not kill those too?  C++ is not object oriented programming.  C++ has problems, sure.  But having a hard-to-remember manual?  Not really-unlike many languages (say, java), there's a lot of consistency in it (i.e. every container that can support iteration is going to have a .begin and a .end, and every iterator looks and works the same).  Also, documentation for it is much, much better.
Object oriented programming is exactly three features, nothing more.  Classes: a method for grouping related functionality together in such a way that we can basically make multiple copies of it.  Inheritance: a method for saying that a dog is an animal and can do all the things animals do.  Polymorphism: the ability to treat dogs as animals in all places of the code wherein an animal is needed in such a way that the code has no idea it's a dog (all animals can move, for example).  You may implement this much with macros, but 99% of object oriented programming languages allow you to automatically run code when objects "die" and, in many cases, you don't even have to worry about when this happens.  They also typically offer other stuff that makes life easier--for example, interfaces.  Here's a pretty typical thing in C++, other languages like BGT and Java make the syntax much cleaner and the semantics much simpler, but I'm not set up to trivially test code in them and I don't know the syntaxes off the top of my head:

//this class represents tickable things.
//notice that we do not say what it means to tick.
Edit: This was slightly wrong. Ah the danger of contrived examples that need frameworks that don't exist to compile in the first place.  Constructors in C++ and every other language are usually named the same as the class.
class Tickable {
 public:
 Tickable() {
  registerTicker(this);
 }
 ~Tickable() {
  unregisterTicker(this);
 }
 virtual void tick() {
 }
};

class Thing: public Tickable {
 virtual void tick() {
  cout<<"Ticked!"<<endl;
 }
};

I leave the implementations of registerTicker and unregisterTicker as an exercise.  But any creation of any class that inherits from Ticker could now automatically begin ticking as needed.  If you then implemented a mainLoop function, you could create your ticking game objects and call it, and they'd all automatically just work.  In java and most other languages, the distinction between pointer, object, and reference to object is all gone-it's even simpler there and, for example, you'd not need to unregister.  The biggest point here from a practical standpoint is that you don't have to remember to unregister objects anymore-in a language with a GC, you needn't even remember to delete them.
For a really good concrete example of why object oriented programming is good, look at Diku: almost every function has at least 10 or so ch-> in it.  If nothing else, object oriented programming provides a very, very nice way to not have to put all the ch-> in.  Wrap them in a class and remove all of them, no problem.  The other benefits can come later when you understand why you want them.
Its pretty clear that you don't see why a bunch of stuff would be useful, and are consequently assuming that that means that they aren't.  Lack of understanding is not lack of use.  If I said that algebra was useless because I didn't understand it and then refused to even study it at all, I'd be missing out on a great deal.  Having conceptual difficulty with something is not the same as that something being pointless and, in this case, 90% of programmers will disagree with you.
But really, since at least 80% of programming languages are object oriented and since at least90% of them support it in some manner, I feel very justified when I say that you're wrong in the objective case.  Do you always need or want object oriented programming?  no.  But do you want to live without it, especially since 50% or so of problems are trivially cleaner when written using classes?  I doubt it.  Until you get it, you can just look at it as very helpful syntax for a very common task.
Object oriented programming is not C++.  I think that everyone agrees that C++ is really bad, in a way.  C++ and all the languages "like" c++ are two very different things-people realized this and most efforts these days end up with something much better.  I'm sorry C++ bit you, but it wasn't because it has classes.  It was probably because C++ is about 25 years old, is close to the machine, believes that it should never make programmers pay for features they don't want, and intentionally refuses to hide machine architecture.  You can program exactly as you do in PB in C++--no classes, no problem.
Assuming that you're not going to have to look at the manual is naive, however-anything capable of doing all the things you're talking about wanting to do is going to virtually require having the manuals open while you code.  You're not supposed to memorize them.  You're supposed to simply know the high-level picture (there's a package for linked lists) and when each piece might be useful (we're going to add stuff to this array all the time, that involves copying all the items, o, look linked lists).  You then go and figure out that part, with a careful thought to whether or not you're using too much of the language.  Or you bring in some external libraries if it's not there.  C++'s stdlib is actually pretty small: BGT's is bigger.  So is Go.  Java's is huge, probably the biggest of them all (Java gives you everything, and I mean it.  2 ways to do GUIs, sound, 3 or 4 ways to do network I/O, xml, adding other scripting languages...).
I'm going to close with this.  Suppose we have two languages.  One language doesn't have classes.  The other has classes, but it also has all the other things from the first.  These two languages can accomplish the same sorts of tasks.  While this can be taken too far, there's no reason why you wouldn't take the language that also has classes, especially since classes are a tool with a lot of uses.  If you can admit that C is more expressive and powerful than assembly, you are more than 75% to realizing that some languages are more expressive than others.  This is one of those cases, hands down.  There's no argument.

My Blog
Twitter: @ajhicks1992

2014-10-09 11:33:30

I will read of course about those 30 days, but I can say about what I do and I tried.
I read there shortly about wireless keyboard problems, I use sometimes such a keyboard, but last days I heard one of my colleagues about iPhone restarting when an Apple Bluetooth keyboard is attached, some bugs in iOS 8.
We can find arguments pro and contra for each think. Anyway, everybody will choose. It is important that we can choose and we have accessible choices. I don’t know where you from are, but 90% of phone users being with iPhone is too much for 75% of the world, it is very expensive, maybe for its software, because the hardware isn’t better than many other phones. In Romania, an iPhone 6 Plus has the price now about $1200.

Maybe I love Android because I can do games for it, for iPhone being almost impossible for me, they don't allow this easily. Of course Eloquence was the main reason to buy a Nexus, two days after Code Factory launched it.

I didn’t like Java when I started using it, it was a little different for me, especially when I saw that everything is object orientated, even the main() function being formally in a class.
After a while of accommodation, everything is ok, I like it and everything is possible.

Emanuel Boboiu
Errare humanum est, sed perseverare... diabolicum.
For other Audio Games and programs, visit www.scripts.pontes.ro!

2014-10-10 04:50:58 (edited by camlorn 2014-10-10 04:51:35)

Everything is possible, especially if you're willing to program and you're willing to go about finding a million alternatives and flipping between stuff all the time.  But the everything that's possible on an iPhone is a lot easier overall.  There are possibly a couple things on Android that are simpler, but my iPhone home screen and web browser just work from day one and all the buttons are labelled.  The developer APIs work as documented.  The phone powers on and gives me two ways to turn on Voiceover, and they work on all devices.
I understand about the price, however.  I have a friend who is in the same situation.  But I think it's important not to conflate "I can afford x" with "x is better".  If you want to find objective measures, I believe that Chris Hofstader did some.  I have been told that, among other places, the Android doesn't manage to pass Veterans Foundation accessibility requirements.
It comes down to this, though.  iOS doesn't require "a while of accommodation".  It just works.
I'm afraid I'm having trouble following your post and, consequently, can't reply to the rest of your points.  I have no problem with people developing for Android.  I'm not saying that I do.  I even understand why a blind person would get one.

My Blog
Twitter: @ajhicks1992

2014-10-13 00:59:11

Ok, maybe iPhone is better in some points, but consider you used first an iPhone and this is the main reason for being its supporter. My Nexus 5 has all the buttons labelled, it is right, I had to install Firefox to have a better browser, but using Windows we are accustomed to install third party applications. Maybe my point of view is one of those who doesn't like to have everything in the OS, I like to choose.
Anyway, these things are not so important. The most important thing is that we have possibilities, some years ago we didn't think touch screen will be accessible.
Many people have also iPhone here in Romania, but this is because iPhone was accessible before Android, my first HTC with Android 2.3 was a mess.
Last month I used an iPhone for some days, but I didn’t get accustomed with it because I was accustomed with Android before. Everything is relative.
I hope Apple will make in future an IDE for Windows, I haven’t enough time to learn to use an OS X. I think is easier for me to learn Objective C than getting accustomed with other keystrokes, other philosophy of operating on a computer.
Best regards and I can say: see you soon on android. Soon means maybe 2 or 3 years. Just a joke, but no totally a joke.
smile

Emanuel Boboiu
Errare humanum est, sed perseverare... diabolicum.
For other Audio Games and programs, visit www.scripts.pontes.ro!