{"id":110,"date":"2012-03-26T14:47:12","date_gmt":"2012-03-26T13:47:12","guid":{"rendered":"http:\/\/www.walkingrandomly.com\/?p=110"},"modified":"2012-03-26T14:47:12","modified_gmt":"2012-03-26T13:47:12","slug":"9-ways-to-program-for-android-devices-using-android-devices","status":"publish","type":"post","link":"https:\/\/walkingrandomly.com\/?p=110","title":{"rendered":"9 ways to program for Android devices using Android devices"},"content":{"rendered":"<p>These days almost all of us are carrying around seriously capable little computers in the form of our mobile phones.\u00a0 Although these devices have a <a href=\"https:\/\/www.walkingrandomly.com\/?p=2684\">similar amount of horsepower to supercomputers of old<\/a>, most of us only use a fraction of their potential&#8211; after all, you don&#8217;t need a supercompter to send text messages, look at pictures of cats or throw birds at pigs.\u00a0 I believe that the only way to fully unlock the true potential of these devices is to program them yourself.<\/p>\n<p>From fully fledged applications to little snippets of code, I think that there&#8217;s something enormously satisfying about writing your own computer programs and it doesn&#8217;t have to be difficult to do so.\u00a0 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 <strong>using only your Android phone<\/strong>. Although you&#8217;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.<\/p>\n<p><strong>C4droid &#8211; \u00a30.95<br \/>\n<\/strong><\/p>\n<p>With c4droid you get the ability to write, compile and run C and C++ programs using only your Android device.\u00a0 That&#8217;s a lot of functionality for only 95p!<\/p>\n<p>Out of the box C4droid only handles C programs, making use of a modified version of the <a href=\"http:\/\/bellard.org\/tcc\/\">Tiny C Compiler<\/a> to do the compilation work.\u00a0 The standard C library is provided by <a href=\"http:\/\/www.uclibc.org\/about.html\">uClibc<\/a> which is specially designed for use on embedded systems.<\/p>\n<p>In order to run C++ programs you need to additionally install the free <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.n0n3m4.gcc4droid\">GCC plugin for C4droid<\/a> &#8212; something that I personally haven&#8217;t done yet due to its large size.\u00a0 One of the most common user-complaints appears to be &#8216;this app doens&#8217;t allow me to use iostream.h&#8217; which essentially demonstrates that the installation instructions were not followed.\u00a0 Since iostream.h is a C++ library, you&#8217;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 <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.n0n3m4.droidc\">c4droid&#8217;s Google Play page<\/a>.<\/p>\n<p>You only get access to the standard C library with C4droid which means that you can&#8217;t generate graphical output or interact with the phone&#8217;s hardware in any way (bluetooth, accelerometers, that sort of thing) but that doesn&#8217;t stop this from being an impressive piece of work.\u00a0 Also, for an extra 95p you can run pascal programs using the <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.n0n3m4.droidpascal\">Pascal plugin for C4droid<\/a>.<\/p>\n<p>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.<\/p>\n<ul>\n<li><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.n0n3m4.droidc\">C4droid on Google Play<\/a><\/li>\n<li><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.n0n3m4.gcc4droid\">GCC plugin for c4droid<\/a> (needed for C++ access)<\/li>\n<li><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.n0n3m4.droidpascal\">Pascal plugin for C4droid<\/a> &#8211; provides the ability to compile and run Pascal programs<\/li>\n<\/ul>\n<p><strong>Mintoris Basic &#8211; \u00a33.77<br \/>\n<\/strong><\/p>\n<p>At the risk of showing my age, I&#8217;ll tell you that I first learned how to program in <a href=\"http:\/\/en.wikipedia.org\/wiki\/BASIC\">BASIC<\/a> (Beginners All-Purpose Symbolic Instruction Code) on the <a href=\"http:\/\/en.wikipedia.org\/wiki\/ZX_Spectrum\">Sinclair ZX Spectrum<\/a> and so I will always have a fondness for the language.\u00a0 <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.mintoris.basic\">Mintoris Basic<\/a> 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.<\/p>\n<p>As well as having all of the stuff you&#8217;d expect in a BASIC implementation (loops, strings, variables, functions, decisions, graphics etc), Mintoris also allows you to interact with some of your phone&#8217;s hardware including <a href=\"http:\/\/www.mintoris.com\/basic23000.html\">Bluetooth<\/a>, <a href=\"http:\/\/www.mintoris.com\/basic18500.html\">battery level<\/a>, <a href=\"http:\/\/www.mintoris.com\/basic18000.html\">GPS<\/a>, and <a href=\"http:\/\/www.mintoris.com\/basic17000.html\">various sensors<\/a>.\u00a0 Furthermore, you can attach your programs to shortcuts and launch them from your home screens.\u00a0 The level of functionality is so high that you can write some rather nifty apps with relatively little effort.<\/p>\n<ul>\n<li><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.mintoris.basic\">Get Mintoris Basic from Google Play<\/a><\/li>\n<li><a href=\"http:\/\/www.mintoris.com\/\">Mintoris Basic official website<\/a><\/li>\n<li><a href=\"http:\/\/www.mintoris.com\/forum\/index.php\">Mintoris Basic Forum<\/a><\/li>\n<li><a href=\"http:\/\/www.facebook.com\/mintoris\">Mintoris Basic on Facebook<\/a><\/li>\n<\/ul>\n<p><strong>Frink &#8211; Free<br \/>\n<\/strong><\/p>\n<p>Frink is a great language developed by Alan Eliasen that has been around since 2001.\u00a0 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.<\/p>\n<ul>\n<li><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=frink.android\">Get Frink from Google Play<\/a><\/li>\n<li><a href=\"http:\/\/futureboy.us\/frinkdocs\/whatsnew.html\">What&#8217;s new<\/a> &#8211; Frink is under very active development.\u00a0 See here for the new stuff<\/li>\n<li><a href=\"http:\/\/futureboy.us\/fsp\/samples.fsp\">Many example programs in Frink<\/a><\/li>\n<li><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=frink.android\">Extensive documentation for Frink<\/a><\/li>\n<\/ul>\n<p><strong>RFO BASIC! + SQL &#8211; Free<br \/>\n<\/strong><\/p>\n<p>This implementation of BASIC is completely free and is described as a labour of love by the author, Paul Laughton.\u00a0 Paul is my kind of geek since he is the curator of\u00a0<a href=\"http:\/\/laughton.com\/paul\/rfo\/rfo.html\">The Dr. Richard           Feynman Observatory<\/a> and author of <a href=\"http:\/\/laughton.com\/paul\/abps\/oss\/oss.html\">Atari Basic<\/a> and <a href=\"http:\/\/laughton.com\/Apple\/Apple.html\">Apple DOS           3.1<\/a> among other things.<\/p>\n<p>The feature list of RFO BASIC is impressive and includes Graphics (with Multi-touch), SQL, GPS, Device Sensors, Camera and loads more.\u00a0 There&#8217;s a great forum with lots of very engaged developers who are writing some very nice programs.<\/p>\n<p>There are two ways to deploy your programs&#8211;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&#8217;).<\/p>\n<ul>\n<li><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.rfo.basic&amp;hl=en\">RFO BASIC on Google Play<\/a><\/li>\n<li><a href=\"http:\/\/rfobasic.freeforums.org\/\">RFO BASIC Forum<\/a><\/li>\n<li><a href=\"http:\/\/laughton.com\/basic\/\">RFO BASIC website<\/a><\/li>\n<li><a href=\"http:\/\/www.laughton.com\/basic\/help\/De_Re_BASIC!.pdf\">De Re BASIC!<\/a> &#8211; The .pdf manual for RFO BASIC<\/li>\n<\/ul>\n<p><strong>Addi and Mathmatiz &#8211; Free<br \/>\n<\/strong><\/p>\n<p>These are two MATLAB clones for Android.\u00a0 I&#8217;ve <a href=\"https:\/\/www.walkingrandomly.com\/?p=3908\">mentioned Addi before<\/a> and they have both been covered over at <a href=\"http:\/\/amca01.wordpress.com\/2012\/02\/20\/matlab-clones-for-android\/\">Alasdair&#8217;s Musings<\/a> so I won&#8217;t go into detail here other than to say that they are very cool!\u00a0 Linear algebra, scripting and plotting on your phone!<\/p>\n<ul>\n<li><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.addi\">Addi at Google Play<\/a><\/li>\n<li><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=gcmath.ui\">Mathmatiz at Google Play<\/a><\/li>\n<li><a href=\"http:\/\/www.facebook.com\/pages\/Mathmatiz\/340455392657846\">Mathmatiz on Facebook<\/a><\/li>\n<\/ul>\n<p><strong>tiny Lisp ISLisproid<\/strong><\/p>\n<p>Lisp is a very old programming language which first saw the light of day in 1958!\u00a0 <a href=\"http:\/\/en.wikipedia.org\/wiki\/Lisp_%28programming_language%29\">According to wikipedia<\/a>, the only langauge older than Lisp that is still in common use is <a href=\"http:\/\/en.wikipedia.org\/wiki\/Fortran\">Fortran<\/a>! With this app you can play with the language of the ancients on your super-modern smartphone.\u00a0 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.<\/p>\n<ul>\n<li><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=info.gomi.android.lisp.islisp\">tiny Lisp at Google Play <\/a><\/li>\n<\/ul>\n<p><strong>MathStudio &#8211; \u00a312.99<br \/>\n<\/strong><\/p>\n<p>I&#8217;ve been using MathStudio (formerly SpaceTime Mathematics) for quite a few years now on various operating systems and it&#8217;s great to finally have it on Android.\u00a0 MathStudio is a fully featured computer algebra system for your mobile phone&#8211; think mini Mathematica or Maple and you are thinking along the right lines.\u00a0 With this app you can write scripts that make use of advanced mathematical features,\u00a0 2D and 3D graphics, animations and interactive demonstrations.<\/p>\n<ul>\n<li><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.PomegranateSoftware.MathStudio\">MathStudio at GooglePlay<\/a><\/li>\n<li><a href=\"http:\/\/www.mathstudio.net\/\">MathStudio official website<\/a><\/li>\n<li><a href=\"http:\/\/www.mathstudio.net\/share\/\">A set of MathStudio examples and demonstrations<\/a><\/li>\n<li><a href=\"http:\/\/www.mathstudio.net\/forums\/\">MathStudio Forum<\/a><\/li>\n<\/ul>\n<p><strong>SigmaScript &#8211; Free<br \/>\n<\/strong><\/p>\n<p><a href=\"http:\/\/www.logimath.com\/android\/sigmascript.html\">SigmaScript<\/a> is a free implementatuion of the <a href=\"http:\/\/www.lua.org\/\">Lua scripting language<\/a> for Android devices developed by Logimath.\u00a0 You get an editor, scripting engine, small console output and a few simple code examples.\u00a0 No graphics or anything fancy but a very nice way to play with an interesting language.<\/p>\n<ul>\n<li><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=cc.sidi.SigmaScript\">Get SigmaScript from Google Play<\/a><\/li>\n<li><a href=\"http:\/\/www.logimath.com\/android\/sigmascript.html\">Go to the developer&#8217;s website<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>These days almost all of us are carrying around seriously capable little computers in the form of our mobile phones.\u00a0 Although these devices have a similar amount of horsepower to supercomputers of old, most of us only use a fraction of their potential&#8211; after all, you don&#8217;t need a supercompter to send text messages, look [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[35,45,55,7],"tags":[],"class_list":["post-110","post","type-post","status-publish","format-standard","hentry","category-android","category-just-for-fun","category-mobile-mathematics","category-programming"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p3swhs-1M","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/walkingrandomly.com\/index.php?rest_route=\/wp\/v2\/posts\/110","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/walkingrandomly.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/walkingrandomly.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/walkingrandomly.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/walkingrandomly.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=110"}],"version-history":[{"count":16,"href":"https:\/\/walkingrandomly.com\/index.php?rest_route=\/wp\/v2\/posts\/110\/revisions"}],"predecessor-version":[{"id":4227,"href":"https:\/\/walkingrandomly.com\/index.php?rest_route=\/wp\/v2\/posts\/110\/revisions\/4227"}],"wp:attachment":[{"href":"https:\/\/walkingrandomly.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=110"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/walkingrandomly.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=110"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/walkingrandomly.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=110"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}