読者です 読者をやめる 読者になる 読者になる

Xojo日本語ブログ

マルチプラットフォーム対応アプリが開発できるXojoのブログです。

シチズンデベロッパーにぴったりなローコードプラットフォームとは?

シチズンデベロッパー クラウド

開発者であればJavaや.NET、PHPRubyPerlPythonC/C++といったプログラミング言語を選択します。これらの言語は汎用的に使えますし、得手不得手はあるものの高度な実装も可能です。

しかしこれらの言語はシチズンデベロッパーにとっては敷居の高いものになります。ゼロから自分で作るというのは難しいものです。何より自分が実現したいのは業務の改善や自動化であって、プログラミング言語の学習ではないのです。

そこで注目されるのがローコードプラットフォームと呼ばれるシステムです。ローコードまたはノンコードプラットフォームなどと言われるジャンルのシステムで、少ないコード量で作りたいものが実現できます。

CMSを使ってスマートフォンアプリを開発

一つの例として、CMSによるスマートフォンアプリ開発サービスがあります。Webサービス上で項目を選択していくだけでiOSアプリやAndroidアプリが作れます。多くはジャンルに特化しており、飲食店向けであったり、カンファレンス向けと言ったカテゴリが存在します。

そのサービス例としてYappli(ヤプリ)があります。クーポンや電子書籍、ポイントカードなど飲食店やアパレル店舗に合わせた機能がコーディングなしで実装ができます。

ノンコードプラットフォームの場合、そもそもコーディングがサポートされていないことが多いです。そのため、テンプレートの範囲内で実現できることならば問題ありませんが、ちょっとカスタマイズしたいと言った要望には叶わないことがあります。

クラウドサービス×ローコーディング

最近では各種クラウドサービスでもローコーディング機能が実装されはじめています。クラウドサービスが殆どの機能を提供しますが、それだけでは物足りない、ほんの少し足りない機能をローコーディングプラットフォームが補います。

SalesforceApp CloudGoogleスプレッドシートのApps Script、G SuiteのApp MakerMicrosoft PowerAppsIBM BluemixのNode-Redなどが挙げられます。kintoneもそうです。これらのツールではビジュアル化されたモジュールを使い、ドラッグ&ドロップで組み合わせてアプリを作ったり、ちょっとした拡張をコーディングによって実現できます。

開発できるソフトウェアには多少の縛りが存在しますが、そのプラットフォーム上で使う分にはさほど問題にはならないでしょう。まさに昔からあるExcelのマクロのような存在です。

開発者でなくとも作れる手軽さ

ローコードプラットフォームは通常の開発者が使うにしては制限が強く、汎用的ではありません。もちろんFileMakerのカスタムアプリのようにクライアントに納品できるレベルの場合もありますが、それでもデータベース(FileMaker)という縛りが存在します。同様にForguncy(フォーガンシー)というソフトウェアもシチズンデベロッパー向けで、Webアプリケーションが簡単に作れますが、UIや機能面において縛りがあります。

ローコードプラットフォームでは利用者の多くがシチズンデベロッパーとなっています。業務担当者が自分たちのニーズに応じてアプリを開発します。そのため本格的、大型なものである必要はなく、ボタン一つ、アクション一つなどごく簡単なもので十分になります。

そのように業務改善、業務フローにおける強いニーズが存在し、それを素早く解決できるのがローコードプラットフォームに求められる要件と言えるでしょう。

習得コストの低さが肝

ローコードプラットフォームで大事になるのが習得コストの低さです。業務担当者などはプログラミング専門職ではありませんので、複雑なコーディング知識を前提とした開発環境を扱うのは無理があります。ビジュアル的であったり、デバッグが容易など分かりやすい作りになっている必要があります。

我々の提供するXojo(ゾージョー)GUI上で画面設計を行い、IDE上でコーディングを行います。エラーも分かりやすく、デバッグする際にもGUI上でデータを見ながら行えます。シチズンデベロッパーの方が多く使っていることからも習得コストは十分に低いと言えます。


ローコードプラットフォーム/ノンコーディングプラットフォームはシチズンデベロッパーにとって大きな武器になります。使いこなせば既存の業務を改善し、より生産性を高められるようになるでしょう。ぜひ自分たちの業務にあったサービス、プロダクトを選択してください。

