NobuNoblog

Androidの開発言語simpleを試す

nobunobutaの投稿 (2009年8月13日)

Android用のVisualBasicともいうべきsimpleというアプリケーション開発環境が公開されていることを知ったので、少しだけテストしてみました。

インストールや設定・コンパイル・HT-03Aへの移送方法については、

Androidアプリケーション用開発&実行環境 simpleを使ってみる

に書かれているのを参考にし、
言語の仕様については、simpleプロジェクトが提供しているサンプルプログラムのTetrisのソースや、開発プロジェクトのWikiを参考にしながら、お決まりのHelloWorldに少しだけ毛の生えたようなプログラムを作ってみました。

基本的には、開発用のプロジェクト用に、HelloWorldというディレクトリを作成後、その中に以下の2つのファイルをそれぞれの場所に作成して、

  1. HelloWorldフォルダーの一つ上のディレクトリをカレントディレクトリとして、
    simplec HelloWorld\simpleproject\project.properties
    というコマンドでコンパイル
  2. HT-03A実機をUSB接続後に
    adb install  -r “HelloWorld\build\deploy\HelloWorld.apk”
    でインストール

という手順で、HT-03A上での稼動が確認できました。

HelloWorldHelloNobuNobu

ソースにもあるように、基本的には各イベントハンドラーや関数定義などをBasicもどきの言語にて記述するロジック部分と、$Properties以降で定義する実際のフォーム(画面)定義部分から、一つのファイルが構成されています。フォームのレイアウト定義は、今回のように$Propeties内に静的に定義する以外に、Initialize()メソッド内で動的にそれぞれの画面コンポーネントクラスを生成する方法もあるようです。

また、インストール手順で判るように、simplecコマンドによるコンパイル時に、simpleで書かれたクラスファイルがJAVAのクラスファイルに変換されて、AndroidのSDKによってAndroid標準のインストールパッケージが生成されるようになっています。

simpleプロジェクトサイトのWikiのリファレンスを見たところでは、まだまだ開発途上でファイルI/O・センサー入力などのクラスやライブラリは存在していますが、ネットワークアクセス用のライブラリはまだ用意されていないようですので、現在のAndroidアプリで一般的なインターネットとのコラボレーションの実現するには、もう少し待たなくてはいけないようです。
(ドキュメントの全部を読みつくしたわけでは無いので、自信はありませんが・・・)

画面定義もVBライクに出来る様な統合環境が出来れば、かなり便利になると思いますが、今のところはJAVAが得意な人は、Eclipse上での標準的な開発を行った方が、 早いかもしれません。 これからに期待っていうところでしょうかね。

・HelloWorld\simpleproject\project.properties

main=com.nobunobu.simple.helloworld.HelloWorld
name=HelloWorld
assets=../assets
source=../src
build=../build

・HelloWorld\src\com\nobunobu\simple\helloworld\HelloWorld.simple

' -----------------------------------------------------------------------------
' Initialization event used to dynamically construct the Application
' -----------------------------------------------------------------------------
Event HelloWorld.Initialize()
  AddMenuItem("Quit")
End Event

' -----------------------------------------------------------------------------
' Analyze keyboard input
' -----------------------------------------------------------------------------
Event HelloWorld.Keyboard(keycode As Integer)
  Select keycode
    Case Component.KEYCODE_BACK
      Finish()
  End Select
End Event

' -----------------------------------------------------------------------------
' Analyze touch input
' -----------------------------------------------------------------------------
Event HelloWorld.TouchGesture(direction As Integer)
End Event

' -----------------------------------------------------------------------------
' Handle menu events
' -----------------------------------------------------------------------------
Event HelloWorld.MenuSelected(caption As String)
  Select caption
    Case "Quit"
      Finish()
  End Select
End Event

' -----------------------------------------------------------------------------
' Handle Form Button Click event
' -----------------------------------------------------------------------------
Event GoButton.Click()
  If InputText.Text = "" Then
      MessageLabel.Text = "Hello World!!"
  Else
      MessageLabel.Text = "Hello "& InputText.Text & "!!"
  End If
End Event

$Properties
  $Source $Form

  $Define HelloWorld $As Form
    Layout = Component.LAYOUT_LINEAR
    Layout.Orientation = 1
    BackgroundColor = &HFF444444
    Title = "Hello World"

    $Define Panel1 $As Panel
      Layout = Component.LAYOUT_TABLE
      Layout.Columns = 2
      Layout.Rows = 1
      Width=Component.LENGTH_FILL_PARENT
      BackgroundColor = &HFF444444

      $Define InputText $As TextBox
        Column = 0
        Row =0
        Width=180
      $End $Define

      $Define GoButton $As Button
        Column = 1
        Row =0
        Width=60
        Text="Your Name?"
      $End $Define
    $End $Define

    $Define MessageLabel $As Label
      Width=Component.LENGTH_FILL_PARENT
      Justification = Component.JUSTIFY_CENTER
      Text = "Hello World!!"
      FontSize = 30
      TextColor = &HFFFFFFFF
    $End $Define

  $End $Define
$End $Properties

タグ: ,

コメントする

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

%s に接続中

About

カテゴリー

カレンダー

2009年8月
    10月 »
 12
3456789
10111213141516
17181920212223
24252627282930
31  

アーカイブ

Twitter

フォロー

Get every new post delivered to your Inbox.