Kodularを使ってみよう

Pocket

Kodularを使ってみよう

はじめに

DX推進室の野上です。
「ノーコードでAndroidアプリを作った」という記事 を読んで興味が沸いたので触ってみました。


Kodularとは

Androidアプリのノーコード開発ツール。
利用は完全無料だそうです。
ScrachのようなGUIで処理を記述することができます。


ゴール

よくあるログイン処理を作ってみます。
アカウントとパスワードを入れてボタンを押すとAPIをCallして結果を受け取るやつです。


準備

  • Kodular にSignInしておいてください。

新しいプロジェクトを作る

SignInすると以下のような画面になります。
左の「Create project」から新しいプロジェクトを作成します。

プロジェクト名を入力して「Next」を押下します。

Package名を入力して「Finish」を押下します。

プロジェクトが作成されると、Creator画面に遷移します。

左側のPaletteからComponentを選択して
真ん中のViewer画面のスマートフォンにドラッグ&ドロップすると画面が作成できます。

最初の画面を作る

最初の画面には以下の要素を追加しましょう

  • アカウント入力欄
  • パスワード入力欄
  • ログインボタン

入力欄を追加する

Paletteの「User Interface」-> 「Text Box」をドラッグ&ドロップします。
アカウントとパスワードの二つ必要なので二つ追加します。

右側のCommon propertiesからText_Box1のWidthを「Fill parent」にします。
Text_Box2も同様に設定しておきます。

ボタンを追加する

Paletteの「User Interface」-> 「Button」をドラッグ&ドロップします。
Common propertiesからButton1のWidthを「Fill parent」にします。
Button1のText Propertiesを変更してボタンのテキストを「Login」に変更します。

ここまでで最初の画面のUI要素は大体できました。

POSTメソッドを呼ぶ

ログインするAPIを呼び出す処理を追加します。
Paletteの「Connectivity」-> 「Web」をドラッグ&ドロップします。
WebコンポーネントはNon-visible Componentのため画面上には見えません。
Web1のURL Propertiesにログイン用のAPIのURLを入力します。

ここからBlocksで処理を追加していきます。
Creatorの右上にある「Blocks」を押下して画面を切り替えます。
以下のような画面に切り替わります。

まずLoginButtonが押された場合の処理を追加します。
左側のBlocksより「Built-in」->「Button1」と選択して、ボタンが押下された場合のBlockをドラッグ&ドロップします。

次はPOSTメソッドを追加します。
左側のBlocksより「Built-in」->「Web1」と選択して、call Web1.Post.Textをドラッグ&ドロップします。

今回は

{ "username": "アカウント名", "password": "パスワード文字列" }

をPostします。
使用するAPIによって適宜読み替えてください。
アカウント名とパスワード文字列は「Text Box1」と「Text Box2」に入力された値を使用するようにします。
PostするJsonを作成するために「Built-in」->「Text」からJoinブロックを追加します。

Joinブロックは文字列結合してくれます。

{ "username": "

アカウント名

", "password": "

パスワード文字列

" }

の5つのTextを結合する必要がありますので、Joinブロックの歯車アイコンをクリックしてStringを5まで増やしてください。

Joinブロックに「Built-in」->「Text」からTextブロックを追加します

追加したTextブロックに

{ "username": "

と入力します。

つぎに「アカウント名」を結合します。
「アカウント名」は「Text_Box1」の中にある「Text_Box1.XXXX」を使用します。
「.」前後はリストから選択できるのでどれでも構いません。

同じように残りも結合していきます。
なお、同じ要素を使う場合は、右クリックして「Duplicate」でコピーすることができます。
すべてを結合すると以下のようになります。

これでButton1が押されると、POSTメソッドが呼ばれるようになりました。
次はPOSTメソッドの戻りを受け取りましょう。
「Built-in」->「Web1」の中の「when Web1.Got Text」を使用します。
POSTメソッドはここに戻ってきます。

Responseを受け取ったら別の画面に遷移するようにしたいので、まずは二つ目の画面を作りましょう。

二つ目の画面を作成する

Designer画面に戻って、「Add Screen」から二画面目を追加します。
名前は「Screen2」にしましょう。

Screen2に遷移してきたらToastを表示したいので、「User Interface」->「Notifier」をドラッグ&ドロップしておきます。
NotifierコンポーネントもNon-visible Componentのため画面上には見えません。

さて、再びBlocks画面に戻って、Screen2が初期化された際に、Screen1から渡されたデータをToast表示するようにロジックを設定します。

  • 「Screen2」の「when Screen2.Initialize」
  • 「Notifier1」の「call Notifier1.Show Alert」
  • 「Control」の「get start value」
    を使用します。

これでScreen2が表示された時にToastが表示されるようになります。

二つの画面をつなげる

この状態だと、start valueに何も渡されていませんし、Screen1から遷移する処理も追加されていません。
その部分を追加しましょう。

Screen1のBlocks画面に戻り、Responseを受け取ったらresponse Contentを渡してScreen2に遷移するようにしましょう。

  • 「Control」の「open another screen with start value」
  • 「Text」の「Text」ブロック
  • 「get response Content」
    を使用します。

「get response Content」はwhenブロックの「response Content」にカーソルを当てると表示されます。
これでデータ送信と画面遷移が完成しました。

実端末で動かしてみる

それでは実端末で動かしてみましょう。
Kodularはそのままapkファイルをビルドすることができます。
「Export」->「Android App(.apk)」を選択することでビルドされます。

ビルドが終了すると以下のような画面になります。
kodular companionというAndroidアプリでQRコードを読み取るか
apkファイルをダウンロードして手動でインストールする方法があります。

起動すると以下のような画面になります。
Text_Box1にアカウント
Text_Box2にパスワードを入力して、Loginボタンを押しましょう。

ちゃんとScreen2に遷移して、response ContentがToast表示されました。


終わりに

使用し始めて数時間程度でここまで作成することができました。
もっと使っていくといろいろできるかもしれません。
iOSのビルドもできるようになると夢が広がりますね。

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です