誰でも正規表現が使えるようになる - CDC #2が開催されました

シチズンデベロッパー CDC

Xojoユーザの多くはシチズンデベロッパーと言われています。シチズンデベロッパーはプロの開発者ではなく、自分の業務に存在する課題を自動化やツールによって解決する意欲高い業務担当者になります。日本でも多くの方がシチズンデベロッパーですが、1つの会社には1名ないし2名くらいしかおらず、情報を共有する機会はごく僅かしか存在しません。

f:id:moongift:20170314101019j:plain

そこでシチズンデベロッパーコミュニティ(CDC)がはじまっています。シチズンデベロッパーと呼ばれる方々が多く集まることで、そこで情報が共有されてお互いの業務改善が進んでいくのを目的としています。今回はその第2回の参加レポートになります。

シチズンデベロッパーコミュニティ - connpass

CDCについて

まず筆者からCDCに関する説明をしました。シチズンデベロッパーは自分の業務を改善したいという意欲を持っており、改善したことによって業務に対して高い満足度を持っていると言われています。また、業務担当者であることも多いですが、管理者にも多くのシチズンデベロッパーが存在すると言われています。

難点はシチズンデベロッパーが各企業に1〜2名いるだけという現状です。将来的にはすべての業務担当者がシチズンデベロッパーになると言われていますが、少なくとも現状はごく僅かです。そのためナレッジが共有されづらく、秘伝のタレになってしまいます。

CDCではそうした方々に集まってもらうことで情報共有を活性化し、企業を超えたナレッジの蓄積ができるのを目的としています。

正規表現の書き方と使いどころ

次に筆者の方から正規表現について発表しました。正規表現とはある文字列を表現するパターンのことで、複数の文字列を一つのパターンで表現できるようになります。パターンの中には記号を含みますが、それほど多くはありません。それさえ覚えてしまえば誰でも使えるようになります。

speakerdeck.com

正規表現がテストできるWebサービスもあり、ビジュアル的に確認しながら組み立てることができます。大量のデータの中からメールアドレスをピックアップしたり、CSV形式に変換したりすることができます。

日本では最も有名なテキストエディタと思われる秀丸では元々正規表現が使えますが、多少癖があります。また、Excelでもフリーウェアを導入することで正規表現が使えるようになります。コピー&ペースト作業で苦しんでいる方にとっては正規表現を覚えてしまえば業務が一気に改善されるはずです。

LT

その後ドゥハウスの末永さんから、VBAを使ってスクレイピングを行うテクニックが紹介されました。幾つかやり方はあるのですが、コンテンツをすべてテキストで取得して正規表現で抜き出すのが早いとのこと。

f:id:moongift:20170314100635j:plain

さらにMozillaの清水さんが大学のテストにユニットテストを導入することで採点をあっという間に終わらせられるようになったというテクニックを紹介してもらいました。プログラムの正しさをあらかじめユニットテストで定義するのが面白いです。

f:id:moongift:20170314100913j:plain

ワークショップ

今回は初の試みとしてワークショップを導入しました。お題は「業務でよく使っている便利ツール」と「最近の業務で困った話」です。それぞれ自分が話したいお題に分かれて30分くらいグループで話し合いました。その結果はA4の紙にまとめられ、最後に発表しました。

f:id:moongift:20170314110731j:plain

話題を絞ることで発言しやすくなり、A4の紙いっぱいに内容が書き込まれています。非常に盛り上がっていました。

f:id:moongift:20170314110736j:plain


CDCでは普段仕事をしている中では出会うことがないシチズンデベロッパー同士が情報交換できる場となっています。ツールやちょっとしたプログラミングによって業務改善を進めている方はぜひ参加してみてください。

シチズンデベロッパーコミュニティ - connpass

Visual BasicとXojoの違いは?

Xojo Visual Basic

Xojoを紹介する際によく取り上げるのがVBVBAといったプログラミング言語です。Xojoは元々RealBasicだったこともあって、言語体系は非常によく似ています。しかしVBの最後のリリースが98年であり、そこから20年近くたってXojoはさらに進化しています。

今回はVBとXojoで何が違うのか紹介します。

マルチプラットフォームで開発できる

VBWindows向けの開発しかできません。対してXojoでは以下のプラットフォーム向けに開発ができます。

