Xojo備忘録 webアプリでcookieを使用する


cookieもxojoなら簡単だ。
cookieを登録する場合はsession.cookies.set
session.cookies.valueでサクッと読み込む事ができる。

以下サンプルです。

http://124.41.69.194/567/labo/testcookie/testcookie.cgi

テキストフィールドに入力された内容をsetボタンで登録しgetボタンで読み込みます。
クリアボタンは単純にテキストフィールドをクリアするだけでcookieを削除するわけではありません。

setボタンが押された時の処理

Session.Cookies.set(“username”,TextField1.text)
Session.Cookies.set(“email”,TextField2.text)

getボタンが押された時の処理

TextField1.text=Session.Cookies.Value(“username”)
TextField2.Text=Session.Cookies.Value(“email”)

簡単ですね。

Xojo備忘録 webアプリで位置情報を取得する


他の開発環境での話は分からないがXojoでは位置情報の取得は簡単だ。
まず、DeviceLocationコントロールを配置する。

今回のサンプルでは更新ボタンを押した際に位置情報を取得しテキストフィールドへ書き込んでいるだけだ。
このテストアプリはものの2、3分で完了するくらいのレベルである。

更新ボタンを押した際に

DeviceLocation_Geo.RequestDeviceLocation()

とすると位置情報を取得した際にイベントが発生し

TextField1.text=str(Latitude)
TextField2.text=str(Longitude)

な感じで表示しているだけ。
実に簡単。

以前iOSのswiftで位置情報へのアクセルを行ったことがあるが色々ややこしい。
Webアプリで良ければiPhoneからも上記サンプルで位置情報を取得する事ができるので簡単なアプリはwebアプリでよさそうである。

サンプル

http://124.41.69.194/567/labo/geo/geo.cgi

Xojo備忘録 webアプリでユーザーのブラウザやらなんやらを取得する


 

perlなどでは

foreach (sort keys (%ENV)){
    print “$_: $ENV{$_}<BR>\n”;
}

な形で取得できるがxojoの場合ちょっと違う。
例えばREMOTE_HOSTなどは

Session.RemoteAddress

で得ることができるが、QUERY_STRINGなどを取得する簡単な方法がわからなかったので調べてみたらリファレンスにサンプルが載っていた。
はじめapacheのQUERY_STRINGを

System.EnvironmentVariable(“QUERY_STRING”)

もしくは

System.EnvironmentVariable(“REQUEST_URI”)

にて取れるかなと思ったが外したようでサンプルによると

If session.URLParameterCount > 0 Then
          Dim parameterName, value As String
          For i As Integer = 0 To session.URLParameterCount-1
                    parameterName = session.URLParameterName(i)
                    value = session.URLParameter(parameterName)
                    TextArea1.AppendText(parameterName + ” = ” + value + EndOfLine)
          Next
End If

※この例ではTextArea1に書き出している。

URLParameterで取得可能なような。

自分がこれを使いたいと思った理由はオンラインサインアップなどでよくメールに認証用のURLが送られてくるがあれと同じことをやりたかったためである。

サンプル

http://124.41.69.194/567/labo/xojoweb/xojowebtest.cgi

http://124.41.69.194/567/labo/xojoweb/xojowebtest.cgi?a=123&b=abcdefg

RaspberryPi3B+液晶モニター(タッチペン)


2017年、第一弾はRaspberryPiで行きたいと思います。

XojoのRaspberryPi版ライセンス購入に先立ち実行環境としてRaspberryPi3Bとビルドオン方式のRaspberryPi専用のタッチペン対応、800*480 5インチ液晶モニターを購入してみた。
価格は非常に安くAmazonで4800円ほどでした。

raspberryPi2と3に対応しているようです。
メーカーのwebに初期型に関する事項がないので2以降用かもですね。
処理速度の問題もあるので気になる方は3Bを使用したほうが宜しいかと思います。
商品は段ボールに梱包されておりますがマニュアル等は一切ありません。
と言っても取り付けはRaspberryPiのGPIOのコネクタ部に差し、同梱のHDMI接続用の基板でHDMI端子同士を接続して終わりです。
HDMIで映像信号、GPIOの端子で電源とタッチ情報のやり取りをしていると思いますのでHDMIは延長できてもGPIOの延長にはケーブル長がどれくらい取れるかは微妙、そういった用途に使う予定の方は注意です。
DSC02922DSC02923

DSC02924DSC02928

至ってシンプル。

今回はRaspberryPi3Bについては触れませんが、このために2台購入しました。

OSはRASPBIAN JESSIE WITH PIXEL(2016-11-25-raspbian-jessie.zip)を使用。
サムソンの64GBのMicroSDが安かったのでそれを使ってます。

