9 ways to program for Android devices using Android devices

March 26th, 2012 | Categories: Android, just for fun, Mobile Mathematics, programming | Tags:

These days almost all of us are carrying around seriously capable little computers in the form of our mobile phones.  Although these devices have a similar amount of horsepower to supercomputers of old, most of us only use a fraction of their potential– after all, you don’t need a supercompter to send text messages, look at pictures of cats or throw birds at pigs.  I believe that the only way to fully unlock the true potential of these devices is to program them yourself.

From fully fledged applications to little snippets of code, I think that there’s something enormously satisfying about writing your own computer programs and it doesn’t have to be difficult to do so.  The following 9 apps will allow you to write programs for your Android mobile phone in a variety of languages including C, BASIC, Lisp and MATLAB m-code using only your Android phone. Although you’ll not be able to use them to write the next 3D blockbuster game, you will be able to solve some interesting problems, learn a trick or two and have a lot of fun.

C4droid – £0.95

With c4droid you get the ability to write, compile and run C and C++ programs using only your Android device.  That’s a lot of functionality for only 95p!

Out of the box C4droid only handles C programs, making use of a modified version of the Tiny C Compiler to do the compilation work.  The standard C library is provided by uClibc which is specially designed for use on embedded systems.

In order to run C++ programs you need to additionally install the free GCC plugin for C4droid — something that I personally haven’t done yet due to its large size.  One of the most common user-complaints appears to be ‘this app doens’t allow me to use iostream.h’ which essentially demonstrates that the installation instructions were not followed.  Since iostream.h is a C++ library, you’ll need to install and configure the GCC plugin to get access to it and full instructions on how to do this are given on c4droid’s Google Play page.

You only get access to the standard C library with C4droid which means that you can’t generate graphical output or interact with the phone’s hardware in any way (bluetooth, accelerometers, that sort of thing) but that doesn’t stop this from being an impressive piece of work.  Also, for an extra 95p you can run pascal programs using the Pascal plugin for C4droid.

C4droid is a superb app that will be invaluable for anyone learning C,C++ or Pascal or for those of us that simply like to fiddle about with these languages on the go.

Mintoris Basic – £3.77

At the risk of showing my age, I’ll tell you that I first learned how to program in BASIC (Beginners All-Purpose Symbolic Instruction Code) on the Sinclair ZX Spectrum and so I will always have a fondness for the language.  Mintoris Basic is a very fully featured implementation of the BASIC programming language and is significantly more powerful than the implementation I cut my teeth on back in the day.

As well as having all of the stuff you’d expect in a BASIC implementation (loops, strings, variables, functions, decisions, graphics etc), Mintoris also allows you to interact with some of your phone’s hardware including Bluetooth, battery level, GPS, and various sensors.  Furthermore, you can attach your programs to shortcuts and launch them from your home screens.  The level of functionality is so high that you can write some rather nifty apps with relatively little effort.

Frink – Free

Frink is a great language developed by Alan Eliasen that has been around since 2001.  Named after Professor Frink from The Simpsons, Frink runs on almost every device you can possibly imagine and has some very interesting features including interval arithmetic, tracking of units of measure throughout calculations, arbitrary precision numbers, regular expressions and graphics.

RFO BASIC! + SQL – Free

This implementation of BASIC is completely free and is described as a labour of love by the author, Paul Laughton.  Paul is my kind of geek since he is the curator of The Dr. Richard Feynman Observatory and author of Atari Basic and Apple DOS 3.1 among other things.

The feature list of RFO BASIC is impressive and includes Graphics (with Multi-touch), SQL, GPS, Device Sensors, Camera and loads more.  There’s a great forum with lots of very engaged developers who are writing some very nice programs.

There are two ways to deploy your programs–either as scripts that require RFO BASIC to be installed or as compiled,standalone programs that can even be added to Google Play (formerly known as the Android Market’).

Addi and Mathmatiz – Free

These are two MATLAB clones for Android.  I’ve mentioned Addi before and they have both been covered over at Alasdair’s Musings so I won’t go into detail here other than to say that they are very cool!  Linear algebra, scripting and plotting on your phone!

tiny Lisp ISLisproid

Lisp is a very old programming language which first saw the light of day in 1958!  According to wikipedia, the only langauge older than Lisp that is still in common use is Fortran! With this app you can play with the language of the ancients on your super-modern smartphone.  This is a no-frills app..essentially little more than a command line shell and list interpreter but that is perhaps as it should be.

MathStudio – £12.99

I’ve been using MathStudio (formerly SpaceTime Mathematics) for quite a few years now on various operating systems and it’s great to finally have it on Android.  MathStudio is a fully featured computer algebra system for your mobile phone– think mini Mathematica or Maple and you are thinking along the right lines.  With this app you can write scripts that make use of advanced mathematical features,  2D and 3D graphics, animations and interactive demonstrations.