さらに2017年度中にはAndroid向けの開発も行えるバージョンがリリース予定となっています。

データ型

VBとXojoでは同じような型を利用できます。Integer、Double、Single、Currency、String/Text、Variant/Autoといった型があります。Date型はXojoではクラスとなっています。

さらにXojoではコンパイル設定によってInteger型が32/64bitのどちらもサポートできるようになっています。

VBでは構造体を使いますが、Xojoはオブジェクト指向のクラスを使う方が良いでしょう(構造体も使えます)。

算術演算子

XojoとVBでは同じ算術演算子(+や/、Modなど)を扱えます。さらに比較演算子(<、<=、<>など)も同じものが使えます。数学関数についてもほぼ同じ名前ですが、一部で異なる場合があります(VBではSqr、XojoではSqrtなど)。Xojoでは乱数を生成するRndという関数がありますが、さらに高度なRandomクラスも用意されています。三角関数などはXojoとVBでよく似ています。

分岐処理

IF/ThenやSelect/Caseなどは同じものが使えます。

ループ処理

For/Next、Do/Loopといったループ処理は共通です。

文字列

XojoとVBも文字列型を用意しています。大きな違いとしては、Xojoは大文字、小文字を区別しないということです。Xojoで大文字、小文字を区別したい場合はStrCompまたはText.Compareを使います。VBではテキスト連結に&を使いましたが、Xojoでは+を使います。

それ以外のテキスト用メソッドはVBと同様のものが数多く用意されています。

配列

配列はVBに比べてXojoは柔軟に操作できます。Append/Insert/Pop/Removeといったメソッドを使って配列の内容をダイナミックに変更できます。なお、Xojoの配列は必ず0からはじまる決まりとなっています。

ディクショナリー

連想配列として使われることが多いディクショナリー型ですが、VBとXojoでは同じようにDimで定義できます。

Dim dict As new Dictionary

VBではaddを使ってキーと値を追加します。

dict.Add "Key1", "Value1"

対してXojoではキーを指定して追加します。より直感的ではないでしょうか。

dict.Value("Key1") = "Value1"

サブルーチンと関数

いわゆるメソッドです。Xojoでは値を返さないメソッドをサブルーチン、返すものを関数と呼んでいます。Xojoでは挿入メニューを使って追加し、インスペクタ上でメソッド名や引数、返り値の型を指定できます。

クラスのメソッドはパブリック、プライベート、プロテクトをサポートしており、サブクラス側やクラス利用時のメソッド公開範囲を設定できます。

エラーハンドリング

VBではOn Error Gotoを使っていましたが、XojoではTry/Catch/End Tryを使います。

Try
  Dim f As New FolderItem("test.txt")
  Dim output As TextOutputStream = output.Create(f)
Catch e As IOException
  MsgBox("Error: " + e.Message)
End Try

ファイルアクセス

Xojoはクラスプラットフォームで動作するのでファイルアクセスがVBとは多少異なります。パスはハードコーディングせず、SpecialFolderクラスを介して行うのが安全です。

Dim f As FolderItem = SpecialFolder.Documents.Child("MyFile.txt")

テキストの入出力にはTextInputStream/TextOutputStreamクラスが使えます。また、バイナリファイル向けにはBinaryStreamがあります。

UI

VBとXojoではともにUIコンポーネントからのドラッグ&ドロップによってUIを設計できます。

グラフィックス

XojoにはVBと同様にグラフィックスコントロールが用意されています。線、円、四角、角丸などです。さらに細かくグラフィックスを指定する場合にはCanvasクラスを使って図形を描画できます。

データベース

VBではAccessやその他のデータベースへアクセスするのにODBCを使っていました。Xojoではビルトインで有名なデータベースをサポートしています(SQLite/MySQL/PostgreSQL/Microsoft SQL Server/Oracle)。ODBCを使った接続もサポートしています。Windowsに限定されますが、OLEを使った接続も行えます。

オブジェクト指向

VBとは違い、Xojoでは完全なオブジェクト指向がサポートしています。


XojoはVisual Basicに似ていますが、さらに多くの機能が追加されています。昔開発したVisual BasicアプリケーションをXojoを使って近代化してください!