このモニターを使うにあたりRaspberryPi3Bは推奨2.5A取れる電源が必要なのでこのモニター分電力が追加され、いささか電源が心配でしたがいつも使用しているモバイルバッテリーであっさり起動。
たまに電力不足のカミナリマークが表示されますがとりあえずは大丈夫そうです。
モバイルバッテリー自体はスペック的には5V2.1Aです。

はじめ画面の横の解像度がおかしいのでメーカーサイトにあるconfig.txtを参考に修正。

DSC02929

 

ドライバーのインストールは
https://www.elecrow.com/wiki/index.php?title=HDMI_Interface_5_Inch_800x480_TFT_Display
メーカーwebサイトを参照。

tar xvf LCD-show-150602.tar.gz
cd LCD-show
sudo ./LCD5-show

とするだけ。

DSC02936DSC02937

ペンが使えるようになりました。
専用のDS用のようなスタイラスペンが付属してきますが感圧式なようで指でも反応します。
なかなか良い感じですが、むき出しなので画面を去れって操作するのはちょっと不安。
専用のケースとかあれば良いですね。
いろいろ使用場面が膨らみそうです。

液晶自体の使用感としては5インチはやはり小さい。
パッと見た感じL版の写真程度の大きさっぽいです。
これより小さい3.5インチの製品もあるようだが私的には5インチ限界。(何しろiPhone6plusより小さいし)
左右の視野角はそこそこ良いように感じるが下方向からは見ずらい。
写真のように立てて使ってます。

私の購入目的は自作アプリの実行環境(予定)なので電卓のようにボタンを大きくすればそれなりに操作できるけど、他のアプリはやはりマウス&キーボードがないと操作しずらい。
800*480という解像度も何をするにも中途半端。

2016-12-31-152728_800x480_scrot

タブレットのように使うのはちょっと無理があるかもです。
操作パネルとか何も決まった内容を常に表示するとか用途には良さそう。

とは言え玩具としては低価格で購入できるので楽しい。
3月にXojoのライセンスの更新が必要なのでその時にProに移行してRaspberryPi開発環境がそろったらこいつを使って遊んでみたいと思います。

XojoでWebアプリケーション作成テスト


試しに使ってみたXoJo、前回の記事の宣言どおりwebアプリケーションのライセンスを購入してみた。

しかしやっぱり情報が少ない。

簡単な言語リファレンスは英語だがあるので、まったく調べようがないということはないが、Xojoの作法というか解説したものがないので、こう言う場合はどう表現したら良いのか的な事を調べるのは大変だ。

逆引き的なものがあるとほんと助かると思う。

大まかな事は無料版で分かっていたので早速webアプリを作ってみた。

それにしても生産性が良い。

情報量が少ないと事で調査する時間を含めても、簡単な事なら瞬時にできる。

ライセンス料がかかるというっても.netのように実行環境に費用がかからないのでトータルでは非常に安価でwebアプリケーションを公開する事ができるし、スタンドアローンでビルドすれば作成されたexeを起動するだけで良いので、いろいろ手間いらずだ。

まだ知識的に複雑な事はできないが、今別件で作成しているiOSアプリのアプリサーバーへ記事を投稿するwebアプリケーションを作成してみた。

これくらいの事なら現状のXojo知識でも十分できるくらいXojoは簡単だ。

大まかに言いますと位置情報を取得してアプリサーバーへコメントをPostするだけのアプリだがiOS+Swiftの方は四苦八苦している。

見栄えとか細かい部分はさておき3時間足らずで完成。

おそらく半分は調べている時間なので、経験と知識があれば30分とかでできる内容だろう。

一応iOSアプリでやりたいと思っていた事が簡単にできてしまった。

しかもwebアプリなのでAndroidとかでも使えると思う。

素晴らしいではないか。

とりあえずの完成品は
http://124.41.69.194:8080/
でアクセスできます。
位置情報を取得しますのメッセージが出ましたら許可を選択してください。
(PCだと問題ありませんがiPhone6sのサファリで開くとフル画面表示されない、調査中)

簡単な説明
・コメントを未記入で投稿ボタンを押すとリロード
・GPSの位置情報を元に記事を表示する
・記事を表示する範囲は範囲のところで5段階に設定できる
以上

私のようなサンデープログラマーレベルにはこの安易さは良い、Xojoは費用対効果が大きいシステムである。

追記:2016/3/17
iPhoneのサファリで表示時に画面いっぱいに表示されるように修正。
webアプリの場合はviewportのサイズを合わせないといけないらしい。