AndroidでBASICを使う（ BASIC プログラミング ）

Androidのタブレットやスマホで利用できるBASICインタープリタを紹介します。

##1.BASIC!

BASIC!は米国で開発されているプログラム言語BASICのインタープリタでGoogleプレイストアからダウンロードできます。

![BASIC!](http://rfo-basic.com/img/rforound.png)

###1-1.BASIC!の特徴

* インタープリタなのでAndroidのタブレットやスマホのみでプログラミング、テスト、デバッグ可能。
* ウィジェットで自作プログラムのアイコンをホーム画面に作成可能。
* カメラ、GPS、センサー、ダイヤルなどAndroidネイティブの制御可能。

>###ＢＡＳＩＣ！の機能(開発元サイトより引用)
>About BASIC!
>
>RFO BASIC! is a dialect of Dartmouth Basic that allows you to write and run programs directly on your Android device.  
>In addition to the traditional Basic features, your have access to:
>
>* Graphics (with Multi-touch)
>* HTML and JavaScript available for user interface
>* GPS
>* Device Sensors
>* Music Play
>* Sound Pools
>* Audio Recording
>* Tone Generation
>* Camera
>* Array/List/Stack/Bundle 
>* Internet Browsing
>* Text and Byte file I/O
>* Encryption
>* User defined functions
>* FTP Client
>* TCP/IP Client and Server Sockets
>* Bluetooth
>* Send SMS Messages
>* Send Emails
>* Make a phone call
>* Superuser access 

* 無料。広告無し。

###1-2.BASIC!公式サイト

BASIC!の開発は現在も継続中で最新バージョンは1.90です。
公式フォーラムでは盛んに投稿、議論が行われています。

* [BASIC!（プレイストア）](https://play.google.com/store/apps/details?id=com.rfo.basic&hl=ja&referrer=utm_source%3Dgoogle%26utm_medium%3Dorganic%26utm_term%3Dbasic!&pcampaignid=APPU_1_sXGUVofMDsXO0gSFuomgAQ)
* [BASIC!の開発者サイト(英語)](https://bintray.com/rfo-basic/android/RFO-BASIC/view)
* [BASIC!のマニュアル(pdf 英語)](https://bintray.com/artifact/download/rfo-basic/android/v01.89/De_Re_BASIC%21.pdf)
* [BASIC!公式フォーラム(英語)](http://rfobasic.freeforums.org)

##2.BASIC!関連の海外サイト

BASIC!のプログラムを簡単にAPK化出来るツール等を配布しているサイトがあり利用されています。
※APK化には現状パソコンが必要です。

* [RFO-BASIC! Suite(英語)](http://mougino.free.fr/rfo-basic/)
* RFO-BASIC! Quick APKのテスト動画(ＢＡＳＩＣ！友の会)

[![youtube動画表示エリア](http://img.youtube.com/vi/BoLGXzOL-Y8/0.jpg)](http://www.youtube.com/watch?v=BoLGXzOL-Y8) 

##3.BASIC!関連の日本語資料

###3-1.ＢＡＳＩＣ！友の会関連

ＢＡＳＩＣ！友の会は、日本におけるBASIC!のユーザーコミュニティを目指しています。

* [ＢＡＳＩＣ！友の会(BASIC!のファンサイト)](http://basic.amsstudio.jp/sp/)
* [ＢＡＳＩＣ！の無料解説本(電子書籍・初心者向け)](https://peraichi.com/landing_pages/view/basictomonokai)
* [ＢＡＳＩＣ！の無料解説本(電子書籍・超簡単HTMLモードプログラムの作り方)](https://bccks.jp/bcck/152339/)

![b7cd38c60128e7ed.jpeg](https://qiita-image-store.s3.amazonaws.com/0/35574/f0ddf746-bbc8-d908-af56-f30bf13970e6.jpeg)


* [ＢＡＳＩＣ！の紹介スライド(初心者向け)](http://slides.com/sigematu/deck)
* ＢＡＳＩＣ！の紹介動画　その1(初心者向け)

[![youtube動画表示エリア](http://img.youtube.com/vi/skNH-ELDg9w/0.jpg)]
(http://www.youtube.com/watch?v=skNH-ELDg9w) 
* ＢＡＳＩＣ！の紹介動画　その2(初心者向け)

[![youtube動画表示エリア](http://img.youtube.com/vi/MWu8B63j590/0.jpg)]
(http://www.youtube.com/watch?v=MWu8B63j590) 

* BASIC!超簡単HTMLモードプログラムの作り方講座(初級者向け)

[![youtube動画表示エリア](http://img.youtube.com/vi/AvB8a3wfgxc/0.jpg)](http://www.youtube.com/watch?v=AvB8a3wfgxc) 

* ＨＴＭＬモードプログラムの作り方(中級者向け)

[![youtube動画表示エリア](http://img.youtube.com/vi/6ty_evq9AuU/0.jpg)](http://www.youtube.com/watch?v=6ty_evq9AuU) 

###3-2.その他の紹介サイト

日経ソフトウェアや月間I/Oなどの紙媒体でも紹介されていますがネット上でＢＡＳＩＣ！を紹介しているページはあります。

* [BASIC! ～ 分かりやすい教本で一から学べるコンピュータ言語](http://blog.livedoor.jp/an_square/archives/51887786.html)
* [昔懐かしいBASICプログラミングがアンドロイドで！　『BASIC! 』出来るのはデータベース処理だけじゃない](
http://www.tabroid.jp/app/business/2012/01/com.rfo.basic.html)

##4.コードの例

ＢＡＳＩＣ！専用の命令はありますが基本的には一般的なBASICのコードと同じです。

``` サンプルプログラム
include a-htmlpnl1.bas
include t-htmlpnlem0.bas
include t-htmlpnlem1.bas
include t-htmlpnlem2.bas

console.title "画像エモーション判定"

dim emx$[8]

emx$[1]="怒り"
emx$[2]="軽蔑"
emx$[3]="嫌悪"
emx$[4]="怖れ"
emx$[5]="幸福"
emx$[6]="普通"
emx$[7]="悲み"
emx$[8]="嘆き"

socket.myip ip$
if ip$="" then
   popup "ネットワーク未接続なので終了します。",0,0,1
   pause 4000
   exit
else
   popup "ネットワーク接続済",0,0,1
   pause 4000
endif

rssstp:

clipboard.get clpx$

ansix$=embox0$(clpx$)


if ansix$="//x//" then
   popup "終了します。",0,0,1
   exit
endif

ansiy$=embox1$(clpx$)

if ansiy$="//e//" then
   popup "終了します。",0,0,1
   exit
endif

console.title "画像エモーション判定 データ生成中"

split iya$[],ansiy$,"@x@"
array.length liya,iya$[]

outww$=""

cls

for vv=1 to liya 
   print iya$[vv]
   ww=val(iya$[vv])
   ww=int(ww*10)
      sikaku$=""
      for www=1 to ww
        sikaku$=sikaku$+"■"
      next ww
   outww$=outww$+emx$[vv]+":"+sikaku$+"<BR>"
   outaa$=emx$[vv]+":"+sikaku$
   print outaa$
next vv

array.delete iya$[]

ansiz$=embox2$(clpx$,outww$)

if ansiz$="//x//" then
   popup "終了します。",0,0,1
   exit
endif

if ansiz$="//y//" then
   popup "検索画面を表示します。",0,0,1
   goto rssstp
endif

exit
```

##5.まとめ

* Androidの端末さえあれば無料。
* 開発環境はアプリのインストールだけで瞬時に作成。
* アプリを作って配布も可能。
* BASICなので超簡単。

ちょっと試してみてはいかがでしょうか。