Xojo(ゾージョー)仕事に。研究に。”使える”アプリを瞬速×クロス開発|グレープシティ株式会社

なぜシチズンデベロッパーが生まれているのか

シチズンデベロッパー オープンソース

開発者ではないものの、ちょっとしたツールを作成して自分の業務を自動化したり、より高いレベルの業務に取り組んでいる方たちをシチズンデベロッパーと呼びます。現在、シチズンデベロッパーという呼称はアメリカ、ヨーロッパでは一般的に使われるようになっており、日本においても注目を浴び始めています。

今回はシチズンデベロッパーが誕生している背景について紹介します。

業務改善に積極的に取り組む前向きな従業員の増加

f:id:moongift:20170220140136p:plain

日々の業務は常に増加傾向にあります。同じ作業を繰り返していたり、複雑な操作を間違わずに行うのはとても大変です。そうした中で生まれるのが自動化のニーズです。よくある所ではExcelを使ったマクロが挙げられます。

シチズンデベロッパーの多くはほんの小さな切っ掛けから、自分の業務が格段に楽になる経験を得るそうです。その楽になるというポジティブな経験がさらに次の利便性を求めるようになります。この繰り返しがシチズンデベロッパーを成長させていきます。

そもそも業務に対してネガティブな印象しか持っていない場合、このような改善意欲はなかなか沸かないものです。多くのシチズンデベロッパーは業務に対して意欲的であり、業務改善したいという思いを持っている方々が多くなっています。

ローコードプラットフォームの台頭

f:id:moongift:20170220140211p:plain

とは言え、いくら意欲的であっても純粋なプログラミング言語を使っていきなり開発が行えるわけではありません。従来のようにJava/PHP/Perl/Ruby/Python/C/C++といった言語しかなかったとしたら、開発しようと思えないでしょう。最近ではもっとカジュアルに開発が行えるローコードプラットフォームが登場しています。

幾つかのジャンルに分かれますが、ビジュアルプログラミング言語であったり、ちょっとした操作であればブロックを指定するだけでできてしまうものもあります。また、アドオンなどによってニーズを満たせる場合もあります。前述のマクロもコーディングを手助けしてくれるツールであると言えます。多くの場合、まずマクロを使ってちょっとした操作を行い、その実際のコード(VBA)を自分でカスタマイズするところからシチズンデベロッパーとしての一歩を踏み出していくでしょう。

そうしたローコードプラットフォームが広まるのに伴って、開発者でない人でも開発できる環境が整ってきたと言えます。

システム開発の負担

f:id:moongift:20170220140234p:plain

誰もが知っている通り、システム開発を行うのは大きなことです。経営層にとっても大きな決断になりますし、開発工数も短くて半年、長ければ数年かかってしまいます。金銭コストも大きいですし、仕様を固める際には人的コストも大きくかかります。そうした大きなコストがかかってなお、半年以上改善されない状態を待つのはとてもストレスが大きいものです。そもそも小さなツールレベルでは開発の許可が下りません。

しかし問題は実際に業務の中で起こっています。システム開発するほどでもない、しかし改善したいという矛盾を開発するのがシチズンデベロッパーの存在と言えます。まさに現場のニーズによって誕生した存在と言えます。

顧客管理、商品管理、Eコマースシステムといった大きなシステムであれば従来の開発手法、開発会社を頼ることになるでしょう。しかし開発会社と手動操作の間にはぽっかりと空白地帯が存在すると言えます。

オープンソース/無償サービスの存在

f:id:moongift:20170220140315p:plain

ブログを構築する際に、もはやイチから構築することは殆どなくなっています。さらにEコマース、CRM、販売管理など多くのシステムがオープンソース・ソフトウェアと言われるライセンスの元に無償で利用可能になっています。さらにGmailDropboxGitHubなど多くのサービスにおいて無料枠が用意されています。

サーバなども自分で保有することなく、クラウドVPSを使って運用できます。そうした技術を利用することの無料化、低価格化が進むことによって誰でも手軽に最新のテクノロジーを使いこなせるようになっています。

例えばExcelを別なシステムと連携したいと思った時も、自分でイチから作るのではなくすでに存在するツールを使えばすぐに利用できます。また、オープンソース・ソフトウェアであれば多くがソースコードを公開しているので、そこからやり方を学ぶこともできます。