SigmaScript – Free

SigmaScript is a free implementatuion of the Lua scripting language for Android devices developed by Logimath.  You get an editor, scripting engine, small console output and a few simple code examples.  No graphics or anything fancy but a very nice way to play with an interesting language.

  1. March 26th, 2012 at 16:21
    Reply | Quote | #1

    Ahhh BASIC. *sniff_of_nostalgia* – my first language as well. Back in the days when one could write a GOTO statement without blushing.

  2. Paulo Candeias
    March 29th, 2012 at 09:49
    Reply | Quote | #2

    Although I have no experience with it, I suggest looking at the Scripting Layer for Android (SL4A) available at:

    http://code.google.com/p/android-scripting/

  3. Michael Haseth
    April 11th, 2012 at 04:50
    Reply | Quote | #3

    You should include AIDE, its a full java development program that can read straight from Eclipse projects and even build the APK and install it right n your device!

  4. April 11th, 2012 at 11:03
    Reply | Quote | #4

    Thanks for that.

  5. Leopoldo
    May 7th, 2012 at 20:20
    Reply | Quote | #5

    And What about Python. Is it fully functional on android?

  6. May 8th, 2012 at 09:23
    Reply | Quote | #6

    There is something called MathScript. Closest thing to full Python I have found on Android

    https://play.google.com/store/apps/details?id=com.funmath.mathscript&hl=en

  7. Leopoldo
    May 16th, 2012 at 18:08
    Reply | Quote | #7

    I was surpised to find that Python is not easily accesible in my new android phone. My old Nokia have a PyS60 that is not a complete Python but let me to do something.
    I think that the best way to use the phone for python programing is by installing Ubuntu for Android.
    Thanks for your great blog!

  8. Roger Stokes
    May 29th, 2012 at 09:34
    Reply | Quote | #8

    The J programming language is now available on Android.
    For more information about J: http://www.jsoftware.com
    For J on android: https://github.com/mdykman/jconsole_for_android/tree/master/dist

  9. Roger Stokes
    May 29th, 2012 at 12:35
    Reply | Quote | #9

    Forgot to mention : J software is free

  10. May 29th, 2012 at 13:24

    Thanks Roger…looks great :)

  11. Leopoldo
    June 11th, 2012 at 18:29

    The most close to Python in Android is: SL4A
    http://code.google.com/p/android-scripting/

    That let you to install a Python interpreter:
    http://code.google.com/p/python-for-android/

  12. ward Christensen
    November 18th, 2012 at 15:05

    Thanks for a wonderful resource site! …and great feedback!

    Has anyone found a discussion site for C4Droid?

    I see nothing on Google, just refs to the play store.

    Thanks / Ward C / inentor of Xmodem & BBSs

  13. Ntandoza
    March 17th, 2013 at 06:45

    just got C4droid its amazing.

  14. ben
    April 6th, 2013 at 12:06

    if you mentioned matlab you can also mentioned Labview for android..

  15. emmm
    September 14th, 2013 at 08:07

    MaximaOnAndroid is free.
    It is the implementación for Android of the Maxima CAS system.
    ———————-

  16. 4ntoine
    February 21st, 2014 at 13:01

    c4droid is paid. I’d recommend CppDroid – free C/C++ IDE and compiler on Android. It has a lot of included C/C++ examples and tutorials. YoutTube: https://www.youtube.com/watch?v=4T5qNP6xJ6Y, Blog: http://cppdroid.blogspot.com, Google Play: https://play.google.com/store/apps/details?id=name.antonsmirnov.android.cppdroid

  17. Jory
    May 5th, 2014 at 02:50

    @Leopoldo
    Try the Qpython app. Supports full python
    from what I can tell.

  18. grummbunger
    June 12th, 2014 at 20:40

    just wasted a bunch of time with sl4a and py4a. they are not ready yet, still can not draw a line, can not do opengl and therefore no ability to creat a gesture input. I got in via php searching to a old obsolite search of run php on android, turns out they have given up on php support. (main sl4a site does not say php in its list but still can get the php interpreter) it was interesting, and a great thing for running scripts, but to make a program output must include at the very least ability to make an pixel, otherwise I think it a false claim to say you can make a complete program. back to c, I can deal with lack of documentatin here.

  19. Anonymous
    July 18th, 2016 at 06:26

    @Jory
    And qPython comes in 2.7.xxx and 3.xxx.xxx versions. I would recommend just learning Python 3 what ever the newest version, its 3.4 while I write this. You can do amazing stuff with qPyton

  20. April 13th, 2017 at 16:46

    ok, so it is 2017. alot of the above is lol, but the advancement has been great, my suggestion for those searching to program on their android is droidscript.

1 trackbacks