情報がある

Web検索およびブログなどによる情報発信の発展によって必要な情報がすぐに調べられるようになりました。昔のように役に立つか分からない書籍を買ってきて、初歩から学ぶ必要はありません。やりたいと思ったことで検索して、出てきた情報をそのまま真似るだけでできてしまいます。

この手軽さこそがシチズンデベロッパーを成長させていると言えるでしょう。


シチズンデベロッパーが増えている要因としては「(自分の中に)ニーズがある」「ツールがある」「すぐにできる」という3つが大きく寄与していると考えられます。現状では特にニーズがあるところから、ツールを探すところまでが大きな敷居になっていると言えます。とは言え、今後情報が増えていくのに伴ってどんどん下がっていくと思われます。

私たちの提供するXojoシチズンデベロッパー向けのツールです。業務を改善したいという強いニーズがあるところで役立ちますので、ぜひお使いください!

CDC(シチズンデベロッパーコミュニティ) #1が開催されました

CDC シチズンデベロッパー

開発がメイン業務ではないものの、自分の業務をスムーズにするためにちょっとしたツールを開発する、それがシチズンデベロッパーと呼ばれる方になります。皆さんの周りにもExcelAccessを駆使したり、SaaSを使いこなしている方はいないでしょうか。

そうした方々を集めて個人のナレッジを共有しようというのがCDC(シチズンデベロッパーコミュニティ)になります。第一回はラフノートさんのオフィスにて行われ、サイボウズ社の後迫さんが登壇されました。

CDCについて

まずCDCの趣旨についての紹介になります。シチズンデベロッパーが何であるか、さらにコミュニティでは何を求めていくかといった話です。

kintoneについて

kintoneはもはや説明の必要がないほど有名なクラウド型業務システム構築プラットフォームです。利用者の7割超が業務部門の方々となっており、まさにシチズンデベロッパーな方々が使っているツールと言えます。現在、800/日以上アプリが作られており、開発にも積極的なのが分かります。

f:id:moongift:20170220113429j:plain

kintoneでは無償の開発者ライセンスを配布していますが、アクティブ率が35%と非常に高いそうです。開発者向けドキュメントも第一回、第二回とつけることで達成感を得られるようにしていたり、コピペで動くコードを掲載するなど様々な工夫が見られます。さらに社内の方が作ったLintツールがあり、コードのチェックが簡単にできるようになっています。

kintoneでは100点のシステムを目指すのではなく、70点で早さを追求するスタイルをお勧めしていました。それをファストシステムと呼んでいました。kintoneを使ったシステム開発を行っているシステム39社では全4回の面前開発(対面で、その場で要望を聞きながら開発してしまうスタイル)を行っており、既存のExcelをkintone化してしまうと言います。とても高速にアプリケーションが開発できてしまうのが魅力です。

kintoneでは壁に当たった時に頑張りたいと思う人が頑張れる環境を用意している、というのがとても印象的でした。

LT

LTは全部で5本ありましたが、こちらでは資料がアップされているお二方について紹介します。シチズンデベロッパーというとちょっとしたツールを作っているくらいのイメージだったのですが、それが一気に覆るくらい技術力の高い方々が発表されていました。

ニフティ 川原さん

Pythonを使って統計データの前処理、Rを使った分析について。Excelでも高度な分析が行えるというのが印象的でした。

f:id:moongift:20170220113441j:plain

シックスアパート 壽さん

Google スプレッドシートのアドオンを使ったTwitter分析など。アドオンにはかなり便利そうなツールが揃っているようです。

f:id:moongift:20170220113450j:plain

ラフノート 西小倉さん

kintoneをかなり使いこなしている西小倉さんですが、さらにチャットワークやGoogle App Scriptとの比較をされています。

f:id:moongift:20170220113937j:plain


シチズンデベロッパーが一般的な開発者と違うのは、達成したい目標が目の前にあり、直線的に突き進む点にあります。非常にモチベーションが高いのです。開発者の場合、解決したい問題というのはクライアントが感じていることであり、自分たちの問題ではない場合があります。それによるメリットもありますが、達成へのスピード感という意味では劣るかも知れません。

第二回は3月8日に行います。興味を持たれた方はぜひご参加ください!

シチズンデベロッパーコミュニティ #2 - connpass

XojoのWebアプリケーションにスタイルシートを当てるには?

Xojo Tip Web スタイルシート

XojoでWebアプリケーションを作っていて、フォントや文字サイズなどを細かく調整したいと思うことは多々あるでしょう。そんな時、通常のWebシステムであればスタイルシートを使って指定するかと思います。

今回はXojoの中でスタイルシートを指定する、Webスタイルの使い方を紹介します。

Webスタイルを作成する

Webスタイルの作成方法は、左側にあるプロジェクトファイル一覧のペインを右クリックして「Webスタイル」を選択します。

f:id:moongift:20170122095734p:plain

そうするとWebスタイルの作成画面が表示されます。通常時、マウスオーバー時、ボタンを押した時そしてすでに表示済みの4パターンに対してスタイル設定が可能です。

f:id:moongift:20170122095743p:plain

Add Propertyボタンをクリックすると、設定できるスタイル設定が表示されます。フォント、枠線、影、パディング、コーナー、その他といったカテゴリに分かれており、その中からさらに選んで指定ができます。

f:id:moongift:20170122095805p:plain

Webスタイルを適用する

Webスタイルを作成したら、画面上の任意のコントロールを選択し、インスペクタのStyles設定にて先ほど作成したWebスタイルを選択します。

f:id:moongift:20170122095824p:plain

これでWebスタイルの適用された表示が確認できるはずです。

f:id:moongift:20170122095833p:plain


Webアプリケーションの場合、細かな設定はWebスタイルでできるようになっているので、各コントロールでは文字色なども設定できないようになっています。Webスタイルを使った利点としては、スタイルシートのように設定の再利用がしやすく、メンテナンスも容易ということでしょう。

さらにWebスタイルは継承して別なWebスタイルを定義することもできます。これによって、入れ子の構造も定義できますので、全体は統一しつつ、一部だけ設定を変更したいといった指定もできます。

ぜひ活用してください。

ノンプログラマーでもできる。たった2行のTwitterクライアント

HTMLViewer Twitter Xojo 開発 Tips

Webサービスの利点として、Webブラウザさえあればアクセスできる容易さが挙げられます。しかし、Webブラウザは時々再起動したくなることがあり、その度にWebサービスの利用も中断しなければなりません。また、他のWebサービスも使うため、セキュリティを気にする人もいるでしょう。

そこで最近増えているのがWebブラウザを内包して作るアプリです。予め指定したWebサイトしかアクセスできないように制御するものですが、日常的に使い続けるWebサービスは独立したアプリケーションになっていると便利です。

そこで今回はたった2行コードを書くだけで作れるTwitterクライアントの作り方を紹介します。

ウィンドウにHTMLViewerを貼り付ける

メインウィンドウの全面にHTMLViewerを貼り付けます(名前をtwitterViewerとしています)。ウィンドウの大きさは自由ですが、例えばスマートフォン用のWebサイトとして見たい場合は幅を320に指定します。高さは自由ですが、550くらいが良いでしょう。HTMLViewerも同じサイズにし、ウィンドウはResizableをオフにしておきます。

f:id:moongift:20170121181310p:plain

ウィンドウを開いた時のイベントを設定

ウィンドウが開いた時に、このHTMLViewerでTwitterのサイトを読み込むようにします。さらに、ユーザエージェントをiPhoneのものにします。これでスマートフォン専用サイトが表示されます。

twitterViewer.UserAgent = "Mozilla /5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B5110e Safari/601.1 "
twitterViewer.LoadURL("https://twitter.com/")

アプリを立ち上げる

これで完成です。アプリを立ち上げると、Twitterのサイトが表示されます。Webアプリケーションとして、使い勝手良く作られているので、このままでも十分Twitterクライアントとして使えるでしょう。

f:id:moongift:20170121181330p:plain


同じようなアイディアとしてはGmailFacebookFacebook Messenger、Instagramなどといったサイトが考えられます。この手のサイトは業務時間を奪ってしまう傾向があるので、普段使っているWebブラウザからはアクセスを禁止して、専用アプリを必要に応じて立ち上げるというのも良さそうです。

同じような仕組みはElectronを使ってもできますが、Xojoの方がコーディングも少なく、かつアプリケーションのサイズも小さくて済むでしょう。