JP7807668B2 - Information processing system, control method for information processing system, and program - Google Patents
Information processing system, control method for information processing system, and programInfo
- Publication number
- JP7807668B2 JP7807668B2 JP2022211174A JP2022211174A JP7807668B2 JP 7807668 B2 JP7807668 B2 JP 7807668B2 JP 2022211174 A JP2022211174 A JP 2022211174A JP 2022211174 A JP2022211174 A JP 2022211174A JP 7807668 B2 JP7807668 B2 JP 7807668B2
- Authority
- JP
- Japan
- Prior art keywords
- input
- information
- item
- developer
- display
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- User Interface Of Digital Computer (AREA)
- Stored Programmes (AREA)
Description
情報処理システム、情報処理システムの制御方法、及びプログラム関し、特に、アプリケーションソフトウェアの構築のために用いて好適な技術に関する。 This article relates to information processing systems, control methods for information processing systems, and programs, and in particular to technologies suitable for use in building application software.
従来、プログラミング言語によるコード記述が不要または少なくてよいノーコード開発ツール/ローコード開発ツールとして、定義に従ってアプリケーションソフトウェア(以下、アプリケーションと称する)を構築するアプリケーション構築ツールが存在する。特許文献1には、構築するWebアプリケーションの画面を編集するためのレイアウトエディタ画面に、ボタン、テキストボックス等の画面部品のいずれかをドラッグ&ドロップで配置でき、配置した画面部品を入出力定義テーブルに記憶することが提案されている。 Conventionally, application construction tools exist as no-code/low-code development tools that require little or no coding in a programming language and build application software (hereinafter referred to as "applications") according to definitions. Patent Document 1 proposes that screen components such as buttons and text boxes can be placed by drag and drop on a layout editor screen for editing the screen of the web application to be built, and that the placed screen components are stored in an input/output definition table.
アプリケーションソフトウェアの機能を習得するためのチュートリアルについても知られている。特許文献2には、複数のチュートリアルの中から選択されたチュートリアルを実行すること、チュートリアルの進捗状況を表示することなどが提案されている。 Tutorials for learning the functions of application software are also known. Patent Document 2 proposes executing a tutorial selected from multiple tutorials and displaying the progress of the tutorial.
ソフトウェアのチュートリアルに沿って操作することで、実際にソフトウェアの機能を実行できるようにしたチュートリアルがある。ソフトウェアの実際の機能を実行するチュートリアルでは、チュートリアルの中の操作であっても、正しい入力を行わないと、ソフトウェアが正常に動作しない。例えば、REST関数の作成に関するチュートリアルにおいて、リクエストを送信する先のURLは正しく入力しなければ、チュートリアルで作成されたREST関数は正しく機能しない。しかし、チュートリアルの中の操作で、実際に文字列を入力するのは手間であるし、ミスの可能性も高まる。また、チュートリアルに含まれる複数のステップ(手順)のうち、ユーザーが完全に習得あるいは理解しているわけではないが、多くの部分は既に習得あるいは理解している内容は、簡単な確認で素早く済ませたい。それでも、チュートリアルの中の操作で、正しい情報を手入力しなければいけないのは手間である。また、正しい情報を入力しないとチュートリアルの先へ進めないが、正しい入力をするにはどうすればよいか、正しい情報は何かがわからず、チュートリアルを先に進めるに苦労する可能性もある。 Some software tutorials allow users to actually perform software functions by following the instructions. However, even in tutorials that involve performing actual software functions, if the input is not correct, the software will not function properly. For example, in a tutorial on creating a REST function, if the URL to which the request is sent is not entered correctly, the REST function created in the tutorial will not function properly. However, actually entering strings of characters during tutorial operations is tedious and increases the likelihood of error. Furthermore, while users may not fully master or understand many of the multiple steps (procedures) included in the tutorial, they may want to quickly complete the majority of the content they have already mastered or understood with a simple confirmation. Nevertheless, manually entering correct information during tutorial operations is tedious. Furthermore, users cannot proceed further in the tutorial unless they enter the correct information, and they may struggle to progress if they do not know how to enter the correct information or what the correct information is.
そこで本発明は、上記課題に鑑み、チュートリアルにおける操作性をより向上させる仕組みを提供することを目的とする。 In view of the above issues, the present invention aims to provide a mechanism that further improves operability during tutorials.
本発明の情報処理システムは、
チュートリアルに含まれる複数の手順のうち、1の手順でユーザーが情報を入力すべき入力対象項目を示すとともに、ガイド領域に、前記入力対象項目に入力すべき情報であるコピー対象のコピーの指示を受け付けるコピーアイテムを表示するように制御する表示制御手段と、
前記コピーアイテムが操作されたことに応じて前記コピー対象をコピーし、
前記入力対象項目に対してペーストの操作がされたことに応じて、前記コピー対象を前記入力対象項目に入力するように制御する制御手段と、
を有することを特徴とする。
The information processing system of the present invention comprises:
a display control means for controlling the display of an input target item into which a user should input information in one of a plurality of steps included in the tutorial, and for displaying a copy item in the guide area for receiving an instruction to copy a copy target, which is information to be input into the input target item;
copying the copy target in response to the operation of the copy item;
a control means for controlling the input of the copy target into the input target item in response to a paste operation being performed on the input target item;
The present invention is characterized by having the following.
本発明によれば、チュートリアルにおける操作性をより向上させることができる。 This invention can further improve operability during tutorials.
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態で説明されている特徴の組み合わせの全てが発明に必須のものとは限らない。実施形態で説明されている複数の特徴のうち二つ以上の特徴が任意に組み合わされてもよい。また、同一若しくは同様の構成には同一の参照番号を付し、重複した説明は省略する。 The following embodiments are described in detail with reference to the accompanying drawings. Note that the following embodiments do not limit the scope of the claimed invention, and not all combinations of features described in the embodiments are necessarily essential to the invention. Two or more of the features described in the embodiments may be combined in any desired manner. Furthermore, identical or similar components are designated by the same reference numerals, and redundant descriptions will be omitted.
以下に示す実施形態中で示した各種特徴事項は、互いに組み合わせ可能である。なお、以下において、「アプリケーション」、「アプリ」は、いずれも、アプリケーションソフトウェアを意味するものとする。 The various features shown in the following embodiments can be combined with each other. Note that, below, "application" and "app" both refer to application software.
<システム構成>
図1に、本発明の実施形態としての情報処理システムのシステム構成図を示す。図1には、ソフトウェア開発を行うためのシステムと、開発されたソフトウェアを使用するためのシステムとを示す。
<System Configuration>
Fig. 1 shows a system configuration diagram of an information processing system according to an embodiment of the present invention, which includes a system for developing software and a system for using the developed software.
開発者用端末100は、パーソナルコンピュータ(以下、PC)やスマートフォンなどで構成可能な開発者ユーザーが操作する情報処理装置(情報処理端末)である。すなわち、開発者ユーザーのユーザー端末である。開発者用端末100は、開発するアプリケーションの設計操作を開発者から受け付け、設計された内容であるアプリケーションの各種定義情報を開発環境300に送信する。 The developer terminal 100 is an information processing device (information processing terminal) operated by a developer user, which can be configured as a personal computer (hereinafter referred to as PC) or smartphone. In other words, it is the user terminal of the developer user. The developer terminal 100 accepts design operations for the application to be developed from the developer, and transmits various definition information for the application, which is the designed content, to the development environment 300.
開発環境300はネットワーク上(クラウド上、インターネット上)に構築された少なくとも1つのハードウェア資源を用いた環境である。開発環境300はマルチテナントの環境であり、複数の開発者ユーザーがログイン可能な環境である。開発環境300は、開発者情報301、実行エンジン302、ストレージ320を含む。開発環境300は、複数のWebサービス(クラウドサービス)を組み合わせて構築される。 The development environment 300 is an environment that uses at least one hardware resource built on a network (on the cloud, on the Internet). The development environment 300 is a multi-tenant environment, and multiple developer users can log in to it. The development environment 300 includes developer information 301, an execution engine 302, and storage 320. The development environment 300 is built by combining multiple web services (cloud services).
開発者情報301は、開発者のアカウントIDとなるメールアドレス(ユーザーID)、パスワードなどの、開発環境300にログイン可能な開発者のアカウントを記録した情報である。開発者情報301は開発環境300に含まれる少なくとも1つの記録媒体に記録されている。 Developer information 301 is information that records the developer's account that can log in to development environment 300, such as the developer's email address (user ID) that serves as the developer's account ID, and password. Developer information 301 is recorded on at least one recording medium included in development environment 300.
実行エンジン302は、開発環境300で実行すべき処理を実行するための少なくとも1つのハードウェア資源であり、プロセッサ303とメモリ304を含む。プロセッサ303は少なくとも1つのプロセッサからなり、クラウド上の1つのプロセッサでもよいし、複数のプロセッサを組み合わせたプロセッサ群としても良い。メモリ304は、プロセッサ303が実行すべきプログラムを記録した少なくとも1つの記録媒体である。後述する各種フローチャートのうち、開発環境300が実行するものとして説明するものは、実行エンジン302が実行する。すなわち、メモリ304に記録されたプログラムを、プロセッサ303が開発環境300のうちワークメモリとなる領域に展開して実行することにより実現する。 Execution engine 302 is at least one hardware resource for executing processing to be executed in development environment 300, and includes processor 303 and memory 304. Processor 303 consists of at least one processor, and may be a single processor on the cloud, or a processor group combining multiple processors. Memory 304 is at least one recording medium on which programs to be executed by processor 303 are recorded. Of the various flowcharts described below, those described as being executed by development environment 300 are executed by execution engine 302. In other words, the programs recorded in memory 304 are implemented by processor 303 by expanding them into an area of development environment 300 that serves as work memory and executing them.
配信エンジン305は、開発環境300にアクセスした開発者用端末100に対して、開発者用端末100において実行すべきクライアント用プログラム322(HTMLのソースコードやJavaScriptのソースコードなど)を送信する。クライアント用プログラム322は、開発環境300に含まれるストレージ320に予め記録されている。 The distribution engine 305 transmits a client program 322 (such as HTML source code or JavaScript source code) to be executed on the developer terminal 100 to the developer terminal 100 that has accessed the development environment 300. The client program 322 is pre-recorded in storage 320 included in the development environment 300.
ストレージ320は、少なくとも1つの記録媒体の記憶領域であり、少なくとも、各開発者に共通であるクライアント用プログラム322を記憶している。また、開発者のアカウント毎の記憶領域である開発者用領域を有している。例えば、ログイン可能な開発者として開発者A、開発者B、開発者Cがいる場合には、開発者Aのための領域である開発者A領域323、開発者Bのための領域である開発者B領域324、開発者Cのための領域である開発者C領域325が含まれる。各開発者用領域には、各開発者が開発したアプリの定義情報を記憶している。例えば、既発者A領域323にはアプリ定義323a(アプリのUI定義情報、アプリの実行環境用プログラム含む)が記録されている。 Storage 320 is a storage area of at least one recording medium, and stores at least a client program 322 that is common to each developer. It also has a developer area, which is a storage area for each developer account. For example, if developers A, B, and C are able to log in, it includes a developer A area 323 for developer A, a developer B area 324 for developer B, and a developer C area 325 for developer C. Each developer area stores definition information for the apps developed by each developer. For example, developer A area 323 stores app definition 323a (including UI definition information for the app and programs for the app's execution environment).
開発者は、開発者用端末100のブラウザソフトから、開発環境300にアクセスするためのURLにアクセスすることで開発環境300にアクセスし、開発環境にログインする。開発環境にログインすると、開発環境から、クライアント用プログラム322と、過去に開発作業を行って保存していた内容であるアプリ定義(UI定義情報)を受信する。そして、新規にアプリケーションを設計する操作、あるいは、既存の(作りかけの)アプリケーションの更新設計をする操作を行い、その結果であるアプリの定義情報(アプリ定義、UI定義情報)を開発環境300に送信する。開発環境300は受信したアプリ定義を、その開発者用領域に保存する。このように、本実施形態では、クラウド上の開発環境300にアクセスすることが可能な端末であればどのような端末であっても開発者用端末100として利用してアプリケーションの設計を行うことができる。従って、インターネットに接続することが可能な端末さえあれば、開発者は場所を選ばずにアプリケーションの開発を行うことができる。 The developer accesses the development environment 300 by accessing the URL for accessing the development environment 300 from the browser software on the developer terminal 100, and logs in to the development environment. Once logged in to the development environment, the developer receives from the development environment the client program 322 and the app definition (UI definition information) that is the content of previous development work that was saved. The developer then performs an operation to design a new application or an operation to update the design of an existing (in-progress) application, and sends the resulting app definition information (app definition, UI definition information) to the development environment 300. The development environment 300 stores the received app definition in its developer area. In this way, in this embodiment, any terminal that can access the development environment 300 on the cloud can be used as the developer terminal 100 to design an application. Therefore, as long as a terminal that can connect to the Internet is available, developers can develop applications regardless of location.
実行環境400は、ネットワーク上(クラウド上、インターネット上)に構築された少なくとも1つのハードウェア資源を用いた環境である。実行環境400はマルチテナント実行環境410と、複数のシングルテナント実行環境(例えば、シングルテナント実行環境450、460、470)を含む。実行環境400は、複数のWebサービス(クラウドサービス)を組み合わせて構築される。実行環境400には、開発者用端末100と開発環境300を用いて開発されたアプリケーションの定義情報(アプリ定義)がデプロイされるための環境である。そして、アプリケーションを使用するユーザーが用いるアプリユーザー用端末200、201は、アプリケーションの実行のためのURLにアクセスすることで、実行環境400にアクセスする。そして、アプリユーザー用端末200、201で行われた操作に応じた各種アクションを実行環境400が実行することで、開発されたアプリケーションが実行され、アプリユーザーにアプリケーションの機能が提供される。ネットワーク上にある実行環境400に構築されるアプリケーションはいわゆるWEBアプリケーションである。 Execution environment 400 is an environment using at least one hardware resource built on a network (on the cloud or the Internet). Execution environment 400 includes a multi-tenant execution environment 410 and multiple single-tenant execution environments (e.g., single-tenant execution environments 450, 460, 470). Execution environment 400 is built by combining multiple web services (cloud services). Execution environment 400 is an environment for deploying application definition information (app definition) developed using developer terminal 100 and development environment 300. Application user terminals 200 and 201 used by users who use the application access execution environment 400 by accessing a URL for executing the application. The execution environment 400 then executes various actions in response to operations performed on application user terminals 200 and 201, thereby executing the developed application and providing the application's functions to the app user. Applications built in execution environment 400 on a network are so-called web applications.
マルチテナント実行環境410は、複数の開発者に共用されるマルチテナント環境の実行環境であり、複数の開発者によって開発されたアプリケーションがデプロイされる。すなわち、複数の開発者によって共有される環境であり、複数の開発者の複数のアプリを構築可能な環境である。マルチテナント実行環境410には、ユーザー情報411、実行エンジン412、配信エンジン415、ストレージ420、DBセット433を含む。 The multi-tenant execution environment 410 is a multi-tenant execution environment shared by multiple developers, and applications developed by multiple developers are deployed to it. In other words, it is an environment shared by multiple developers, and is an environment in which multiple apps by multiple developers can be built. The multi-tenant execution environment 410 includes user information 411, an execution engine 412, a distribution engine 415, storage 420, and a DB set 433.
ユーザー情報411は、デプロイされたアプリケーション(構築されたアプリケーション)のユーザーアカウントIDとなるメールアドレス(ユーザーネーム)、パスワードなどの、アプリケーションにログイン可能なアプリユーザーのアカウントを記録した情報である。ユーザー情報411はマルチテナント実行環境410に含まれる少なくとも1つの記録媒体に記録されている。 User information 411 is information that records the account of an app user who can log in to the application, such as an email address (username) that serves as the user account ID for the deployed application (built application), and a password. User information 411 is recorded on at least one recording medium included in the multi-tenant execution environment 410.
実行エンジン412は、マルチテナント実行環境410で実行すべき処理を実行するための少なくとも1つのハードウェア資源であり、プロセッサ413とメモリ414を含む。プロセッサ413は少なくとも1つのプロセッサからなり、クラウド上の1つのプロセッサでもよいし、複数のプロセッサを組み合わせたプロセッサ群としても良い。メモリ414は、プロセッサ413が実行すべきプログラムを記録した少なくとも1つの記録媒体である。後述する各種フローチャートのうち、マルチテナント実行環境410が実行するものとして説明するものは、実行エンジン412が実行する。すなわち、メモリ414に記録されたプログラムを、プロセッサ413がマルチテナント実行環境410のうちワークメモリとなる領域に展開して実行することにより実現する。ここで実行されるプログラムは、アプリケーションのアクションを実行するプログラムを含む。 The execution engine 412 is at least one hardware resource for executing processing to be executed in the multi-tenant execution environment 410, and includes a processor 413 and memory 414. The processor 413 consists of at least one processor, and may be a single processor on the cloud, or a processor group combining multiple processors. The memory 414 is at least one recording medium on which programs to be executed by the processor 413 are recorded. Of the various flowcharts described below, those described as being executed by the multi-tenant execution environment 410 are executed by the execution engine 412. In other words, this is realized when the processor 413 deploys and executes the programs recorded in the memory 414 in an area of the multi-tenant execution environment 410 that serves as work memory. The programs executed here include programs that execute application actions.
配信エンジン415は、マルチテナント実行環境410にアクセスしたアプリユーザー用端末200、201に対してアプリユーザー用端末200、201において実行すべきクライアント用プログラム422(HTMLのソースコードやJavaScriptのソースコードなど)を送信する。クライアント用プログラム422は、実行環境410に含まれるストレージ420に予め記録されている。 The distribution engine 415 transmits a client program 422 (such as HTML source code or JavaScript source code) to be executed on the application user terminal 200, 201 to the application user terminal 200, 201 that has accessed the multi-tenant execution environment 410. The client program 422 is pre-recorded in the storage 420 included in the execution environment 410.
ストレージ420は、少なくとも1つの記録媒体の記憶領域であり、少なくとも、複数のアプリケーションで共通であるクライアント用プログラム422を記憶している。また、ストレージ420の所定の領域(所定のフォルダ、所定のバケット、所定の階層下)には、当該実行環境(マルチテナント実行環境410)へアクセスするためのアクセス先情報421が記録されている。また、開発者のアカウント毎の記憶領域である開発者用領域を有している。例えば開発者Aのための領域である開発者A領域423、開発者Bのための領域である開発者B領域424、開発者Cのための領域である開発者C領域425が含まれる。各開発者用領域には、各開発者が開発して、開発環境300からデプロイされたアプリの定義情報を記憶している。例えば、既発者A領域423にはアプリ定義423aが記録されている。 Storage 420 is a storage area of at least one recording medium, and stores at least a client program 422 that is common to multiple applications. In addition, access destination information 421 for accessing the execution environment (multi-tenant execution environment 410) is recorded in a specified area of storage 420 (specified folder, specified bucket, specified level). It also has developer areas, which are storage areas for each developer account. For example, it includes developer A area 423, which is an area for developer A, developer B area 424, which is an area for developer B, and developer C area 425, which is an area for developer C. Each developer area stores definition information for apps developed by each developer and deployed from development environment 300. For example, developer A area 423 stores app definition 423a.
DBセット430は、実行環境410にデプロイされたアプリケーションが用いるデータベースに関する情報群である。DBセット430は、少なくとも1つの記録媒体の記憶領域に記憶される。 DB set 430 is a group of information about databases used by applications deployed in execution environment 410. DB set 430 is stored in the storage area of at least one recording medium.
シングルテナント実行環境1(450)、2(460)、3(470)は、それぞれ1人の開発者(1つの開発者アカウント)に専用の実行環境であり、所有者である開発者によって開発環境300を用いて開発されたアプリケーションがデプロイされる。本実施形態では例として、シングルテナント実行環境1(450)の所有者は開発者A、シングルテナント実行環境2(460)の所有者も開発者A、シングルテナント実行環境3(470)の所有者は開発者B、としている。このように、1人の開発者が複数のシングルテナント実行環境を所有することもできる。シングルテナント実行環境1(450)、2(460)、3(470)はそれぞれ、ユーザー情報451、461、471、実行エンジン452、462、472、配信エンジン455、465、475、ストレージ456、466、476、DBセット457、467、477を含む。これらは、1人の開発者に専用であることを除いては、前述したマルチテナント実行環境410の、ユーザー情報411、実行エンジン412、配信エンジン415、ストレージ420、DBセット433と同様の機能であるため、詳細な説明は省略する。シングルテナント実行環境は図示した3つだけでなく、更に数多く構築することが可能である。 Single-tenant execution environments 1 (450), 2 (460), and 3 (470) are each execution environments dedicated to one developer (one developer account), and applications developed by the owner developer using development environment 300 are deployed therein. In this embodiment, as an example, the owner of single-tenant execution environment 1 (450) is Developer A, the owner of single-tenant execution environment 2 (460) is also Developer A, and the owner of single-tenant execution environment 3 (470) is Developer B. In this manner, one developer can own multiple single-tenant execution environments. Single-tenant execution environments 1 (450), 2 (460), and 3 (470) each include user information 451, 461, and 471, execution engines 452, 462, and 472, distribution engines 455, 465, and 475, storage 456, 466, and 476, and DB sets 457, 467, and 477. Apart from the fact that these are dedicated to a single developer, they have the same functions as the user information 411, execution engine 412, distribution engine 415, storage 420, and DB set 433 of the multi-tenant execution environment 410 described above, so detailed explanations will be omitted. It is possible to build many more single-tenant execution environments than the three shown in the figure.
図1のシステムを用いて、例えば、運用者が、マルチテナント実行環境410を開発者に無償提供し、シングルテナント実行環境を有償提供するという運用とすることが考えられる。マルチテナント実行環境410も、各シングルテナント実行環境も、リソースとサービスの提供業者(クラウドサービス事業者)に対して本システムの運用者が維持費用を支払う必要がある。マルチテナント実行環境410の維持費用は、運用者が負担して複数の開発者に無償提供することにより、開発者が本システムの試用のために費用負担をする必要がないため、多くの開発者が利用しやすく、本システムの普及を促進することができる。運用者は、シングルテナント実行環境に対して開発者に課金することで費用回収する。 Using the system in Figure 1, for example, an operator could provide the multi-tenant execution environment 410 to developers free of charge and the single-tenant execution environments for a fee. The operator of this system would need to pay maintenance costs to the resource and service provider (cloud service provider) for both the multi-tenant execution environment 410 and each single-tenant execution environment. By having the operator cover the maintenance costs of the multi-tenant execution environment 410 and provide it free of charge to multiple developers, developers would not need to incur costs for trial use of the system, making it easier for many developers to use and promoting the spread of the system. The operator would recover costs by charging developers for the single-tenant execution environments.
1つの実行環境で単位時間あたりに処理できる処理リクエストの数に上限があり、数多くのアプリケーションがマルチテナント実行環境に構築され、多くのアプリユーザーが同時にアクセスした場合、リクエストが処理しきれず、アプリケーションの動作が遅くなるなどの状況になる可能性がある。他にも、マルチテナント実行環境に多くの開発者が開発した多くのアプリケーションがデプロイされて実行されることに対して、いくらかの制限があり、その制限のためにアプリケーションが十分なパフォーマンスを発揮できない場合がある。開発者が、有償で専用のシングルテナント実行環境を所有することで、このようなマルチテナント実行環境の制限による問題は回避(あるいは低減)することができる。すなわち、アプリケーションをシングルテナント実行環境に構築することで、十分なパフォーマンスを発揮するアプリケーションを構築することができる。 There is a limit to the number of processing requests that can be processed per unit time in a single execution environment. If many applications are built in a multi-tenant execution environment and many app users access them simultaneously, the requests may not be able to be processed, which could result in the applications running slowly. There are also some limitations on the number of applications developed by many developers that can be deployed and executed in a multi-tenant execution environment, and these limitations may prevent applications from achieving their full performance. Developers can avoid (or mitigate) these problems caused by the limitations of a multi-tenant execution environment by paying to own a dedicated single-tenant execution environment. In other words, by building applications in a single-tenant execution environment, it is possible to build applications that demonstrate sufficient performance.
このようなマルチテナントシングル環境とシングルテナント実行環境の双方の特徴を踏まえ、開発者は、本システムを次のように活用できる。例えば、本システムを初めて使う場合にはマルチテナント実行環境410に本システムを用いて開発したアプリケーションを構築して試用を行った後に、本システムが開発者のソフトウェア開発に資すると判断したうえで、シングルテナント実行環境を有償で導入するといった使い方ができる。また、開発者が特定のアプリケーションXを開発する際に、一般ユーザーに公開する前に、人数の限られたテストユーザーに試用してもらうためのアプリケーションXのα版をマルチテナント実行環境410に構築する。そこでアプリケーションXのテスト行い、アプリケーションXの修正などを行い、更に開発を進める。そして、一般ユーザーへ公開しても問題ないレベルまで開発が完了した後に、アプリケーションXの本運用版をシングルテナント実行環境に構築して、一般ユーザーに公開する。このような使い方をすれば、開発者は、開発期間の開発費用を抑え、かつ、多数の一般ユーザーが利用しても問題の無いアプリケーションの運用を行うことができる。 Taking into account the characteristics of both the multi-tenant single environment and the single-tenant execution environment, developers can use the system as follows. For example, when using the system for the first time, a developer can build an application developed using the system in the multi-tenant execution environment 410 and test it. After determining that the system is beneficial to the developer's software development, the developer can purchase a single-tenant execution environment. Furthermore, when developing a specific application X, a developer can build an alpha version of application X in the multi-tenant execution environment 410 for a limited number of test users to try out before releasing it to general users. Application X is then tested, modifications are made, and further development is carried out. Then, once development is complete to a level where it can be released to general users, a production version of application X is built in the single-tenant execution environment and released to general users. Using the system in this way, developers can reduce development costs during the development period and operate applications without any problems, even when used by a large number of general users.
図2に、開発者用端末100、アプリユーザー用端末200、アプリユーザー用端末201として適用可能な装置(電子機器)の一例としての情報処理装置のハードウェアブロック図を示す。図2において、内部バス150に対してCPU101、メモリ102、不揮発性メモリ103、画像処理部104、ディスプレイ105、操作部106、記録媒体I/F107、外部I/F109、通信I/F110が接続されている。内部バス150に接続される各部は、内部バス150を介して互いにデータのやりとりを行うことができるようにされている。 Figure 2 shows a hardware block diagram of an information processing device as an example of a device (electronic device) that can be used as developer terminal 100, application user terminal 200, and application user terminal 201. In Figure 2, CPU 101, memory 102, non-volatile memory 103, image processing unit 104, display 105, operation unit 106, recording medium I/F 107, external I/F 109, and communication I/F 110 are connected to internal bus 150. Each unit connected to internal bus 150 is capable of exchanging data with each other via internal bus 150.
メモリ102は、例えばRAM(半導体素子を利用した揮発性のメモリなど)からなる。CPU101は、例えば不揮発性メモリ103に格納されるプログラムに従い、メモリ102をワークメモリとして用いて、情報処理装置の各部を制御する。不揮発性メモリ103には、画像データや音声データ、その他のデータ、CPU101が動作するための各種プログラムなどが格納される。不揮発性メモリ103は例えばハードディスク(HD)やROMなどで構成される。 Memory 102 is, for example, RAM (volatile memory using semiconductor elements, etc.). CPU 101 controls each part of the information processing device using memory 102 as work memory in accordance with programs stored in, for example, non-volatile memory 103. Non-volatile memory 103 stores image data, audio data, other data, and various programs for CPU 101 to operate. Non-volatile memory 103 is, for example, composed of a hard disk (HD) or ROM.
画像処理部104は、CPU101の制御に基づいて、不揮発性メモリ103や記録媒体108に格納された画像データや、外部I/F109を介して取得した映像信号、通信I/F110を介して取得した画像データ、撮像された画像などに対して各種画像処理を施す。画像処理部104が行う画像処理には、A/D変換処理、D/A変換処理、画像データの符号化処理、圧縮処理、デコード処理、拡大/縮小処理(リサイズ)、ノイズ低減処理、色変換処理などが含まれる。画像処理部104は特定の画像処理を施すための専用の回路ブロックで構成しても良い。また、画像処理の種別によっては画像処理部104を用いずにCPU101がプログラムに従って画像処理を施すことも可能である。 Under the control of the CPU 101, the image processing unit 104 performs various image processing on image data stored in the non-volatile memory 103 or recording medium 108, video signals acquired via the external I/F 109, image data acquired via the communication I/F 110, captured images, etc. The image processing performed by the image processing unit 104 includes A/D conversion processing, D/A conversion processing, image data encoding processing, compression processing, decoding processing, enlargement/reduction processing (resizing), noise reduction processing, color conversion processing, etc. The image processing unit 104 may be configured with a circuit block dedicated to performing specific image processing. Furthermore, depending on the type of image processing, the CPU 101 may perform image processing according to a program without using the image processing unit 104.
ディスプレイ105は、CPU101の制御に基づいて、画像やGUI(Graphical User Interface)を構成するGUI画面などを表示する。CPU101は、プログラムに従い表示制御信号を生成し、ディスプレイ105に表示するための映像信号を生成してディスプレイ105に出力するように情報処理装置の各部を制御する。ディスプレイ105は出力された映像信号に基づいて映像を表示する。なお、情報処理装置自体が備える構成としてはディスプレイ105に表示させるための映像信号を出力するためのインターフェースまでとし、ディスプレイ105は外付けのモニタ(テレビなど)で構成してもよい。以下、開発者用端末100、アプリユーザー用端末200、アプリユーザー用端末201が実行する処理においての表示先は、特に断りが無い場合には、各動作主のディスプレイ105であるものとする。 Under the control of CPU 101, display 105 displays images and GUI screens that constitute a GUI (Graphical User Interface). CPU 101 generates display control signals according to a program and controls each part of the information processing device to generate video signals for display on display 105 and output them to display 105. Display 105 displays images based on the output video signals. Note that the information processing device itself may only have an interface for outputting video signals for display on display 105, and display 105 may be configured as an external monitor (such as a television). Hereinafter, unless otherwise specified, the display destination for processes executed by developer terminal 100, application user terminal 200, and application user terminal 201 will be assumed to be the display 105 of each operator.
操作部106は、キーボードなどの文字情報入力デバイスや、マウスやタッチパネルといったポインティングデバイス、ボタン、ダイヤル、ジョイスティック、タッチセンサ、タッチパッドなどを含む、ユーザー操作を受け付けるための入力デバイスである。なお、タッチパネルは、ディスプレイ105に重ね合わせて平面的に構成され、接触された位置に応じた座標情報が出力されるようにした入力デバイスである。 The operation unit 106 is an input device for accepting user operations, and includes a character information input device such as a keyboard, a pointing device such as a mouse or touch panel, a button, a dial, a joystick, a touch sensor, a touchpad, etc. The touch panel is an input device that is configured as a planar surface overlaid on the display 105 and outputs coordinate information according to the position of contact.
記録媒体I/F107は、メモリーカードやCD、DVDといった記録媒体108が装着可能とされ、CPU101の制御に基づき、装着された記録媒体108からのデータの読み出しや、当該記録媒体108に対するデータの書き込みを行う。外部I/F109は、外部機器と有線ケーブルや無線によって接続し、映像信号や音声信号の入出力を行うためのインターフェースである。通信I/F110は、外部機器やインターネット111などと通信して、ファイルやコマンドなどの各種データの送受信を行うためのインターフェースである。開発者用端末100は通信I/F110を用いて、インターネット111上にある開発環境300と通信可能(情報の送受信可能)である。アプリユーザー用端末200、201は通信I/F110を用いて、インターネット111上にある実行環境400と通信可能(情報の送受信可能)である。 The recording medium I/F 107 allows a recording medium 108 such as a memory card, CD, or DVD to be attached, and reads and writes data from and to the attached recording medium 108 under the control of the CPU 101. The external I/F 109 is an interface that connects to an external device via a wired cable or wirelessly, and is used to input and output video and audio signals. The communication I/F 110 is an interface that communicates with external devices and the Internet 111, sending and receiving various data such as files and commands. The developer terminal 100 can communicate with (send and receive information from) the development environment 300 on the Internet 111 using the communication I/F 110. The application user terminals 200 and 201 can communicate with (send and receive information from) the execution environment 400 on the Internet 111 using the communication I/F 110.
<ログイン処理>
図3(a)、(b)に、ログイン処理のフローチャートを示す。この処理は、開発者用端末100から開発環境300にログインしてUIエディタを表示するまでの処理である。開発者用端末100において、インターネットブラウザソフトを立ち上げ、本実施形態の開発システム(アプリケーション開発プラットフォーム)のURLを指定してアクセスする指示があると、図3(a)の処理を開始する。図3(a)の処理は、開発者用端末100のCPU101が、インターネットブラウザソフトを実行するための不揮発性メモリ103に記録されたプログラムと、開発環境300から受信したクライアント用プログラム322とを、メモリ102に展開して実行することにより実現する。以降、単に開発者用端末100が実行する処理として記載したものは、開発者用端末100のCPU101が、インターネットブラウザソフトを実行するための不揮発性メモリ103に記録されたプログラムと、開発環境300から受信したクライアント用プログラム322とを、メモリ102に展開して実行する処理であるものとする。
<Login process>
3A and 3B show flowcharts of the login process. This process covers the process from logging in to the development environment 300 from the developer terminal 100 to displaying the UI editor. When the developer terminal 100 launches the internet browser software and receives an instruction to access the development system (application development platform) of this embodiment by specifying the URL, the process shown in FIG. 3A begins. The process shown in FIG. 3A is realized by the CPU 101 of the developer terminal 100 loading into memory 102 a program stored in nonvolatile memory 103 for executing the internet browser software and a client program 322 received from the development environment 300. Hereinafter, the process simply described as the process executed by the developer terminal 100 refers to the process in which the CPU 101 of the developer terminal 100 loads into memory 102 a program stored in nonvolatile memory 103 for executing the internet browser software and a client program 322 received from the development environment 300 and executes them.
開発者用端末100において、インターネットブラウザソフトを立ち上げ、本実施形態の開発システム(アプリケーション開発プラットフォーム)のURLを指定してアクセスすると、開発環境300の配信エンジン305がアクセスを検知し、アクセス元の開発者用端末100にクライアント用プログラム322を送信する。 When the developer terminal 100 launches the internet browser software and accesses the development system (application development platform) of this embodiment by specifying its URL, the distribution engine 305 of the development environment 300 detects the access and sends the client program 322 to the developer terminal 100 that is the source of the access.
S301では、開発者用端末100は、開発環境300から送信されたクライアント用プログラム322(クライアント用情報)を受信したか否かを判定する。受信していなければS301で受信を待ち、受信したらS302に進む。 In S301, the developer terminal 100 determines whether it has received the client program 322 (client information) sent from the development environment 300. If it has not been received, it waits for reception in S301, and if it has been received, it proceeds to S302.
S302では、開発者用端末100は、開発環境300から受信したクライアント用プログラム322(クライアント用情報)メモリ102に記録する。 In S302, the developer terminal 100 records the client program 322 (client information) received from the development environment 300 in memory 102.
S303では、開発者用端末100は、クライアント用プログラム322に従い、ログイン画面をディスプレイ105に表示する。ログイン画面には、本実施形態の開発システムへのログイン画面である旨と、開発者IDとパスワードの入力欄、新規登録ボタン(アイコン)、ログインボタン(アイコン)が表示される。 In S303, the developer terminal 100 displays a login screen on the display 105 in accordance with the client program 322. The login screen displays a message indicating that this is the login screen for the development system of this embodiment, as well as fields for entering a developer ID and password, a new registration button (icon), and a login button (icon).
S304では、開発者用端末100は、ログイン画面の開発者IDとパスワードの入力欄への入力操作を受け付ける。ユーザーの入力操作は操作部106を用いて行われる。開発者IDは開発者ユーザーを識別(特定)するためのユーザー識別情報である。本実施形態では開発者ID(ユーザーネーム)は、メールアドレスであるものとする。また、暗証情報として用いるパスワードは任意の文字列であるものとするが、生体認証情報(指紋認証は顔認証に用いる情報)や、パターン認証の情報(画面に入力された軌跡パターンの情報)など、他の暗証情報としてもよい。 In S304, the developer terminal 100 accepts input operations into the input fields for the developer ID and password on the login screen. The user's input operations are performed using the operation unit 106. The developer ID is user identification information used to identify (specify) the developer user. In this embodiment, the developer ID (user name) is assumed to be an email address. Furthermore, the password used as the secret code is assumed to be an arbitrary character string, but it may also be other secret code, such as biometric authentication information (fingerprint authentication is information used for face authentication) or pattern authentication information (information on the trajectory pattern entered on the screen).
S305では、開発者用端末100は、ログイン画面の新規登録ボタンを指示する操作(例えばクリック)されたか否かを判定する。なお、以下、表示アイテム(ボタン、アイコンなどの表示物、表示項目)に対して、操作部106に含まれるマウスでクリックする、タッチパネルへタッチする、といった方法で指示する操作を、単に「押下」と記載する。新規登録ボタンが押下された場合にはS306に進み、そうでない場合にはS307に進む。 In S305, the developer terminal 100 determines whether an operation has been performed (e.g., a click) to instruct the new registration button on the login screen. Note that hereafter, an operation to instruct a display item (a display object such as a button or icon, or a display item) by clicking with the mouse included in the operation unit 106 or touching the touch panel will be referred to simply as "pressing." If the new registration button has been pressed, proceed to S306; if not, proceed to S307.
S306では、開発者用端末100は、開発者アカウント登録処理を行う。 At S306, the developer terminal 100 performs developer account registration processing.
S307では、開発者用端末100は、ログイン画面のログインボタンが押下されたか否かを判定する。ログインボタンが押下された場合にはS308に進み、そうでない場合にはS304に戻る。 In S307, the developer terminal 100 determines whether the login button on the login screen has been pressed. If the login button has been pressed, the process proceeds to S308; if not, the process returns to S304.
S308では、開発者用端末100は、ログイン情報として、ログイン画面の開発者IDとパスワードの入力欄へ入力された情報(入力された開発者IDとパスワード)を開発環境300に送信する。送信後、開発環境300において認証処理が行われるため、その結果を待つ。 In S308, the developer terminal 100 sends the information entered in the developer ID and password input fields on the login screen (the entered developer ID and password) to the development environment 300 as login information. After sending, authentication processing is performed in the development environment 300, so the developer terminal 100 waits for the results.
S309では、開発者用端末100は、開発環境300からログインエラーの旨の情報を受信したか否かを判定する。ログインエラーの旨の情報を受信した場合はS304に戻って再度ログイン情報の入力を受け付け、そうでない場合にはS310へ進む。 In S309, the developer terminal 100 determines whether it has received information from the development environment 300 indicating a login error. If it has received information indicating a login error, it returns to S304 and accepts the input of login information again; if not, it proceeds to S310.
S310では、開発者用端末100は、開発環境300から実行環境リストを受信したか否かを判定する。開発環境300はログイン認証が成功すれば実行環境リストを開発者用端末100に送信するため、実行環境リストを受信したということは、ログイン認証に成功した(ログインできた)ということである。実行環境リストを受信した場合にはS311に進み、そうでない場合にはS309に戻る。 In S310, the developer terminal 100 determines whether it has received an execution environment list from the development environment 300. If login authentication is successful, the development environment 300 sends the execution environment list to the developer terminal 100, so receiving the execution environment list means that login authentication was successful (login was successful). If the execution environment list has been received, proceed to S311; if not, return to S309.
S311では、開発者用端末100は、ログイン後のアプリの開発画面として、S310で受信した実行環境リストをメモリ102に記録するとともに、受信した実行環境リストに基づいて実行環境の選択肢をディスプレイ105に表示する。実行環境リストはログインした開発者がアクセス可能な実行環境を示している。なお、S311以降に開発者用端末100で表示される画面であって、構築後のアプリの画面とは異なる画面を総称して開発画面と称するものとする。 In S311, the developer terminal 100 records the execution environment list received in S310 in memory 102 as the development screen for the app after login, and displays execution environment options on the display 105 based on the received execution environment list. The execution environment list indicates the execution environments that the logged-in developer can access. Note that screens displayed on the developer terminal 100 after S311 that differ from the screen of the built app are collectively referred to as development screens.
図5(a)に、S311での実行環境の選択肢の表示例を示す。図5(a)の表示例では、ログインした開発者がアクセス可能な実行環境として、マルチテナント実行環境410に対応する選択肢551と、シングルテナント実行環境に対応する選択肢552の2つの選択肢が表示されている。開発者ユ―ザーはこれらの選択肢のいずれかを押下することにより選択して、SAVEボタン553を押下することで選択を確定することができる。ここで選択されるのは、今回のログインにおいてこの後の作業で更新したアプリケーションをデプロイする先である。この時点で実行環境にアクセスするわけではない。また、ここで選択した実行環境は後述する操作によって変更可能である。 Figure 5(a) shows an example of the execution environment options displayed in S311. In the display example of Figure 5(a), two options are displayed as execution environments accessible to the logged-in developer: option 551 corresponding to the multi-tenant execution environment 410, and option 552 corresponding to the single-tenant execution environment. The developer user can select one of these options by pressing it, and confirm the selection by pressing the SAVE button 553. The selection made here is the destination to which the application updated in subsequent work during this login will be deployed. The execution environment is not accessed at this point. The execution environment selected here can be changed using the operations described below.
S312では、開発者用端末100は、実行環境の選択が行われたか否かを判定する。実行環境の選択肢のいずれかが押下され、SAVEボタン553が押下された場合にはS313に進み、そうでない場合にはS312で実行環境の選択を待つ。 In S312, the developer terminal 100 determines whether an execution environment has been selected. If one of the execution environment options has been pressed and the SAVE button 553 has been pressed, the process proceeds to S313; if not, the process waits for the execution environment to be selected in S312.
S313では、開発者用端末100は、S312で選択された実行環境を特定する情報(実行環境IDなど)を「選択中実行環境」としてメモリ102に記録するとともに、開発環境300に送信する。開発環境300では、選択中実行環境(選択環境)を特定する情報を受信したことに応じて、アプリ情報として、ログイン開発者が所有する全てのアプリケーション(過去に生成され、ストレージ320に記録されているアプリケーション)を特定する情報(アプリIDやアプリ名など)を送信する。 In S313, the developer terminal 100 records information identifying the execution environment selected in S312 (such as the execution environment ID) in memory 102 as the "selected execution environment" and transmits it to the development environment 300. In response to receiving the information identifying the selected execution environment (selected environment), the development environment 300 transmits, as app information, information identifying all applications owned by the logged-in developer (applications previously generated and recorded in storage 320) (such as the app ID and app name).
S314では、開発者用端末100は、開発環境300からアプリ情報を受信したか否かを判定する。アプリ情報を受信した場合にはS315に進み、そうでない場合にはS314でアプリ情報の受信を待つ。 In S314, the developer terminal 100 determines whether or not app information has been received from the development environment 300. If app information has been received, the process proceeds to S315; if not, the developer terminal 100 waits for the reception of app information in S314.
S315では、開発者用端末100は、受信したアプリ情報をメモリ102に記録するとともに、アプリ情報に基づき、ログインユーザーが所有する(開発中の)アプリケーションの一覧(アプリ一覧)をディスプレイ105に表示する。 In S315, the developer terminal 100 records the received app information in memory 102 and, based on the app information, displays on the display 105 a list of applications (app list) owned (or under development) by the logged-in user.
S316では、開発者用端末100は、アプリ一覧に表示されたアプリケーションの一覧のうち、いずれかのアプリケーションが選択されたか否かを判定する。いずれかのアプリが選択された場合にはS317に進み、そうでない場合はS320に進む。 In S316, the developer terminal 100 determines whether any application has been selected from the list of applications displayed in the app list. If any application has been selected, the process proceeds to S317; if not, the process proceeds to S320.
S317では、開発者用端末100は、アプリ一覧から選択されたアプリケーションを「選択中アプリ」として、選択中アプリを特定する情報(アプリIDやアプリ名など)をメモリ102に記録するとともに、開発環境300に送信する。開発環境300では、選択中アプリを特定する情報を受信すると、ストレージ320のうち、ログインしている開発者の領域から選択中アプリの定義情報(アプリ定義)を取得し、開発者用端末100に送信する。 In S317, the developer terminal 100 records the application selected from the app list as the "selected app" in memory 102, and also transmits information identifying the selected app (such as the app ID and app name) to the development environment 300. Upon receiving the information identifying the selected app, the development environment 300 obtains definition information (app definition) for the selected app from the area of storage 320 for the logged-in developer, and transmits it to the developer terminal 100.
S318では、開発者用端末100は、開発環境300から選択中アプリの定義情報(UI定義情報)を受信したか否かを判定する。選択中アプリの定義情報を受信した場合には、受信した選択中アプリの定義情報をメモリ102に記録してS319に進み、そうでない場合にはS318で定義情報の受信を待つ。本実施形態では、この定義情報は、Json形式でアプリケーションに関する各種定義が記述されたJsonファイルであるものとする。以降、選択中アプリに関してディスプレイ105に表示を行う場合には、メモリ102に記録した定義情報に基づいて表示を行う。後述するUIエディタ処理などで選択中アプリについて更新する操作(例えば、UI部品の配置を変更するなど)が行われると、このメモリ102の定義情報を更新後の内容を定義するように更新する。そして保存の指示があった場合に、メモリ102に記録された最新の定義情報を開発環境300に送信し、ストレージ320のうちログイン開発者の領域に保存させる。このようにすることで、開発環境300との通信頻度の増大を抑え、通信のためにレスポンスが低下することを抑止して快適な更新作業を行うことができる。 In S318, the developer terminal 100 determines whether it has received definition information (UI definition information) for the selected app from the development environment 300. If it has received definition information for the selected app, it records the received definition information for the selected app in memory 102 and proceeds to S319. If not, it waits for the reception of definition information in S318. In this embodiment, this definition information is a Json file in Json format that describes various definitions related to the application. Thereafter, when the selected app is displayed on the display 105, it is displayed based on the definition information recorded in memory 102. When an operation to update the selected app (e.g., changing the layout of UI components) is performed using the UI editor process described below, the definition information in memory 102 is updated to define the updated content. Then, when a save command is received, the latest definition information recorded in memory 102 is sent to the development environment 300 and saved in the logged-in developer's area of storage 320. This reduces the frequency of communication with the development environment 300 and prevents a decrease in response time due to communication, allowing for smooth update operations.
S319では、開発者用端末100は、ディスプレイ105にUIエディタ画面を表示するとともに、受信した定義情報に基づく表示を行う。例えば、選択中アプリがデスクトップ用であるか用であるかに応じた形状(すなわち、アプリを利用するデバイスの種別に応じた形状)のキャンバス(UI画面の編集領域)を表示する。テスクトップ用であれば16:9の矩形のキャンバスとし、モバイル用であればスマートフォンを模した縦長のアスペクト比のキャンバスとする。サブメニュー領域(後述)には選択中アプリが有する(選択中アプリに属する)UI画面の一覧を表示する(この処理は厳密には後述する図4のS401で行われる)。また、キャンバスには、デフォルトで選択されるUI画面(イニシャルUIや最後に保存した際に編集していたUI画面)に配置されるコンポーネント(UI画面に配置されるUI部品)を表示する。なお、編集対象のUI画面をデフォルトで選択することをせず、この時点ではキャンバスには何も表示しないようにしても良い。S319の処理でログイン処理を終了し、続いて、図4のS401へ進む。 In S319, the developer terminal 100 displays a UI editor screen on the display 105 and displays the screen based on the received definition information. For example, a canvas (editing area of the UI screen) with a shape corresponding to whether the selected app is for desktop or mobile use (i.e., a shape corresponding to the type of device on which the app will be used) is displayed. For desktop use, a rectangular canvas with a 16:9 aspect ratio is used, and for mobile use, a canvas with a vertical aspect ratio similar to that of a smartphone is used. A list of UI screens owned by (belonging to) the selected app is displayed in the submenu area (described below). (Strictly speaking, this process is performed in S401 of Figure 4, described below.) The canvas also displays components (UI parts to be placed on the UI screen) that will be placed on the UI screen selected by default (the initial UI or the UI screen edited at the time of the last save). Note that the UI screen to be edited may not be selected by default, and nothing may be displayed on the canvas at this point. The login process ends in S319, and the process proceeds to S401 of Figure 4.
一方、S320では、開発者用端末100は、アプリ一覧を表示した画面に表示された、アプリケーションを新規に作成するためのアイコン(図14(a)のアプリ作成ボタン1402)が押下され、新規アプリケーションの作成が指示されたか否かを判定する。新規アプリケーションの作成が指示されたと判定した場合にはS321に進み、そうでない場合にはS350へ進む。 On the other hand, in S320, the developer terminal 100 determines whether an icon for creating a new application (Create App button 1402 in FIG. 14(a)) displayed on the screen displaying the list of applications has been pressed, instructing the creation of a new application. If it determines that an instruction to create a new application has been issued, the process proceeds to S321; otherwise, the process proceeds to S350.
S350では、開発者用端末100は、チュートリアルボタン1401(図14(a))が押下されたか否かを判定する。チュートリアルボタン1401が押下された場合にはS351に進み、そうでない場合にはS316に進む。 In S350, the developer terminal 100 determines whether the tutorial button 1401 (Figure 14(a)) has been pressed. If the tutorial button 1401 has been pressed, the process proceeds to S351; if not, the process proceeds to S316.
S351では、開発者用端末100は、チュートリアルボタン処理を行う。チュートリアル処理については図13を用いて後述する。 In S351, the developer terminal 100 performs tutorial button processing. The tutorial processing will be described later using Figure 13.
S321では、開発者用端末100は、新規作成するアプリケーションを、デスクトップ用(PC用)とするかモバイル用とするかの選択画面を表示し、いずれかを選択する操作を受け付ける。デスクトップ用アプリケーションとは、デスクトップPC、ノートPCなどのアプリユーザー用端末200からアクセスされ、操作されることを想定したアプリケーションである。モバイル用アプリケーションとは、スマートフォンなどのアプリユーザー用端末201からアクセスされ、操作されることを想定したアプリケーションである。 In S321, the developer terminal 100 displays a selection screen asking whether the newly created application should be for desktop use (for PCs) or for mobile use, and accepts an operation to select one of the options. A desktop application is an application that is intended to be accessed and operated from an application user terminal 200 such as a desktop PC or laptop PC. A mobile application is an application that is intended to be accessed and operated from an application user terminal 201 such as a smartphone.
S322では、開発者用端末100は、新規作成するアプリケーションに関する基本となるアプリ情報(少なくともアプリ名、アプリID)の入力を受け付けるための画面を表示し、アプリ情報を設定する入力操作を受け付ける。アプリ情報の入力を受け付けると、S321で受け付けたデスクトップ用(PC用)かモバイル用かの情報と、S322で入力を受け付けたアプリ情報を開発環境300に送信する。こうして、新規作成されたアプリケーションの定義情報として、開発環境300のストレージ320に、新規のアプリケーションの定義情報が作成され、デスクトップ用(PC用)かモバイル用かの情報と、アプリ名、アプリIDが記録される。過去に作成済みのアプリケーションの定義情報にも、このようにして、デスクトップ用(PC用)かモバイル用かの情報と、アプリ名、アプリIDが記録されている。 In S322, the developer terminal 100 displays a screen for accepting input of basic app information (at least the app name and app ID) for the newly created application, and accepts input operations to set the app information. Upon accepting the input of the app information, the information on whether the application is for desktop (PC) or mobile use accepted in S321 and the app information accepted in S322 are sent to the development environment 300. In this way, definition information for the new application is created in storage 320 of the development environment 300 as definition information for the newly created application, and the information on whether the application is for desktop (PC) or mobile use, the app name, and the app ID are recorded. In this way, the information on whether the application is for desktop (PC) or mobile use, the app name, and the app ID are also recorded in the definition information for applications that have already been created in the past.
S323では、開発者用端末100は、新規作成されたアプリケーションの編集画面としてUIエディタ画面を表示する。この場合、キャンバスはS321で選択されたデスクトップ用であるかモバイル用であるかに応じた形状で表示される。また、キャンバスはコンポーネントが1つも配置されていない空白情報で表示される。S323の処理でログイン処理を終了し、続いて、図4のS401へ進む。 In S323, the developer terminal 100 displays a UI editor screen as an editing screen for the newly created application. In this case, the canvas is displayed in a shape that corresponds to whether it is for desktop or mobile use, selected in S321. The canvas is also displayed as blank information with no components placed on it. The login process ends in S323, and the program then proceeds to S401 in Figure 4.
図3(b)に、図3(a)の開発者用端末100側でのログイン処理と協働する開発環境300側のログイン処理を示す。図3(b)の処理は、開発環境300のプロセッサ303が、メモリ304に記録されたプログラムを、プロセッサ303が開発環境300のうちワークメモリとなる領域に展開して実行することにより実現する。以降、単に開発環境300が実行する処理として記載したものは、開発環境300の実行エンジン302が、より詳しくはプロセッサ303が実行する処理であるものとする。 Figure 3(b) shows the login process on the development environment 300 side, which cooperates with the login process on the developer terminal 100 side in Figure 3(a). The process in Figure 3(b) is realized by the processor 303 of the development environment 300 expanding and executing a program recorded in memory 304 into an area of the development environment 300 that serves as work memory. Hereinafter, any description of a process simply executed by the development environment 300 will be taken to mean a process executed by the execution engine 302 of the development environment 300, or more specifically, by the processor 303.
S331では、開発環境300は、S308で開発者用端末100から送信されたログイン情報を受信したか否かを判定する。ログイン情報を受信した場合にはS332に進み、そうでない場合にはログイン情報の受信を待つ。 In S331, the development environment 300 determines whether the login information sent from the developer terminal 100 in S308 has been received. If the login information has been received, the process proceeds to S332; if not, the process waits for the login information to be received.
S332では、開発環境300は、受信したログイン情報と、開発者情報301を比較し、ログイン認証(ユーザー認証)を行う。より具体的には、受信したログイン情報に含まれる開発者IDとパスワードの組と一致する情報が、開発者情報301(ユーザー情報)に含まれているかを判定する。含まれていれば認証は成功する。 In S332, the development environment 300 compares the received login information with the developer information 301 and performs login authentication (user authentication). More specifically, it determines whether the developer information 301 (user information) contains information that matches the developer ID and password combination contained in the received login information. If so, authentication is successful.
S333では、開発環境300は、S332の認証処理の結果、ログインOKである(認証に成功した、認証された、認証OKである)か否かを判定する。ログインOKである場合にはS335に進み、ログインOKでない場合にはS334に進み、ログインエラーである旨の情報を開発者用端末100に送信する。 In S333, the development environment 300 determines whether the result of the authentication process in S332 is that the login is successful (authentication was successful, the user was authenticated, authentication is successful). If the login is successful, the process proceeds to S335; if the login is not successful, the process proceeds to S334, and information indicating a login error is sent to the developer terminal 100.
S335では、開発環境300は、開発者情報301に含まれる、ログインOKとなった開発者(ログイン開発者)の実行環境リストを開発者用端末100に送信する。開発者情報301には、各開発者について、メールアドレス(ユーザーネーム、開発者ID)とパスワードに加えて、アクセス可能な実行環境IDが記録されている。各実行環境IDはクラウドサービス(Webサービス)におけるアカウントIDであり、本実施形態では12桁のIDであるものとする。複数の実行環境にアクセス可能な開発者の場合は、12桁の実行環境IDがカンマで区切られて記録されている。S335では、ログイン開発者についての、このアクセス可能な実行環境ID(カンマで区切られた1つ以上の実行環境ID)を開発者用端末100に送信する。すなわち、S335において、開発者情報301を参照することにより、ログイン開発者がアクセス可能な実行環境が特定される。このように、各開発者のアクセス可能な実行環境(各開発者が利用可能な実行環境)は、開発環境300に記録された開発者情報301に記録されている。そして、このログイン可能な実行環境は、ログインOKとなった開発者でなければ取得できない。また、ログインOKとなった開発者自身のアクセス可能実行環境しか取得できない。このようにすることで、開発者が、自身のアクセス可能な実行環境へアクセスするための情報を、開発環境300にログインするための情報と別途に管理する必要がない。また、他のユーザーが不正に実行環境へアクセスすることも抑止できる。 In S335, the development environment 300 sends to the developer terminal 100 a list of execution environments for developers (logged-in developers) whose login has been approved and is included in the developer information 301. In addition to an email address (username, developer ID) and password, the developer information 301 records accessible execution environment IDs for each developer. Each execution environment ID is an account ID for a cloud service (web service) and is assumed to be a 12-digit ID in this embodiment. For developers who can access multiple execution environments, the 12-digit execution environment IDs are recorded, separated by commas. In S335, the accessible execution environment IDs (one or more execution environment IDs separated by commas) for the logged-in developer are sent to the developer terminal 100. That is, in S335, the developer information 301 is referenced to identify the execution environments accessible by the logged-in developer. In this way, the accessible execution environments for each developer (the execution environments available to each developer) are recorded in the developer information 301 recorded in the development environment 300. This login-enabled execution environment can only be obtained by the developer who has been granted permission to log in. Furthermore, only the developer who has been granted permission to log in can obtain the execution environment that they themselves have access to. This eliminates the need for developers to manage information for accessing their own accessible execution environment separately from the information used to log in to the development environment 300. It also prevents other users from accessing the execution environment illegally.
S336では、開発環境300は、S313で開発者用端末100から送信された選択中実行環境を特定する情報(環境特定情報)を受信したか否かを判定する。選択中実行環境を特定する情報を受信した場合にはS337に進み、そうでない場合には選択中実行環境を特定する情報の受信を待つ。 In S336, the development environment 300 determines whether it has received information identifying the selected execution environment (environment identification information) sent from the developer terminal 100 in S313. If it has received information identifying the selected execution environment, it proceeds to S337; if not, it waits for reception of information identifying the selected execution environment.
S337では、開発環境300は、S336で受信した選択中実行環境を特定する情報に基づいて、選択中実行環境を、ストレージ320のログイン開発者用の領域に保存されている、設定管理用のファイルに記録する。 In S337, the development environment 300 records the selected execution environment in a settings management file stored in the logged-in developer area of storage 320 based on the information identifying the selected execution environment received in S336.
S338では、開発環境300は、ストレージ320のうち、ログイン開発者の領域から、ログイン開発者が所有する(ログイン開発者が作成した)全てのアプリケーションを示すアプリ情報を取得し、開発者用端末100に送信する。ここで送信するアプリ情報は、アプリの定義情報のうち、S315で前述したアプリ一覧を表示するために必要な情報までであり、各アプリに関する詳細な定義情報(コンポーネントの配置や後述するアクションを示す情報など)は含まれない。 In S338, the development environment 300 obtains app information indicating all applications owned by (created by) the logged-in developer from the logged-in developer's area in storage 320, and sends this information to the developer terminal 100. The app information sent here is only the app definition information necessary to display the app list mentioned above in S315, and does not include detailed definition information about each app (such as component placement and information indicating actions, which will be described later).
S339では、開発環境300は、S322で開発者用端末100から送信された新規アプリに関する情報(デスクトップ用(PC用)かモバイル用かの情報と、アプリ名、アプリIDを含む情報)を受信したか否かを判定する。新規アプリに関する情報を受信した場合にはS340に進み、そうでない場合にはS341へ進む。 In S339, the development environment 300 determines whether or not it has received information about the new app (including information about whether it is for desktop (PC) or mobile use, the app name, and the app ID) sent from the developer terminal 100 in S322. If it has received information about the new app, it proceeds to S340; if not, it proceeds to S341.
S340では、開発環境300は、ストレージ320のうち、ログイン開発者の領域に、S339で受信した新規アプリに関する情報に基づき、新規のアプリケーションの定義情報を作成して記録する。ここで記録される定義情報には、デスクトップ用(PC用)かモバイル用かの情報と、アプリ名、アプリIDが含まれる。なお、開発環境300では、マルチテナント実行環境410において他のユーザーのアプリと区別するために、アプリIDとして、S322で開発者から入力されたIDの直前に、アプリを所有する開発者の開発者IDに一意に対応する開発者コード8桁を付して記録する。そして、ログイン処理を終了する。以降、内部処理を行う場合とアクションボードにプログラミング言語で表示する場合にはアプリIDを用いる場合にはログイン開発者の開発者コードを付したIDで処理を行う。また、UIエディタなどにアプリIDとして表示をする際には開発者コードを除く、S322で開発者から入力されたID部分だけを表示する。 In S340, the development environment 300 creates and records definition information for a new application in the logged-in developer's area of storage 320 based on the information about the new app received in S339. The definition information recorded here includes information about whether the app is for desktop (PC) or mobile use, the app name, and the app ID. To distinguish the app from other users' apps in the multi-tenant execution environment 410, the development environment 300 records the app ID by appending an eight-digit developer code that uniquely corresponds to the developer ID of the developer who owns the app immediately before the ID entered by the developer in S322. The login process then ends. Thereafter, when performing internal processing or displaying the app ID in a programming language on the action board, the ID appended with the developer code of the logged-in developer is used. Furthermore, when displaying the app ID in a UI editor, etc., only the ID portion entered by the developer in S322 is displayed, excluding the developer code.
S341では、開発環境300は、S317で開発者用端末100から送信された選択中アプリを特定する情報を受信したか否かを判定する。選択中アプリを特定する情報を受信した場合にはS342に進み、そうでない場合はS339に戻る。 In S341, the development environment 300 determines whether or not it has received information identifying the selected app sent from the developer terminal 100 in S317. If it has received information identifying the selected app, it proceeds to S342; if not, it returns to S339.
S342では、開発環境300は、S341で受信した選択中アプリを特定する情報に基づき、ストレージ320のうち、ログイン開発者の領域から、選択中アプリの定義情報(アプリ定義)を取得し、開発者用端末100に送信する。ここで送信する定義情報は、選択中アプリに関する詳細な定義情報(コンポーネントの配置や後述するアクションを示す情報など)を含む。そして、ログイン処理を終了する。 In S342, the development environment 300 retrieves definition information (app definition) for the selected app from the logged-in developer's area in storage 320 based on the information identifying the selected app received in S341, and transmits this information to the developer device 100. The definition information transmitted here includes detailed definition information about the selected app (such as component placement and information indicating actions, which will be described later). The login process then ends.
<UIエディタ処理>
図4、図5(b)を用いて、UIエディタ処理について説明する。UIエディタ処理は、UIエディタ画面(アプリケーション開発画面)に対する開発者(ユーザー)からの操作に応じて、構築するアプリケーションの各種定義(UI部品の定義、アクション定義)を行う処理である。
<UI Editor Processing>
The UI editor process will be described with reference to Figures 4 and 5B. The UI editor process is a process for defining various aspects of the application to be constructed (UI component definitions, action definitions) in response to operations by a developer (user) on the UI editor screen (application development screen).
図5(b)に、ディスプレイ105におけるUIエディタ処理で表示されるレイアウト編集画面の表示例を示す。図5(b)の画面には、ヘッダーメニュー領域500、メインメニュー領域510、サブメニュー領域520、キャンバス530(UI画面の編集受付領域)が含まれる。 Figure 5(b) shows an example of a layout editing screen displayed by the UI editor process on the display 105. The screen in Figure 5(b) includes a header menu area 500, a main menu area 510, a submenu area 520, and a canvas 530 (the editing reception area of the UI screen).
ヘッダーメニュー領域500には、選択中実行環境ボックス501、選択中アプリボックス502、選択中UI画面ボックス503、保存ボタン504、プレビューボタン505、デプロイボタン506が表示される。 The header menu area 500 displays a selected execution environment box 501, a selected app box 502, a selected UI screen box 503, a save button 504, a preview button 505, and a deploy button 506.
選択中実行環境ボックス501には、選択中実行環境を表す情報として、選択中実行環境IDが表示される。選択中実行環境ボックス501の右端にある矢印アイコンを押下することで、プルダウンメニューとしてS310で取得したログイン開発者がアクセス可能な実行環境の一覧が表示され、一覧から任意の実行環境を選択することで、選択中実行環境を変更することが可能である。選択中実行環境が変更されても、選択中アプリは変更されず、メインメニュー領域510、サブメニュー領域520、キャンバス530に表示される内容は変更されない。このように、同じアプリケーションに関してデプロイする先である選択中実行環境を変更することで、同じアプリケーションを任意の複数の実行環境にデプロイすることが可能である。 The selected execution environment box 501 displays the selected execution environment ID as information indicating the selected execution environment. By pressing the arrow icon on the right end of the selected execution environment box 501, a list of execution environments accessible to the logged-in developer obtained in S310 is displayed as a pull-down menu, and the selected execution environment can be changed by selecting any execution environment from the list. Even if the selected execution environment is changed, the selected app does not change, and the content displayed in the main menu area 510, submenu area 520, and canvas 530 does not change. In this way, by changing the selected execution environment to which the same application is deployed, it is possible to deploy the same application to any number of execution environments.
選択中アプリボックス502には、選択中アプリを表す情報として、選択中アプリのアプリ名が表示される。選択中アプリボックス502の右端にある矢印アイコンを押下することで、プルダウンメニューとしてS314で取得したログイン開発者の所有するアプリ一覧が表示され、一覧から任意のアプリを選択することで、選択中アプリを変更することが可能である。選択中アプリが変更されると、サブメニュー領域520、キャンバス530に表示すべき内容が変わる。 The selected app box 502 displays the name of the selected app as information representing the selected app. By pressing the arrow icon on the right end of the selected app box 502, a list of apps owned by the logged-in developer obtained in S314 is displayed as a pull-down menu, and the selected app can be changed by selecting any app from the list. When the selected app is changed, the content to be displayed in the submenu area 520 and canvas 530 changes.
選択中UI画面ボックス503には、キャンバス530で編集中のUI画面を表す情報として、編集中のUI画面名が表示される。選択中UI画面ボックス503にある矢印アイコンを押下することで、プルダウンメニューとして、S318で取得した選択中アプリの定義情報に基づき、選択中アプリに属するUI画面の一覧が表示され、一覧から任意のUI画面を選択することで、キャンバス530に表示する編集対象のUI画面を変更することが可能である。 The selected UI screen box 503 displays the name of the UI screen being edited as information representing the UI screen being edited on the canvas 530. By pressing the arrow icon in the selected UI screen box 503, a list of UI screens belonging to the selected app is displayed as a pull-down menu based on the definition information of the selected app acquired in S318. By selecting any UI screen from the list, it is possible to change the UI screen being edited and displayed on the canvas 530.
メインメニュー領域510には、メインメニューのメニュー項目としての選択肢アイコンとして、アプリ一覧ボタン511、UI画面ボタン512、ワークフローボタン513、設定ボタン514、環境一覧ボタン515、データベースボタン516、ファイルマネージャーボタン517、ユーザー管理ボタン518、スナップショットボタン519が表示される。これらの選択肢の押下に応じた処理については図12の画面切替処理で後述する。 The main menu area 510 displays the following selection icons for the main menu items: an app list button 511, a UI screen button 512, a workflow button 513, a settings button 514, an environment list button 515, a database button 516, a file manager button 517, a user management button 518, and a snapshot button 519. The processing performed in response to pressing these selections will be described later in the screen switching processing of Figure 12.
サブメニュー領域520には、メインメニューで選択された項目に応じたサブメニューが表示される。図5(b)の例では、UI画面ボタン512の下位階層メニューとしてUIコンポーネント一覧(UI部品一覧)が表示されている例である。 The submenu area 520 displays a submenu corresponding to the item selected in the main menu. In the example of Figure 5(b), a UI component list (UI part list) is displayed as a lower-level menu of the UI screen button 512.
キャンバス530は、選択中アプリの選択中のUI画面(選択中UI画面ボックス503に表示されているUI画面名のUI画面)のレイアウト編集領域である。図5(b)のキャンバス530は、デスクトップ用アプリケーションのキャンバスの表示例であり、デスクトップ用の形状で表示されている。ユーザーは、サブメニュー領域520に表示されたUI部品一覧の中から任意のUI部品(UIコンポーネント)を選び、キャンバス領域530にドラッグアンドドロップで配置することができる。キャンバス領域530に配置されたUI部品を選択してサイズや位置の調整ができる。また、キャンバス領域530に配置されたUI部品を選択して右クリックして表示される右クリックメニュー(コンテキストメニュー)に含まれるプロパティを選択することで、配色などのより詳細な設定を行える。さらに、同じくコンテキストメニューに含まれるアクションを選択することで、アクションボードが表示され、そのUI部品が操作された場合に実行すべきアクションを設定することができる。キャンバス530の空白領域にカーソルがある状態で右クリックを行うことで、キャンバスのコンテキストメニューを表示させることができ、そこに含まれるアクションを選択することにより、構築されたアプリケーションにおいてそのキャンバスのUI画面がロードされた場合に実行(そのUI画面を表示する際に実行)すべきアクションを設定することができる。 The canvas 530 is the layout editing area for the selected UI screen of the selected app (the UI screen whose UI screen name is displayed in the selected UI screen box 503). The canvas 530 in Figure 5(b) is an example of a canvas display for a desktop application, displayed in a desktop format. The user can select any UI component (UI part) from the list of UI components displayed in the submenu area 520 and place it in the canvas area 530 by dragging and dropping it. The size and position of a UI component can be adjusted by selecting it in the canvas area 530. Furthermore, by selecting a UI component in the canvas area 530, right-clicking, and selecting properties from the right-click menu (context menu), more detailed settings such as color scheme can be made. Furthermore, by selecting an action from the context menu, an action board is displayed, allowing the user to set the action to be executed when the UI component is operated. By right-clicking while the cursor is in a blank area of the canvas 530, the canvas's context menu can be displayed. By selecting an action from the menu, you can set the action to be executed when the UI screen of that canvas is loaded in the built application (to be executed when the UI screen is displayed).
図5(b)は、アプリ名「UI1」のアプリの、UI画面名「ui1」のキャンバス530に、UI部品として、パイチャート531(pie chart、円グラフ)、ボタン532、テキストフィールド533、534、アウトプットフィールド535、(Output Field)、タブ部品536を配置した例である。操作パス531aは、選択されているUI部品を示す選択枠かつ拡大縮小の指示を受け付ける操作パス(操作ハンドル)であり、パイチャート531が選択されていることを示している。 Figure 5(b) shows an example in which a pie chart 531, a button 532, text fields 533 and 534, an output field 535, and a tab component 536 are arranged as UI components on a canvas 530 with a UI screen name "ui1" for an app with an app name "UI1." Operation path 531a is a selection frame indicating the selected UI component and an operation path (operation handle) that accepts zoom instructions, indicating that pie chart 531 is selected.
図4に、UIエディタ処理のフローチャートを示す。この処理は、開発者用端末100が実行する処理であり、図3のS319またはS323の後に続けて行われる処理である。 Figure 4 shows a flowchart of the UI editor process. This process is executed by the developer terminal 100 and follows S319 or S323 in Figure 3.
S401では、開発者用端末100は、選択中アプリの定義情報に基づき、サブメニュー領域520に選択中アプリのUI画面一覧を選択肢として表示する。このUI画面一覧に表示される各画面は、選択中アプリを実行環境にデプロイして構築し、アプリユーザー用端末200、201からアクセスしてアプリを実行した場合に表示する画面として設計している画面である。このUI画面一覧では、新規UI画面を追加する操作や、UI画面の削除操作も受付可能である。 In S401, the developer terminal 100 displays a list of UI screens for the selected app as options in the submenu area 520 based on the definition information of the selected app. Each screen displayed in this UI screen list is designed to be displayed when the selected app is deployed and built in an execution environment, and accessed and executed from the app user terminal 200, 201. This UI screen list can also accept operations to add new UI screens and delete UI screens.
S402では、開発者用端末100は、S401で表示されたUI画面一覧のうちいずれかのUI画面を選択する操作があったか否かを判定する。いずれかのUI画面が選択された場合はS404に進み、そうでない場合にはS403に進む。 In S402, the developer terminal 100 determines whether an operation to select any of the UI screens from the list of UI screens displayed in S401 has been performed. If any of the UI screens has been selected, the process proceeds to S404; if not, the process proceeds to S403.
S403では、メインメニュー領域510に表示されたいずれかの選択肢を選択する操作があったか否かを判定する。メインメニュー領域510に表示された選択肢が選択された場合にはUIエディタ処理を終了し、図12で後述する画面切替処理へ進む。そうでない場合にはS402に戻る。 In S403, it is determined whether an operation to select one of the options displayed in the main menu area 510 has been performed. If an option displayed in the main menu area 510 has been selected, the UI editor processing ends and the process proceeds to the screen switching processing described later in FIG. 12. If not, the process returns to S402.
S404では、開発者用端末100は、メモリ102に記録した選択中アプリの定義情報に基づいて、キャンバス530にS402で選択されたUI画面を表示する。過去にUI部品が配置済みのUI画面であれば、定義情報に従って過去に配置されたUI部品がキャンバス530に表示される。すなわち、過去に途中まで作成したUI画面であれば続きから開発できる。S402で選択されたUI画面が新規に作成されたUI画面であれば、キャンバス530はUI部品が配置されていない空白の状態で表示される。S402で選択されたUI画面が、テンプレ―トとして予め用意されているUI画面(テンプレート画面)である場合には、ユーザーがそのUI画面に過去にUI部品を配置していなくても、予め定められたアクションが定義された雛形コンポーネントがキャンバス530の予め決まった位置に表示される。 In S404, the developer terminal 100 displays the UI screen selected in S402 on the canvas 530 based on the definition information of the selected app recorded in memory 102. If the UI screen has previously had UI components placed on it, the UI components placed on it according to the definition information are displayed on the canvas 530. In other words, if the UI screen was previously created but only partially, development can continue from that point. If the UI screen selected in S402 is a newly created UI screen, the canvas 530 is displayed blank with no UI components placed on it. If the UI screen selected in S402 is a UI screen (template screen) that has been prepared in advance as a template, a template component with a predetermined action defined is displayed in a predetermined position on the canvas 530, even if the user has not previously placed UI components on that UI screen.
S405では、開発者用端末100は、サブメニュー領域520に、UI部品の一覧を表示する。すなわち、選択中アプリのUI画面一覧から、UI部品一覧の表示に切り替える。キャンバス530に配置可能なUI部品としては、種別としてINPUT、Button(ボタン)、Display(情報表示用部品)、Navigation、Layout、Chartが含まれ、それぞれに種別に複数のUI部品が分類されている。UI部品一覧では、まず、図5(c)に図示するように、UI部品の種別の一覧が表示され、表示された種別のいずれかを選択する操作があったことに応じて、選択された種別に分類されるUI部品が展開表示される。前述した図5(b)は、INPUTに対応する種別の選択肢522が選択され、INPUTに分類されたUI部品の一覧が表示された例である。INPUTに分類されたUI部品には、例えばテキストフィールド523、テキストエリア524が含まれる。サブメニュー領域520はスクロール可能であり、表示しきれない選択肢(展開している種別のUI部品の選択肢や、他の種別の選択肢)はスクロールして表示させることができる。図5(b)のように展開している種別の選択肢522が操作されると、展開していた種別のUI部品一覧が折りたたまれ、UI部品の種別の一覧が表示される。 At S405, the developer terminal 100 displays a list of UI components in the submenu area 520. That is, the display switches from the UI screen list of the selected app to a UI component list. UI components that can be placed on the canvas 530 include types: INPUT, Button, Display (information display component), Navigation, Layout, and Chart, each of which has multiple UI components categorized under that type. In the UI component list, a list of UI component types is first displayed, as shown in FIG. 5(c). When an operation to select one of the displayed types is performed, the UI components classified under the selected type are expanded and displayed. The aforementioned FIG. 5(b) shows an example in which the option 522 for the type corresponding to INPUT is selected, and a list of UI components classified under INPUT is displayed. UI components classified under INPUT include, for example, a text field 523 and a text area 524. The submenu area 520 is scrollable, and options that cannot be displayed (options for the UI component of the expanded type and options for other types) can be scrolled to display them. When an option 522 for an expanded type is operated, as shown in Figure 5(b), the list of UI components for the expanded type is collapsed, and a list of UI component types is displayed.
S406では、開発者用端末100は、サブメニュー領域520に表示されたUI部品が選択されたか否かを判定する。より詳しくは、サブメニュー領域520に表示されたUI部品をドラッグする操作が行われたか否かを判定する。サブメニュー領域520に表示されたUI部品が選択された場合にはS407に進み、そうでない場合にはS411へ進む。 In S406, the developer terminal 100 determines whether a UI component displayed in the submenu area 520 has been selected. More specifically, it determines whether an operation to drag a UI component displayed in the submenu area 520 has been performed. If a UI component displayed in the submenu area 520 has been selected, the process proceeds to S407; if not, the process proceeds to S411.
S407では、開発者用端末100は、キャンバス530上の位置を指定する操作があったか否かを判定する。より詳しくは、ドラッグしていたUI部品をキャンバス530上にドロップする操作があったか否か判定する。キャンバス530上を指定する操作があった場合はS408へ進み、そうでない場合にはS407でキャンバス530上の位置の指定を待つ。なお、本実施形態ではドラッグアンドドロップの例を説明するが、サブメニュー領域520からUI部品を選択してキャンバス530上の指定位置に配置するための操作であれば操作方法はこれに限るものではない。 In S407, the developer terminal 100 determines whether an operation to specify a position on the canvas 530 has been performed. More specifically, it determines whether an operation to drop a dragged UI component onto the canvas 530 has been performed. If an operation to specify a position on the canvas 530 has been performed, the process proceeds to S408; if not, the process waits for specification of a position on the canvas 530 in S407. Note that, although an example of drag and drop is described in this embodiment, the operation method is not limited to this as long as it is an operation to select a UI component from the submenu area 520 and place it at a specified position on the canvas 530.
S408では、開発者用端末100は、S407で指定されたキャンバス上の位置が、既に配置されているタブ部品(UI部品の一種)の領域に含まれるか否かを判定する。タブ部品の領域に含まれていない場合にはS409に進み、タブ部品の領域に含まれている場合にはS410へ進む。タブ部品は、例えば図5(b)に示すタブ部品536である。タブ部品は複数のタブを有し(図5(b)の例ではITEM1、ITEM2、ITEM3と表示された3つのタブ)、いずれかのタブが選択されたことに応じて、タブ部品で表示する表示内容を、選択されたタブに対応する要素画面に切り替える。 In S408, the developer terminal 100 determines whether the position on the canvas specified in S407 is included in the area of a tab component (a type of UI component) that has already been placed. If it is not included in the area of the tab component, the process proceeds to S409; if it is included in the area of the tab component, the process proceeds to S410. An example of a tab component is the tab component 536 shown in Figure 5(b). A tab component has multiple tabs (in the example of Figure 5(b), there are three tabs displayed as ITEM1, ITEM2, and ITEM3), and when one of the tabs is selected, the display content displayed by the tab component is switched to the element screen corresponding to the selected tab.
図6(a)、(b)を用いて、タブ部品について説明する。図6(a)は、図5(b)とは異なるUI画面を表示したキャンバス530にタブ部品601を配置した場合のディスプレイ105における表示例である。タブ部品601の操作バス601aで示される範囲が、タブ部品601の占有領域である。操作バス601aを操作することで、要素画面を含むタブ部品601の全体の表示位置、全体の表示サイズを変更することができる。タブ部品601は、タブ610、タブ620、タブ630の3つのタブを持っている。各タブには、タブ部品のプロパティ設定で開発者によって設定可能なラベルがタブ名として表示されている。図示の例では、それぞれ、Tab0、Tab1、Tab2と表示されている。タブの数、順序はタブ部品のプロパティ設定から変更可能である。タブのプロパティ設定は、図7で後述するコンテキストメニュー処理のS706において、タブのコンテキストメニューからタブのプロパティボックスを開く操作があり、それに応じて表示されるタブのプロパティボックス(設定画面)に対する設定操作によって行われる。一点破線(説明のために図示したものであって表示されるものではない)で示す要素画面領域602は、選択されたタブに応じて表示内容が切り替わる領域である。要素画面領域602に表示される各タブに対応する表示内容を、各タブに対応する要素画面と称する。各タブに対応する要素画面にはそれぞれ異なるUI部品を配置可能である。図6(a)の例は、タブ610が選択され、タブ610に対応する要素画面が表示された例である。図示の例では、タブ610に対応する要素画面には、UI部品611とUI部品612が配置されている。図6(b)の例は、図6(a)の状態からタブ620がクリックされ、選択タブがタブ610からタブ620に変更された場合の表示例である。図6(b)では、要素画面領域602には選択されているタブ620に対応する要素画面が表示されている。図示の例では、タブ620に対応する要素画面には、UI部品621が配置されている。図6(a)、図6(b)の例では、定義情報には少なくとも、キャンバス530で編集中のUI画面のID(UI画面の識別情報)に対応付けて、タブ部品601のUI部品ID(UI部品の識別情報)とUI画面中におけるタブ部品601の位置が記録される。また、タブ部品601のタブ610のID(要素画面の識別情報)に対応付けて、UI部品611とUI部品612のIDと、タブ610の要素画面中におけるUI部品611とUI部品612のそれぞれの位置が記録される。また、タブ部品601のタブ620のIDに対応付けて、UI部品621のIDと、タブ620の要素画面中におけるUI部品621の位置が記録される。図4の説明に戻る。 Tab components will be explained using Figures 6(a) and (b). Figure 6(a) is an example of a display on the display 105 when a tab component 601 is placed on a canvas 530 displaying a UI screen different from that shown in Figure 5(b). The area indicated by the operation bus 601a of the tab component 601 is the area occupied by the tab component 601. By operating the operation bus 601a, the overall display position and overall display size of the tab component 601, including the element screen, can be changed. The tab component 601 has three tabs: tab 610, tab 620, and tab 630. Each tab displays a label as the tab name, which can be set by the developer in the tab component's property settings. In the example shown, they are displayed as Tab0, Tab1, and Tab2, respectively. The number and order of tabs can be changed in the tab component's property settings. Tab properties are set by opening a tab property box from the tab's context menu in S706 of the context menu processing described later in FIG. 7 , and then performing setting operations on the tab property box (setting screen) that is displayed accordingly. The element screen area 602 indicated by the dashed-dotted line (illustrated for illustrative purposes only and not actually displayed) is an area in which the display content changes depending on the selected tab. The display content corresponding to each tab displayed in the element screen area 602 is referred to as the element screen corresponding to each tab. Different UI components can be arranged on the element screen corresponding to each tab. The example in FIG. 6A shows an example in which tab 610 is selected and the element screen corresponding to tab 610 is displayed. In the illustrated example, UI components 611 and 612 are arranged on the element screen corresponding to tab 610. The example in FIG. 6B shows an example of a display in which tab 620 is clicked from the state in FIG. 6A , changing the selected tab from tab 610 to tab 620. In FIG. 6B , the element screen area 602 displays the element screen corresponding to the selected tab 620. In the illustrated example, a UI component 621 is placed on the component screen corresponding to tab 620. In the examples of FIGS. 6(a) and 6(b), the definition information at least records the UI component ID (UI component identification information) of tab component 601 and the position of tab component 601 in the UI screen in association with the ID (UI screen identification information) of the UI screen being edited on canvas 530. Also, the IDs of UI components 611 and 612 and their respective positions in the component screen of tab 610 are recorded in association with the ID of tab 610 of tab component 601. Also, the ID of UI component 621 and the position of UI component 621 in the component screen of tab 620 are recorded in association with the ID of tab 620 of tab component 601. Return to the description of FIG. 4.
S409では、開発者用端末100は、サブメニュー領域520からS406で選択されたUI部品を、キャンバス530上の指定位置にデフォルトのサイズで配置し、そのことを定義する情報をメモリ102に記録した定義情報に記録する。すなわち、定義情報において、配置先のUI画面(編集中のUI画面)のIDに、S410で配置したUI部品の種別、UI部品ID、配置座標、配置サイズなどを関連付けて記録する。 In S409, the developer terminal 100 places the UI component selected in S406 from the submenu area 520 at the specified position on the canvas 530 at a default size, and records the information defining this in the definition information stored in memory 102. That is, in the definition information, the type of UI component placed in S410, UI component ID, placement coordinates, placement size, etc. are recorded in association with the ID of the UI screen where the component is to be placed (the UI screen being edited).
S410では、開発者用端末100は、サブメニュー領域520からS406で選択されたUI部品を、キャンバス530上の指定位置のタブ部品のうち、選択中のタブに対応する要素画面(現在表示中の要素画面)にデフォルトのサイズで配置し、そのことを定義する情報をメモリ102に記録した定義情報に記録する。すなわち、定義情報において、配置先のUI画面(編集中のUI画面)のIDに、S410で配置したUI部品の種別、UI部品IDとしてタブ部品のID、および、そのタブ部品において選択中だったタブのID、選択中だったタブに対応する要素画面中における配置座標、配置サイズなどを関連付けて記録する。このようにすることで、本実施形態ではタブ部品の各タブに対応する各要素画面に、それぞれ異なるUI部品を配置してレイアウトすることが可能である。またこのとき、UI部品の配置先の要素画面のタブを定義するために複雑な操作をする必要はなく、単に、配置したいUI部品をドラッグアンドドロップで配置する際に、配置先の要素画面を選択して表示させておけばよい。 In S410, the developer terminal 100 places the UI component selected in S406 from the submenu area 520 at a default size on the element screen (the currently displayed element screen) corresponding to the selected tab among the tab components at the specified position on the canvas 530, and records the information defining this in the definition information stored in memory 102. That is, the definition information associates the ID of the destination UI screen (the UI screen being edited) with the type of UI component placed in S410, the tab component ID as the UI component ID, the ID of the selected tab for that tab component, the placement coordinates in the element screen corresponding to the selected tab, the placement size, and other information. In this way, in this embodiment, it is possible to place and layout different UI components on each element screen corresponding to each tab of the tab component. Furthermore, at this time, there is no need for complex operations to define the tab of the element screen on which the UI component will be placed; simply select and display the destination element screen when placing the desired UI component by dragging and dropping it.
S411では、開発者用端末100は、キャンバス530に配置済みのUI部品がクリックなどで選択されたか否かを判定する。配置済みのUI部品がクリックされた(選択された)場合にはS412に進み、そうでない場合にはS415に進む。 In S411, the developer terminal 100 determines whether a UI component already placed on the canvas 530 has been selected by clicking or the like. If a placed UI component has been clicked (selected), the process proceeds to S412; if not, the process proceeds to S415.
S412では、開発者用端末100は、S411でクリックされたUI部品に操作パスを表示する。操作パスの表示例が前述の操作パス531aや操作パス601aである。 In S412, the developer terminal 100 displays an operation path for the UI component clicked in S411. Examples of displayed operation paths are the operation path 531a and operation path 601a described above.
S413では、開発者用端末100は、S411においてクリックで指定された位置が、タブ部品のタブ部分の領域内であるか否かを判定する。タブ部分でない場合にはS431に進み、タブ部分である場合にはS414に進む。タブ部分は、対応する要素画面への切り替えを指示する指示領域である。 In S413, the developer terminal 100 determines whether the position specified by clicking in S411 is within the area of the tab portion of the tab component. If it is not within the tab portion, the process proceeds to S431; if it is within the tab portion, the process proceeds to S414. The tab portion is a designation area that instructs switching to the corresponding element screen.
S414では、開発者用端末100は、タブ部品の要素画面領域の表示を、S411においてクリックで指定された位置のタブに対応する要素画面に切り替える。例えば、S411でタブ部品536のうち、ITEM1、ITEM2、ITEM3と表示された3つのタブのいずれかの位置がクリックされたことに応じて、S412でタブ部品536に対して操作パスを表示するとともに、要素画面領域436aの表示内容を、クリックされたタブに対応する要素画面のものに切り替える。また、例えば図6(a)のように表示されていた場合に、タブ620が指定されたことに応じて図6(b)の表示に切り替える。すなわち、クリック前に表示されていた要素画面に配置されていたUI部品611、612が非表示となり、代わりに、クリックされたタブ620に対応する要素画面に配置されているUI部品621が表示される。このような制御をするのは、開発者がタブ部品の所望のタブの要素画面に他のUI部品を配置したい場合に、配置先とする所望のタブの要素画面を定義する操作を簡単にするためである。開発者は、タブ部品の所望のタブの要素画面に他のUI部品を配置したい場合、配置したいUI部品をドラッグアンドドロップで配置する前に、所望のタブを単にクリックして所望の要素画面を表示させておけばよい。 In S414, the developer terminal 100 switches the display of the tab component's element screen area to the element screen corresponding to the tab at the position specified by the click in S411. For example, if one of the three tabs displayed as ITEM1, ITEM2, or ITEM3 on the tab component 536 is clicked in S411, the developer terminal 100 displays an operation path for the tab component 536 in S412, and switches the display content of the element screen area 436a to that of the element screen corresponding to the clicked tab. Also, for example, if the display is as shown in FIG. 6(a), the display switches to that shown in FIG. 6(b) when tab 620 is specified. That is, the UI components 611 and 612 located on the element screen displayed before the click are hidden, and instead, the UI component 621 located on the element screen corresponding to the clicked tab 620 is displayed. This control is performed to simplify the operation of defining the element screen of the desired tab when a developer wants to place another UI component on the element screen of a desired tab of the tab component. If a developer wants to place another UI component on the component screen of a desired tab of a tab component, they can simply click the desired tab to display the desired component screen before dragging and dropping the desired UI component.
なお、本実施形態では説明の簡略化のため、S409、S410、S413、S414の処理についてタブ部品を例にして説明したが、これに限るものではない。タブ部品以外でも、アプリケーションの構築後に、UI部品内の一部の表示内容が当該UI部品への操作に応じて切り替わる所定種別のUI部品であれば、タブ部品と同様にS409、S410、S413、S414の処理を適用可能である。 In this embodiment, for the sake of simplicity, the processing of S409, S410, S413, and S414 has been described using a tab component as an example, but this is not limited to this. The processing of S409, S410, S413, and S414 can be applied to a specific type of UI component other than a tab component, as long as the display content of the UI component changes in response to an operation on the UI component after the application is built.
一方、タブ部品などの所定種別のUI部品ではない他のUI部品の場合には、キャンバス530上でUI部品が選択されたことに応じて当該UI部品内の表示内容を切り替えることはしない。UI部品の選択に応じて行うのは操作バスの表示に係る処理だけであり、他のアクションは行わない。例えば、図5(b)のキャンバス530でボタン532が選択された場合には操作パスが表示されるのみで、ボタン532のアクション(構築されたアプリでボタン532が押下された場合に実行される処理)は実行しない。また、キャンバス530でテキストフィールド533が選択された場合には操作パスが表示されるのみで、テキストフィールド533内に文字入力カーソルを表示するなどの処理は行われない。 On the other hand, in the case of UI components that are not of a specific type, such as tab components, the display content within the UI component is not changed in response to the selection of the UI component on canvas 530. The only processing performed in response to the selection of the UI component is processing related to the display of the operation path, and no other actions are performed. For example, when button 532 is selected on canvas 530 in Figure 5(b), only the operation path is displayed, and the action of button 532 (the processing that is executed when button 532 is pressed in the constructed app) is not executed. Furthermore, when text field 533 is selected on canvas 530, only the operation path is displayed, and processing such as displaying a character input cursor within text field 533 is not performed.
図6(c)、図6(d)、図6(e)を用いて、タブ部品と同様にS409、S410、S413、S414の処理を適用可能な種別のUI部品の例としてAppBarの例を説明する。図6(c)は、キャンバス530に、それぞれUI部品であるAppBar650、TextField661、Button662を配置した場合の例である。AppBar650は1つのUI部品であり、AppBar650の中に要素アイコン651と要素アイコン652が含まれる。要素アイコン651は、構築されたアプリケーションにおいては、ドロワーメニューを表示させるための指示を受け付ける表示アイテムである。要素アイコン652は、構築されたアプリケーションにおいては、ポップアップメニューを表示させるための指示を受け付ける表示アイテムである。キャンバス530において、配置済みのAppBar650のうち、要素アイコン651と要素アイコン652の位置がクリックされた場合にも、タブ部品のタブ部分と同様に制御する。より詳しくは以下のように制御する。 Using Figures 6(c), 6(d), and 6(e), we will explain an example of an AppBar as an example of a type of UI component to which the processes of S409, S410, S413, and S414 can be applied, similar to tab components. Figure 6(c) shows an example in which UI components AppBar 650, TextField 661, and Button 662 are placed on canvas 530. AppBar 650 is a single UI component, and contains element icons 651 and 652. In a constructed application, element icon 651 is a display item that accepts instructions for displaying a drawer menu. In a constructed application, element icon 652 is a display item that accepts instructions for displaying a pop-up menu. When the positions of element icons 651 and 652 of placed AppBar 650 on canvas 530 are clicked, they are controlled in the same way as the tab portion of a tab component. More specifically, it is controlled as follows:
配置済みのAppBar650のうち、要素アイコン651の位置がクリックされた場合(S411でYes)、AppBar650に対する操作パスを表示する(S412)とともに、S413でYesと判定され、要素画面としてのドロワーメニューを表示する(S414)。これによって、図6(c)の表示状態から図6(d)の表示状態へ遷移する。図6(d)において、AppBar650に対する操作パス650aが表示され、かつ、要素アイコン651に対応する要素画面であるドロワーメニュー651aが表示されている。ドロワーメニュー651aは、画面左端から右側に引き出すようにして表示される領域であり、1つ以上のメニュー項目が表示される。ドロワーメニュー651aを表示させた状態で、サブメニュー領域520から他のUI部品をドラッグしてドロワーメニュー651aにドロップすることで、タブ部品を例にしてS408、S410で説明した処理と同様、ドロワーメニュー651aに対して他のUI部品を配置可能である。 When the position of the element icon 651 in the placed AppBar 650 is clicked (Yes in S411), the operation path for the AppBar 650 is displayed (S412), and if a Yes determination is made in S413, a drawer menu is displayed as an element screen (S414). This transitions the display state from FIG. 6(c) to FIG. 6(d). In FIG. 6(d), the operation path 650a for the AppBar 650 is displayed, and the drawer menu 651a, which is the element screen corresponding to the element icon 651, is also displayed. The drawer menu 651a is an area that is displayed by sliding from the left edge of the screen to the right, and displays one or more menu items. With the drawer menu 651a displayed, other UI components can be placed in the drawer menu 651a by dragging other UI components from the submenu area 520 and dropping them onto the drawer menu 651a, similar to the processing described in S408 and S410 using the tab component as an example.
配置済みのAppBar650のうち、要素アイコン652の位置がクリックされた場合(S411でYes)、AppBar650に対する操作パスを表示する(S412)とともに、S413でYesと判定され、要素画面としてのポップアップメニューを表示する(S414)。これによって、図6(c)の表示状態から図6(e)の表示状態へ遷移する。図6(e)において、AppBar650に対する操作パス650aが表示され、かつ、要素アイコン652に対応する要素画面であるポップアップメニュー652aが表示されている。ポップアップメニュー652aは、要素アイコン652の付近に表示される領域であり、1つ以上のメニュー項目(選択肢)が表示される。ポップアップメニュー652aを表示させた状態で、サブメニュー領域520から他のUI部品をドラッグしてポップアップメニュー652aにドロップすることで、タブ部品を例にしてS408、S410で説明した処理と同様、ポップアップメニュー652aに対して他のUI部品を配置可能である。図4の説明に戻る。 When the position of the element icon 652 in the placed App Bar 650 is clicked (Yes in S411), the operation path for the App Bar 650 is displayed (S412). Furthermore, if a Yes determination is made in S413, a pop-up menu is displayed as an element screen (S414). This transitions the display state from FIG. 6(c) to FIG. 6(e). In FIG. 6(e), the operation path 650a for the App Bar 650 is displayed, and a pop-up menu 652a, which is an element screen corresponding to the element icon 652, is also displayed. The pop-up menu 652a is an area displayed near the element icon 652 and displays one or more menu items (options). With the pop-up menu 652a displayed, other UI components can be placed in the pop-up menu 652a by dragging another UI component from the submenu area 520 and dropping it onto the pop-up menu 652a, similar to the process described in S408 and S410 using the tab component as an example. Return to the description of FIG. 4.
S415では、開発者用端末100は、キャンバス530上で配置済みのUI部品をドラッグする操作があったか否かを判定する。配置済みのUI部品をドラッグする操作があった場合にはS416に進み、そうでない場合にはS417へ進む。S416では、開発者用端末100は、ドラッグ操作に応じてドラッグされたUI部品(選択部品)の配置される位置を変更する。具体的には、ドロップされた位置に配置する。配置を変更すると、メモリ102に記録している定義情報も変更後の位置を表すように更新する。 In S415, the developer terminal 100 determines whether an operation to drag a placed UI component on the canvas 530 has been performed. If an operation to drag a placed UI component has been performed, the process proceeds to S416; if not, the process proceeds to S417. In S416, the developer terminal 100 changes the position of the dragged UI component (selected component) in response to the drag operation. Specifically, it places the component at the dropped position. When the position is changed, the definition information recorded in memory 102 is also updated to indicate the new position.
S417では、開発者用端末100は、キャンバス530上で配置済みのUI部品の操作パスに対する操作があったか否かを判定する。操作パスへの操作があった場合にはS418に進み、そうでない場合にはS419へ進む。S418では、開発者用端末100は、操作パスへの操作に応じて操作パスが付されたUI部品(選択部品)のサイズを変更する。サイズを変更すると、メモリ102に記録している定義情報も変更後のサイズを表すように更新する。 In S417, the developer terminal 100 determines whether an operation has been performed on the operation path of a UI component already placed on the canvas 530. If an operation has been performed on the operation path, the process proceeds to S418; if not, the process proceeds to S419. In S418, the developer terminal 100 changes the size of the UI component (selected component) to which the operation path has been assigned in accordance with the operation on the operation path. When the size is changed, the definition information recorded in memory 102 is also updated to reflect the changed size.
S419では、開発者用端末100は、キャンバス530のいずれかの領域でコンテキストメニューを表示させる指示操作(本実施形態ではマウスの右クリック)があったか否かを判定する。右クリックがあった場合にはS420に進み、そうでない場合にはS421に進む。S420では、右クリックがあった際のマウスカーソルの位置に応じてコンテキストメニュー(右クリックメニュー)を表示し、コンテキストメニューに対する操作に応じた処理を行うコンテキストメニュー処理を行う。例えば、図5(b)のボタン532上にマウスカーソルがある状態で右クリックが行われた場合には、図5(d)に示すようなボタン532(指定UI部品)に関するコンテキストメニュー540を表示する。コンテキストメニュー540には、選択肢となるメニュー項目としてプロパティ541、アクション542、消去543が表示される。プロパティ541が選択されると、ボタン532に関するプロパティボックス(詳細設定ダイアログ)が表示され、ボタン532に表示するボタン名(ラベル)、ボタン532の色、数値指定でのサイズ、等の詳細な設定を行える。アクション542が選択されると、ボタン532に関するアクションボードが表示され、アクションボードに対してプログラミング言語であるJavaScriptでのアクションの入力が行える。ここで入力されるアクションは、構築されたアプリケーションにおいてボタン532(指定UI部品)が押下された場合に実行すべき処理である。消去543が選択されると、キャンバス530からボタン532を消去(削除)する。コンテキストメニュー処理の詳細については図7を用いて後述する。 In S419, the developer terminal 100 determines whether a command to display a context menu (in this embodiment, a right-click of the mouse) has been performed in any area of the canvas 530. If a right-click has been performed, the process proceeds to S420; otherwise, the process proceeds to S421. In S420, a context menu (right-click menu) is displayed according to the position of the mouse cursor at the time of the right-click, and context menu processing is performed to perform processing according to the operation on the context menu. For example, if a right-click is performed while the mouse cursor is over button 532 in FIG. 5(b), a context menu 540 related to button 532 (specified UI component) as shown in FIG. 5(d) is displayed. The context menu 540 displays properties 541, actions 542, and delete 543 as menu options. When properties 541 is selected, a properties box (detailed settings dialog) related to button 532 is displayed, allowing detailed settings to be made, such as the button name (label) to be displayed on button 532, the color of button 532, and the size specified numerically. When action 542 is selected, an action board related to button 532 is displayed, and an action can be entered into the action board in JavaScript, a programming language. The action entered here is the process to be executed when button 532 (specified UI component) is pressed in the constructed application. When delete 543 is selected, button 532 is deleted (removed) from canvas 530. Details of context menu processing will be described later using Figure 7.
S421では、開発者用端末100は、保存ボタン504が押下されたか否かを判定する。保存ボタン504が押下された場合にはS422に進み、そうでない場合にはS423へ進む。S422では、開発者用端末100は、メモリ102に記録している編集中のアプリケーションの定義情報を開発環境300に送信する。開発環境300は、定義情報を受信すると保存処理を行う。 In S421, the developer terminal 100 determines whether the Save button 504 has been pressed. If the Save button 504 has been pressed, the process proceeds to S422; if not, the process proceeds to S423. In S422, the developer terminal 100 transmits the definition information of the application being edited, which is stored in memory 102, to the development environment 300. Upon receiving the definition information, the development environment 300 performs a save process.
S423では、開発者用端末100は、プレビューボタン505が押下されたか否かを判定する。プレビューボタン505が押下されたと判定した場合にはS424へ進み、そうでない場合にはS425へ進む。S424では、開発者用端末100は、プレビュー処理を行う。プレビュー処理では、キャンバス530を非表示とし、メモリ102に記録している定義情報または開発環境300に記録されている定義情報に基づいて、キャンバス530で編集しているUI画面について、構築されたアプリケーションでそのUI画面を見た場合と同じ見た目となるようなプレビューを表示する。プレビューでは、UI部品を操作するための操作パスは表示されない。また、UIエディタ画面では実行されない(キャンバス530への操作では実行されない)一部の動作について、プレビューでは実行される。例えば、画面遷移用のUI部品やリンク部分を操作した場合に、画面遷移やリンク先への遷移が実行される。また、項目に対する選択枠の移動をキーボードのタブキーの操作によって行うといった動作も実行される。なお、アクションボードに開発者が入力したアクションやデータベースの参照といった動作は行われない。その分、プレビュー処理は実際にデプロイして確認する場合よりも高速に表示することができる。 In S423, the developer terminal 100 determines whether the preview button 505 has been pressed. If it determines that the preview button 505 has been pressed, the process proceeds to S424; otherwise, the process proceeds to S425. In S424, the developer terminal 100 performs preview processing. In the preview processing, the canvas 530 is hidden, and a preview of the UI screen being edited on the canvas 530 is displayed based on the definition information stored in memory 102 or the definition information stored in the development environment 300, so that the UI screen will look the same as when viewed in the built application. The preview does not display the operation paths for operating UI components. In addition, some operations that are not performed on the UI editor screen (i.e., not performed by operations on the canvas 530) are performed in the preview. For example, when a UI component for screen transitions or a link is operated, a screen transition or transition to the link destination is performed. In addition, operations such as moving the selection frame for an item by operating the tab key on the keyboard are also performed. Please note that actions entered by the developer on the action board and database references will not be performed. As a result, the preview process can be displayed more quickly than if you were to actually deploy and check the results.
S425では、開発者用端末100は、デプロイボタン506が押下されたか否かを判定する。デプロイボタン506が押下された場合にはS426へ進み、そうでない場合にはS427へ進む。S426では、開発者用端末100は、デプロイ処理を実行指示するデプロイ要求を開発環境300に送信する。なおデプロイボタン506が押下されてデプロイ処理を行う時には開発者はデプロイ先となる実行環境を選択する操作はする必要がなく、予め選択してあって、選択中実行環境ボックス501に表示されている選択中実行環境へデプロイが行われる。開発者は、特定の1つの実行環境にデプロイすべき内容をまとめて更新するように作業する場合が多い。そのため、本システムでは、更新すべきアプリケーションの選択より前にデプロイ先となる実行環境を選択させ(図3のS311)、アプリケーションをデプロイする際に都度実行環境を選択させることはない。従って、誤って意図しない実行環境にデプロイしてしまうという操作ミスを抑止し、また、作業を効率かすることができる。また、開発環境300にログインする際に認証処理をするための操作を行ったものの、デプロイする実行環境に対して別途、アカウント認証処理するための操作をする必要は無い。従って作業手数の増大を防ぎ効率的に作業することが可能である。すなわち、開発者用端末100は、デプロイ先の実行環境に関する認証情報を開発者ユーザーから取得することはない。 In S425, the developer terminal 100 determines whether the Deploy button 506 was pressed. If the Deploy button 506 was pressed, the process proceeds to S426; otherwise, the process proceeds to S427. In S426, the developer terminal 100 sends a deploy request to the development environment 300 to instruct the deployment process. Note that when the Deploy button 506 is pressed to perform the deployment process, the developer does not need to select the destination execution environment; the deployment occurs to the pre-selected execution environment displayed in the Selected Execution Environment box 501. Developers often work to update all the content to be deployed to a specific execution environment at once. For this reason, the system requires the developer to select the destination execution environment before selecting the application to be updated (S311 in Figure 3), eliminating the need to select the execution environment each time an application is deployed. This prevents operational errors such as accidentally deploying to an unintended execution environment and improves work efficiency. Furthermore, although authentication processing is performed when logging in to the development environment 300, there is no need to perform separate account authentication processing for the execution environment to be deployed to. This prevents an increase in the amount of work required and allows for efficient work. In other words, the developer terminal 100 does not obtain authentication information related to the execution environment to which the developer is deploying from the developer user.
S427では、開発者用端末100は、選択中実行環境を変更する操作があったか否かを判定する。具体的には、選択中実行環境ボックス501に対して、選択中実行環境を変更する操作があったか否かを判定する。選択中実行環境を変更する操作があった場合にはS428へ進み、そうでない場合にはS429へ進む。S428では、開発者用端末100は、選択された実行環境を特定する情報(実行環境IDなど)を「選択中実行環境」としてメモリ102に記録するとともに、開発環境300に送信する。また、選択中実行環境ボックス501の表示内容を、変更後の選択中実行環境を表すように更新する。開発環境300では、選択中実行環境を特定する情報を受信すると、それに基づき、選択中実行環境を、ストレージ320のログイン開発者用の領域に保存されている、設定管理用のファイルに記録する。 In S427, the developer terminal 100 determines whether an operation to change the selected execution environment has been performed. Specifically, it determines whether an operation to change the selected execution environment has been performed on the selected execution environment box 501. If an operation to change the selected execution environment has been performed, the process proceeds to S428; if not, the process proceeds to S429. In S428, the developer terminal 100 records information identifying the selected execution environment (such as an execution environment ID) in memory 102 as the "selected execution environment" and sends it to the development environment 300. The developer terminal 100 also updates the display content of the selected execution environment box 501 to represent the changed selected execution environment. Upon receiving the information identifying the selected execution environment, the development environment 300 records the selected execution environment in a settings management file stored in the logged-in developer area of storage 320 based on that information.
S429では、開発者用端末100は、編集対象のアプリケーションを変更する操作があったか否かを判定する。具体的には、選択中アプリボックス502に対して選択中アプリを変更する操作があったか否かを判定する。選択中アプリを変更する操作があった場合には図3のS317に進み、変更後の選択中アプリに基づいてS317以降の処理を実行する。すなわち、サブメニュー領域520、キャンバス530の表示内容が更新される。選択中アプリを変更する操作がなかった場合には処理はS430へ進む。 In S429, the developer terminal 100 determines whether an operation to change the application to be edited has been performed. Specifically, it determines whether an operation to change the selected app has been performed in the selected app box 502. If an operation to change the selected app has been performed, the process proceeds to S317 in FIG. 3, and the processing from S317 onwards is executed based on the changed selected app. In other words, the display contents of the submenu area 520 and canvas 530 are updated. If an operation to change the selected app has not been performed, the process proceeds to S430.
S430では、開発者用端末100は、編集対象のUI画面を変更する操作があったか否かを判定する。具体的には、選択中UI画面ボックス503に対して、選択中UI画面を変更する操作があったか否かを判定する。選択中UI画面を変更する操作があった場合にはS404に進み、変更後の選択中UI画面に基づいて処理を行う。すなわち、キャンバス530の表示内容は変更後の選択中UI画面の内容に更新される(切り替わる)。選択中UI画面を変更する操作がなかった場合には処理はS431へ進む。 In S430, the developer terminal 100 determines whether an operation to change the UI screen to be edited has been performed. Specifically, it determines whether an operation to change the selected UI screen has been performed on the selected UI screen box 503. If an operation to change the selected UI screen has been performed, the process proceeds to S404, and processing is performed based on the changed selected UI screen. In other words, the display content of the canvas 530 is updated (switched) to the changed content of the selected UI screen. If no operation to change the selected UI screen has been performed, the process proceeds to S431.
S431では、開発者用端末100は、メインメニュー領域510に表示されたいずれかの選択肢を選択する操作があったか否かを判定する。メインメニュー領域510に表示された選択肢が選択された場合にはUIエディタ処理を終了し、図12で後述する画面切替処理へ進む。そうでない場合にはS406に戻る。 In S431, the developer terminal 100 determines whether an operation to select one of the options displayed in the main menu area 510 has been performed. If an option displayed in the main menu area 510 has been selected, the UI editor processing ends and the process proceeds to the screen switching processing described later in FIG. 12. If not, the process returns to S406.
<コンテキストメニュー処理>
図7に、コンテキストメニュー処理のフローチャートを示す。この処理は、図5のS420の詳細フローチャートである。
<Context menu processing>
7 shows a flowchart of the context menu process, which is a detailed flowchart of S420 in FIG.
S701では、開発者用端末100は、表示すべきコンテキストメニューが、ボタン(Button)の種別のUI部品に関するものであるか否かを判定する。より詳しくは、S419で右クリックを受け付けた際にマウスで指定していたUI部品(指定UI部品)の種別がボタンであるか否かを判定する。ボタンである場合にはS710に進み、そうでない場合にはS702に進む。 In S701, the developer terminal 100 determines whether the context menu to be displayed relates to a UI component of the button type. More specifically, it determines whether the type of UI component designated with the mouse when the right-click was accepted in S419 (designated UI component) is a button. If it is a button, the process proceeds to S710; if not, the process proceeds to S702.
S702では、開発者用端末100は、表示すべきコンテキストメニューが、キャンバスに関するものであるか否かを判定する。より詳しくは、S419で右クリックを受け付けた際にマウスで指定していた位置が、キャンバス530のうちUI部品が配置されていない空白領域であったか否かを判定する。空白領域であった場合(表示すべきコンテキストメニューが、キャンバスに関するものである場合)はS703に進み、そうでない場合にはS704に進む。 In S702, the developer terminal 100 determines whether the context menu to be displayed is related to the canvas. More specifically, it determines whether the position designated with the mouse when the right-click was accepted in S419 was a blank area of the canvas 530 where no UI components were placed. If it is a blank area (if the context menu to be displayed is related to the canvas), the process proceeds to S703; otherwise, the process proceeds to S704.
S703では、開発者用端末100は、キャンバスのコンテキストメニュー処理を行う。 In S703, the developer terminal 100 performs canvas context menu processing.
S704では、開発者用端末100は、表示すべきコンテキストメニューが、データグリッド(表)の種別のUI部品に関するものであるか否かを判定する。より詳しくは、S419で右クリックを受け付けた際にマウスで指定していたUI部品(指定UI部品)の種別がデータグリッドであるか否かを判定する。データグリッドである場合にはS705に進み、そうでない場合にはS706に進む。 In S704, the developer terminal 100 determines whether the context menu to be displayed relates to a UI component of the data grid (table) type. More specifically, it determines whether the type of the UI component (specified UI component) designated with the mouse when the right-click was accepted in S419 is a data grid. If it is a data grid, the process proceeds to S705; if not, the process proceeds to S706.
S705では、開発者用端末100は、データグリッドのコンテキストメニュー処理を行う。 In S705, the developer terminal 100 performs context menu processing for the data grid.
S706では、開発者用端末100は、その他の処理として、指定された位置に対応する指定対象に関するコンテキストメニューを表示し、操作に応じた処理を行う。詳細は省略する。 In S706, as other processing, the developer terminal 100 displays a context menu related to the specified target corresponding to the specified position and performs processing according to the operation. Details are omitted.
S710では、開発者用端末100は、編集対象のUI画面(選択中UI画面)がテンプレート画面であるか否かを判定する。テンプレート画面である場合にはS721に進み、そうでない場合にはS711に進む。 In S710, the developer terminal 100 determines whether the UI screen to be edited (selected UI screen) is a template screen. If it is a template screen, the process proceeds to S721; if not, the process proceeds to S711.
S711では、開発者用端末100は、指定UI部品に関するコンテキストメニューとして、図5(d)に示したボタン用のコンテキストメニューを指定位置(マウスカーソル位置)の近傍に重畳表示する。 In S711, the developer terminal 100 superimposes and displays the button context menu shown in FIG. 5(d) near the specified position (mouse cursor position) as a context menu for the specified UI component.
S712では、開発者用端末100は、コンテキストメニューに含まれる選択肢のうち、プロパティ(図5(d)のプロパティ541)が選択されたか否かを判定する。プロパティが選択された場合にはS713に進み、そうでない場合にはS714へ進む。 In S712, the developer terminal 100 determines whether or not Properties (Properties 541 in FIG. 5(d)) has been selected from the options included in the context menu. If Properties has been selected, the process proceeds to S713; if not, the process proceeds to S714.
S713では、開発者用端末100は、指定UI部品に関するプロパティボックス(詳細設定ダイアログ)として、ボタン用のプロパティボックスをキャンバス530に重畳して表示する。そして、プロパティボックスに対する各種設定操作を受け付ける。ここで、例えば、指定UI部品であるボタンに表示するボタン名(ラベル)、ボタンの色、数値指定でのサイズ、等の詳細な設定を行える。設定を行って反映操作を行うと、キャンバス530において、設定を反映した表示形態で指定UI部品が表示される。 In S713, the developer terminal 100 displays a property box for the button superimposed on the canvas 530 as a property box (detailed settings dialog) for the specified UI component. It then accepts various setting operations for the property box. Here, detailed settings can be made, such as the button name (label) to be displayed on the button (the specified UI component), the button color, and the size (specified numerically). After making the settings and performing an operation to reflect them, the specified UI component is displayed on the canvas 530 in a display format that reflects the settings.
S714では、開発者用端末100は、コンテキストメニューに含まれる選択肢のうち、アクション(図5(d)のプロパティ542)が選択されたか否かを判定する。アクションが選択された場合にはS715に進み、そうでない場合にはS716へ進む。 In S714, the developer terminal 100 determines whether an action (property 542 in FIG. 5(d)) has been selected from the options included in the context menu. If an action has been selected, the process proceeds to S715; if not, the process proceeds to S716.
S715では、開発者用端末100は、指定UI部品であるボタンに関するアクションボード処理を行う。アクションボード処理については図8を用いて後述する。 In S715, the developer terminal 100 performs action board processing for the button, which is the specified UI component. Action board processing will be described later using Figure 8.
S716では、開発者用端末100は、コンテキストメニューに含まれる選択肢のうち、消去(図5(d)の消去543)が選択されたか否かを判定する。消去が選択された場合にはS717に進み、そうでない場合にはS718へ進む。 In S716, the developer terminal 100 determines whether or not "Delete" (Delete 543 in FIG. 5(d)) has been selected from the options included in the context menu. If "Delete" has been selected, the process proceeds to S717; if not, the process proceeds to S718.
S717では、開発者用端末100は、指定UI部品を消去し、メモリ102に記録した定義情報のうち、指定UI部品に関する情報(位置やサイズなどの定義、プロパティやアクションなど)を消去する。これによって、キャンバス530において指定UI部品は消去(削除)されて非表示となる。 In S717, the developer terminal 100 erases the specified UI component and erases information about the specified UI component (definitions such as position and size, properties and actions, etc.) from the definition information recorded in memory 102. As a result, the specified UI component is erased (deleted) and hidden from the canvas 530.
S718では、開発者用端末100は、コンテキストメニューに含まれる選択肢のうち、他の選択肢が選択されたか否かを判定する。他の選択肢が選択された場合にはS719に進み、選択された選択肢に応じた処理を行う。そうでない場合にはS720へ進む。 In S718, the developer terminal 100 determines whether another option has been selected from the options included in the context menu. If another option has been selected, the process proceeds to S719, where processing is performed according to the selected option. If not, the process proceeds to S720.
S720では、開発者用端末100は、コンテキストメニューを閉じる操作(例えば、コンテキストメニューが表示された領域外をクリックする操作)があったか否かを判定する。コンテキストメニューを閉じる操作があった場合には、コンテキストメニューを非表示とし、図7の処理を終了する。閉じる操作がない場合にはS712に戻る。 In S720, the developer terminal 100 determines whether an operation to close the context menu has been performed (for example, an operation to click outside the area where the context menu is displayed). If an operation to close the context menu has been performed, the context menu is hidden and the processing in Figure 7 ends. If no operation to close the context menu has been performed, the process returns to S712.
一方、S721では、開発者用端末100は、指定UI部品に関するコンテキストメニューとして、テンプレート画面用で、かつ、ボタン用のコンテキストメニューを指定位置(マウスカーソル位置)の近傍に重畳表示する。テンプレート画面用のコンテキストメニューには、通常のUI画面用のコンテキストメニュー(図5(d)に示したコンテキストメニュー540)と異なり、選択肢としてアクション、消去は表示されず、プロパティだけが表示される。すなわち、UI画面のうち、テンプレートの画面に配置されたUI部品に関しては、当該UI部品が操作された場合のアクションを開発者が設定できないようにしている。 Meanwhile, in S721, the developer terminal 100 superimposes a button context menu for the template screen near the specified position (mouse cursor position) as a context menu for the specified UI component. Unlike the context menu for a normal UI screen (context menu 540 shown in FIG. 5(d)), the template screen context menu does not display options such as Action or Delete, but only Properties. In other words, for UI components placed on the template screen, the developer cannot set the action to be taken when the UI component is operated.
S722では、開発者用端末100は、コンテキストメニューに含まれる選択肢のうち、プロパティが選択されたか否かを判定する。プロパティが選択された場合にはS723に進み、そうでない場合にはS724へ進む。S723の処理はS713と同様である。 In S722, the developer terminal 100 determines whether or not Properties has been selected from the options included in the context menu. If Properties has been selected, the process proceeds to S723; if not, the process proceeds to S724. The processing of S723 is the same as S713.
S724では、開発者用端末100は、コンテキストメニューを閉じる操作(例えば、コンテキストメニューが表示された領域外をクリックする操作)があったか否かを判定する。コンテキストメニューを閉じる操作があった場合には、コンテキストメニューを非表示とし、図7の処理を終了する。閉じる操作がない場合にはS722に戻る。 In S724, the developer terminal 100 determines whether an operation to close the context menu has been performed (for example, an operation to click outside the area where the context menu is displayed). If an operation to close the context menu has been performed, the context menu is hidden and the processing in Figure 7 ends. If no operation to close the context menu has been performed, the process returns to S722.
<アクションボード処理>
アクションボードに関する処理について説明する。キャンバスに配置しているUI部品を指定してコンテキストメニューからアクションを選択すると、指定されたUI部品に関するアクションを設定するためのアクションボードを表示する。例えば、図9(a)に示すようなUI画面を編集していた場合を考える。図9(a)は、ディスプレイ105におけるUIエディタ画面の一部を示す図である。図9(a)では、サブメニュー領域520にUI部品一覧が表示され、キャンバス900に編集対象のUI画面が表示されている。キャンバス900には、ボタンであるUI部品901と、その他のUI部品が配置されている。UI部品901が指定され、コンテキストメニューよりアクションの選択肢が選択されたことに応じて、図9(b)に示すようなアクションボードが表示される。
<Action Board Processing>
The processing related to the action board will now be described. When a UI component placed on the canvas is designated and an action is selected from the context menu, an action board for setting an action related to the designated UI component is displayed. For example, consider the case where a UI screen such as that shown in FIG. 9A is being edited. FIG. 9A is a diagram showing a portion of the UI editor screen on the display 105. In FIG. 9A, a list of UI components is displayed in the submenu area 520, and the UI screen to be edited is displayed on the canvas 900. A UI component 901, which is a button, and other UI components are arranged on the canvas 900. When the UI component 901 is designated and an action option is selected from the context menu, an action board such as that shown in FIG. 9B is displayed.
図9(b)は、UI部品901に関するアクションボードの表示例である。アクションボード910は、キャンバス900が表示されていた領域に、キャンバスに代えて表示される。テンプレート画面に予め配置される雛形部品(雛形コンポーネント)でなければ、開発者が過去に指定UI部品に対してアクションを設定していなければ、アクションボート910は図9(b)のように空白で表示される。なお、アクションボード910に「1」と表示されているのは行数を示すガイド表示であって、アクションの内容ではない。開発者はこのアクションボード910に、操作部106に含まれるキーボードを操作して、プログラム言語であるJavaScriptで任意の文字列を入力することにより、任意のアクションを設定することができる。アクションボードで設定された内容を実行するトリガーは予め定められており、指定UI部品が操作されたことである。従って開発者は、アクションを実行するトリガーが何かというのは設定する必要がない(JavaScriptで記述する必要はない)。例えば、指定UI部品がボタンである場合は、構築後のアプリにおいてそのボタンが押下されたことがトリガーであり、トリガーの発生に応じて、そのボタンのアクションボードに設定したアクションが実行される。 Figure 9(b) is an example of an action board display for UI component 901. Action board 910 is displayed in place of canvas 900 in the area where canvas 900 was displayed. Unless the specified UI component is a template component pre-placed on the template screen, and unless the developer has previously set an action for the specified UI component, action board 910 will be displayed blank, as shown in Figure 9(b). Note that the "1" displayed on action board 910 is a guide indicating the number of lines, and does not represent the action itself. Developers can set any action on this action board 910 by operating the keyboard included in operation unit 106 and entering any string in JavaScript, a programming language. The trigger for executing the content set on the action board is predetermined and occurs when the specified UI component is operated. Therefore, developers do not need to set the trigger for executing the action (there is no need to write it in JavaScript). For example, if the specified UI component is a button, pressing that button in the constructed app will be the trigger, and when the trigger occurs, the action set in the action board for that button will be executed.
また、アクションボード910とともに、サブメニュー領域には、UIエディタ画面で表示されていた図9(a)のようなUI部品一覧、あるいはUI画面一覧に代えて、関数(Function)一覧920が表示される。関数一覧920には、アクションボード910の表示を指示する選択肢922と、関数のそれぞれを表示させる指示をする関数の選択肢とが表示される。なお、予め用意された関数ではなく、開発者(ユーザー)が後述する関数追加ボタン921を押下して作成(追加)した関数を創作関数(作成関数、追加関数、自作関数)と称するものとする。自動的に作成された関数や予め用意された関数が無く、開発者が過去に指定UI部品に対して創作関数を作成していなければ、関数一覧920には、図9(b)に示すように、関数の選択肢は表示されず、選択肢922と関数追加ボタン921だけが表示される。 In addition to the action board 910, a function list 920 is displayed in the submenu area instead of the UI component list or UI screen list shown in Figure 9(a) that was displayed on the UI editor screen. The function list 920 displays an option 922 for instructing the display of the action board 910 and function options for instructing the display of each function. Note that a function that is not a pre-prepared function but is created (added) by the developer (user) by pressing the Add Function button 921 (described below) is referred to as an "original function" (created function, added function, self-made function). If there are no automatically created functions or pre-prepared functions and the developer has not previously created an original function for the specified UI component, the function list 920 will not display function options, and only the option 922 and the Add Function button 921 will be displayed, as shown in Figure 9(b).
関数追加ボタン921が押下されると、創作関数を追加するためのダイアログボックス(追加ダイアログ930と称する)を表示する。図9(c)に追加ダイアログ930の表示例を示す。追加ダイアログ930には、関数の種別(Function Type)の選択を受け付ける種別選択欄931と、関数の名前(Function Name)の入力を受け付ける関数名入力欄932と、SAVEボタン933が表示される。追加ダイアログに対する入力が行われ、SAVEボタン933が押下されると、種別選択欄931で選択された種別に応じた関数の設定画面が表示されるとともに、関数一覧920に関数名入力欄932に入力された関数名が追加で表示される。 When the Add Function button 921 is pressed, a dialog box (referred to as the Add dialog 930) for adding an original function is displayed. Figure 9(c) shows an example of the Add dialog 930. The Add dialog 930 displays a type selection field 931 that accepts the selection of the function type, a function name input field 932 that accepts the input of the function name, and a SAVE button 933. When input is made to the Add dialog and the SAVE button 933 is pressed, a function settings screen corresponding to the type selected in the type selection field 931 is displayed, and the function name entered in the function name input field 932 is added to the function list 920.
図9(d)は、種別選択欄931でRESTが選択された場合に表示されるREST関数設定画面の表示例である。アクションボード910に代えて、REST(REpresentational State Transfer)を用いた関数(REST関数)を作成するために必要な各種設定を受け付けるためのREST関数設定画面940が表示される。また、関数一覧920には、関数の選択肢として、関数名入力欄932に入力された関数名「rest01」の関数923が表示される。なお、「rest01」の前に表示されているアイコンは、関数923の種別がREST関数であることを示している。関数の設定画面で全ての必須設定項目が設定されていない場合(設定すべき情報が不足している場合)には、関数が未完成であることを示す未完マーク929が表示され、対応する関数923が未完成の状態であることが識別可能に表示される。 Figure 9 (d) is an example of a REST function setting screen that is displayed when REST is selected in the type selection field 931. In place of the action board 910, a REST function setting screen 940 is displayed to accept various settings required to create a function (REST function) using REST (REpresentational State Transfer). The function list 920 also displays a function 923 with the function name "rest01" entered in the function name input field 932 as a function option. The icon displayed before "rest01" indicates that the type of function 923 is a REST function. If all required setting items are not set on the function setting screen (if information that should be set is missing), an incomplete mark 929 indicating that the function is incomplete is displayed, clearly indicating that the corresponding function 923 is in an incomplete state.
図9(d)のREST関数設定画面940には、設定欄941~944が表示される。設定欄941は、関数名の設定画面であり、初期状態では関数名入力欄932に入力された関数名が表示されるが、開発者からの入力操作に応じて変更可能である。設定欄942はarguments(引数)を設定するための変数名を設定する設定欄である。本実施形態ではparamがデフォルトで設定されており、変更できないものとする。変更できないことを示すためにグレーアウトして表示される。設定欄943は、REST関数のタイプを設定する設定欄である。この領域の右端の三角アイコンを操作することでプルダウンメニューに選択肢としてGET、POST、PUT、DELETEが表示され、いずれかの選択肢を選択して設定することができる。ここで設定される種別は、この関数が行うリクエストの種別である。設定欄944はこの関数が行うリクエストを送信する先となるURLの設定欄である。このように、REST関数設定画面940でREST関数を作成する場合には、開発者はプログラム言語でソースコードの文字列を記述する必要はない。 The REST function setting screen 940 in Figure 9(d) displays setting fields 941 to 944. Setting field 941 is a setting screen for the function name. By default, it displays the function name entered in the function name input field 932, but this can be changed based on input from the developer. Setting field 942 is a setting field for setting the variable name for the arguments. In this embodiment, param is set by default and cannot be changed. It is displayed grayed out to indicate that it cannot be changed. Setting field 943 is a setting field for setting the type of REST function. By operating the triangle icon on the right side of this area, a pull-down menu appears with options: GET, POST, PUT, and DELETE, and one of these options can be selected and set. The type set here indicates the type of request made by this function. Setting field 944 is a setting field for the URL to which the request made by this function is sent. In this way, when creating a REST function on the REST function setting screen 940, developers do not need to write source code strings in a programming language.
図10(a)~(d)に、更に創作関数の設定画面とアクションボードの表示例を示す。図10において、図9と同じものについては図10と同じ符号を付し、説明を省略する。 Figures 10(a) to (d) show further examples of the creation function setting screen and action board display. In Figure 10, the same elements as in Figure 9 are given the same reference numerals as in Figure 10, and their explanations will be omitted.
図10(a)は、種別選択欄931でSQLが選択された場合に表示されるSQL関数設定画面の表示例である。アクションボード910に代えて、SQL(Structured Query Language)を用いた関数(SQL関数)を作成するために必要な各種設定を受け付けるためのSQL関数設定画面950が表示される。また、関数一覧920には、関数の選択肢として、関数名入力欄932に入力された関数名「sql01」の関数924が未完マーク929とともに表示される。なお、「sql01」の前に表示されているアイコンは、関数924の種別がSQL関数であることを示している。設定欄951は、関数名の設定画面であり、初期状態では関数名入力欄932に入力された関数名が表示されるが、開発者からの入力操作に応じて変更可能である。設定欄952はarguments(引数)を設定するための変数名を設定する設定欄である。本実施形態ではparamがデフォルトで設定されており、変更できないものとする。変更できないことを示すためにグレーアウトして表示される。設定欄953は、コンピュータ言語の一種であるSQL(データベース言語であり、プログラミング言語ではない)で、データベースへ指示を出す文字列(SQL文、SQLステートメント)を入力するための入力欄である。開発者は、設定欄953に対して、操作部106に含まれるキーボードなどから、任意のSQL STATEMENTを入力することができる。このように、SQL関数設定画面950でSQL関数を作成する場合には、開発者はプログラム言語でソースコードの文字列を記述する必要はない。 Figure 10(a) shows an example of the SQL function setting screen that appears when SQL is selected in the type selection field 931. Instead of the action board 910, an SQL function setting screen 950 is displayed to accept various settings required to create a function (SQL function) using SQL (Structured Query Language). The function list 920 also displays the function 924 with the function name "sql01" entered in the function name input field 932, along with an incomplete mark 929, as a function option. The icon displayed before "sql01" indicates that the type of function 924 is an SQL function. The setting field 951 is a function name setting screen. Initially, the function name entered in the function name input field 932 is displayed, but this can be changed based on input operations by the developer. The setting field 952 is a setting field for setting variable names for setting arguments. In this embodiment, param is set by default and cannot be changed. It is displayed as grayed out to indicate that it cannot be changed. The setting field 953 is an input field for entering a string of characters (SQL sentence, SQL statement) that issues instructions to a database in SQL, a type of computer language (a database language, not a programming language). The developer can enter any SQL STATEMENT into the setting field 953 using a keyboard included in the operation unit 106, for example. In this way, when creating an SQL function on the SQL function setting screen 950, the developer does not need to write the source code string in a programming language.
図10(b)は、開発者が創作関数である関数923~925を作成した後に、アクションボード910に、開発者がある程度JavaScriptでコード(文字列)を入力(記述)した後に、「sq」と入力した段階の表示例である。本実施形態では、開発者ユーザーが文字列を入力した際に、入力された文字列が作成済みの創作関数の関数名(識別情報)と前方一致している場合には、コードアシスト欄911に、前方一致した関数名を入力候補の選択肢として表示する。図示の例では、入力された「sq」が、作成済みの創作関数である関数924の関数名「sql01」と前方一致するため、選択肢として「sql01」が表示される。ユーザーが、コードアシスト欄911に表示された「sql01」を選択する操作を行うと、「l01」を入力する操作を行わなくとも、図10(c)に示すように、アクションボード910に「sql01」が入力される。このコードアシスト機能により、開発者(ユーザー)が創作関数の関数名の文字の全てをキーボードで打たなくとも創作関数の関数名(識別情報)を入力することができ、操作手数の削減に寄与する。また、作成済みの創作関数の関数名に前方一致していればコードアシスト欄911にフルネームが表示され、一致していなければ(すなわち、その文字列で始まる関数が存在しなければ)コードアシスト欄911は表示されない。従って開発者は、自身が作成済みの創作関数の関数名として誤っていないことを確認して入力することができ、関数名の入力ミスを防止することができる。なお、前方一致する創作関数が複数ある場合には、コードアシスト欄911には、複数の選択肢が表示される。また、コードアシスト欄911に表示される創作関数の関数名は、アクションボード910の対象となっている指定UI部品(図示の例ではUI部品901)について作成された関数であって、他のUI部品について作成された創作関数については表示されない。従って、誤って他のUI部品について作成した創作関数の関数名であって、指定UI部品の創作関数としては存在しない関数名をアクションボード910に記述してしまうミスも防止することができる。 Figure 10(b) shows an example display of the stage when a developer has created functions 923-925, entered (written) some code (character strings) in JavaScript into the action board 910, and then entered "sq." In this embodiment, when a developer user enters a character string, if the entered character string matches the prefix of the function name (identification information) of a previously created created function, the code assist field 911 displays the matching function name as an input candidate option. In the illustrated example, the entered "sq" matches the prefix of the function name "sql01" of function 924, a previously created created function, so "sql01" is displayed as an option. When the user performs an operation to select "sql01" displayed in the code assist field 911, "sql01" is entered into the action board 910, as shown in Figure 10(c), without performing an operation to enter "sql01." This code assist function allows developers (users) to enter the function name (identification information) of a created function without typing all the characters of the function name on the keyboard, thereby reducing the number of steps required. Furthermore, if the function name matches the prefix of a previously created created function, the full name is displayed in the code assist field 911. If there is no match (i.e., if no function begins with that character string), the code assist field 911 is not displayed. This allows developers to confirm that the function name they are entering is correct for a previously created created function, preventing input errors in the function name. If there are multiple previously created functions that match the prefix, multiple options are displayed in the code assist field 911. Furthermore, the function names of created functions displayed in the code assist field 911 are functions created for the specified UI component (UI component 901 in the illustrated example) targeted by the action board 910; created functions created for other UI components are not displayed. This prevents the mistake of accidentally entering the name of a created function created for another UI component on the action board 910, even if that function does not exist as a created function for the specified UI component.
また、図10(c)に示す通り、アクションボード910とともに、関数一覧920には、開発者が作成した創作関数の関数923~925のそれぞれについて、関数の種別(文字列の前のアイコン)と、関数の名称が表示される。従って開発者ユーザーは、アクションボード910にアクションのコード(JavaScriptでの文字列)を入力(記述)しながら、どうような種別のどのような名称の創作関数を作成済みであるかを確認することができる。そのため、アクションボード910に記述できる有効な創作関数の確認や管理の手間(例えば、手元にメモしておく、別の画面を開いて確認する、といった手間)を削減することができる。また、関数名の入力ミスの防止にも寄与する。関数一覧920に表示される関数は、アクションボード910の対象となっている指定UI部品(図示の例ではUI部品901)について作成された関数であって、他のUI部品について作成された創作関数については表示されない。従って、誤って他のUI部品について作成した創作関数の関数名であって、指定UI部品の創作関数としては存在しない関数名をアクションボード910に記述してしまうミスも防止することができる。また、創作関数は、指定UI部品のアクションの定義の際にのみ有効であり、他のUI部品のアクションの定義には影響を及ぼさない。従って、指定UI部品について作成する創作関数の関数名が、他のUI部品について作成された創作関数と同じ関数名となった場合、アクションボード910にその関数名が記述されたとしても指定UI部品について設定された関数設定のみが反映され、他のUI部品について設定された関数設定は反映されない。従って、他のUI部品について作成済みの創作関数の関数名と同じ関数名を用いたとしてもエラーとなることはない。そのため、ユーザーは、他のUI部品について作成済みの創作関数との関数名の重複を気にすることなく創作関数の関数名を決め、アクションボード910に入力することができる。すなわち、アプリケーションの開発全体において多数の創作関数を作成することになるが、それらは指定UI部品に関連付けて自動的に管理・整理され、コードアシスト欄911や関数一覧920に表示されるため、開発者による多数の創作関数の管理が非常に容易になる。従って関数名の確認に係る手間・時間を削減することができる。また、関数名の入力ミスも抑制できる。そのため、関数名の入力ミスを犯した場合のデバック作業(バグ取りの作業)も抑制することができる。以て、ソフトウェア開発(アプリケーション開発)に掛かる負荷・工数を削減し、より効率的なソフトウェア開発(アプリケーション開発)を行うことができる。 As shown in Figure 10(c), the function list 920, along with the action board 910, displays the function type (icon before the string) and function name for each of the developer-created functions 923-925. Therefore, while entering (writing) the action code (JavaScript string) into the action board 910, the developer user can check the types and names of the created functions they have created. This reduces the effort required to check and manage valid created functions that can be written into the action board 910 (e.g., the effort required to make a note of them or open another screen to check). It also helps prevent input errors in function names. The functions displayed in the function list 920 are functions created for the specified UI component (UI component 901 in the illustrated example) targeted by the action board 910; created functions created for other UI components are not displayed. This prevents the mistake of accidentally entering a function name of a creation function created for another UI component that does not exist as a creation function for the specified UI component on the action board 910. Furthermore, creation functions are only valid when defining the action of the specified UI component and do not affect the action definitions of other UI components. Therefore, if the function name of a creation function created for a specified UI component is the same as the function name of a creation function created for another UI component, even if that function name is entered on the action board 910, only the function settings set for the specified UI component will be reflected, and the function settings set for the other UI components will not be reflected. Therefore, no error will occur even if the same function name as the function name of a creation function already created for another UI component is used. Therefore, the user can decide on the function name of the creation function and enter it on the action board 910 without worrying about duplicate function names with creation functions already created for other UI components. In other words, many original functions will be created throughout the entire development of an application, but these are automatically managed and organized in association with specified UI components and displayed in the code assist field 911 and function list 920, making it extremely easy for developers to manage a large number of original functions. This reduces the effort and time required to check function names. It also reduces input errors in function names. This also reduces the amount of debugging work (debug fixes) required when inputting a function name. This reduces the workload and man-hours required for software development (application development), enabling more efficient software (application development).
図10(d)は、アクションボード910にアクションのコードをプログラミング言語で入力し終えた場合の表示例である。図示の例では、3行目の点線960で示した部分に、創作関数である「rest01」(関数一覧920の関数923)を用いている。図10(d)のアクションボード910に図示したコードの文字列では、創作関数であるrest01の詳細は定義されていない。また、開発者がrest01の設定をREST関数設定画面940で行った際にも、プログラミング言語でのrest01の詳細の定義は行っていない。この状態のアクションの定義を含む定義情報を開発環境300にアップロードして保存した場合、開発環境300が、保存処理において、実行環境用プログラムとして、アップロードされた定義情報から、関数の設定内容とアクションボード910に記述された文字列に基づき、プログラミング言語での関数の定義を含むプログラミング言語でのソースコードを作成する。このように、開発環境300は、プログラミング言語で記述された創作関数の識別情報(関数名)が含まれる文字列を取得すると、関数設定画面で設定された情報に基づいて、創作関数の機能を含む文字列(アクションボードに記載されたアクション)で示される機能(アクション)を実行可能とする制御を行う。 Figure 10(d) is an example of the display after action code has been entered in a programming language into the action board 910. In the illustrated example, the portion indicated by the dotted line 960 on the third line uses the original function "rest01" (function 923 in the function list 920). The code string shown on the action board 910 in Figure 10(d) does not define the details of the original function rest01. Furthermore, when the developer configured rest01 on the REST function setting screen 940, the details of rest01 were not defined in the programming language. If definition information including the action definition in this state is uploaded and saved to the development environment 300, the development environment 300, during the save process, creates source code in the programming language including the function definition in the programming language from the uploaded definition information as an execution environment program based on the function settings and the string written on the action board 910. In this way, when the development environment 300 acquires a string containing identification information (function name) of a created function written in a programming language, it performs control to enable the execution of the function (action) indicated by the string containing the function of the created function (action written on the action board) based on the information set on the function setting screen.
図11に、図10(d)のアクションボード910に記載された文字列と、REST関数設定画面940で設定されたrest01の設定内容に基づいて、開発環境300が生成するプログラミング言語でのソースコードの例を示す。なお、図示の例において、左端に記載した1~75の数字は、行数を示すために図示したものであって、ソースコードの一部ではない。図11の例は、プログラミング言語でのrest01の詳細の定義を含む75行のソースコードである。しかし開発者自身は75行もの入力をする必要はない。REST関数設定画面940での設定を行い、図10(d)のアクションボード910に図示した分量(7行)の文字列を記述すれば、図11に示すソースコードの内容を定義できる。すなわち、ローコードで効率的な開発を行うことができる。 Figure 11 shows an example of source code in a programming language generated by the development environment 300 based on the string entered on the action board 910 in Figure 10(d) and the settings for rest01 configured on the REST function setting screen 940. Note that in the illustrated example, the numbers 1 to 75 written on the left side are used to indicate the line numbers and are not part of the source code. The example in Figure 11 shows 75 lines of source code including a detailed definition of rest01 in a programming language. However, developers do not need to enter all 75 lines themselves. By configuring the REST function setting screen 940 and entering the amount of string (7 lines) shown on the action board 910 in Figure 10(d), the source code content shown in Figure 11 can be defined. In other words, efficient development can be achieved using low code.
図8に、アクションボード処理のフローチャートを示す。この処理は、図7のS715で前述したアクションボード処理の詳細フローチャートであり、図9(b)~(d)、図10(a)~(d)の表示例を用いて説明した動作となるように制御する処理である。 Figure 8 shows a flowchart of the action board processing. This processing is a detailed flowchart of the action board processing described above in S715 of Figure 7, and is a process that controls the operations described using the display examples in Figures 9(b) to (d) and 10(a) to (d).
S801では、開発者用端末100は、ディスプレイ105にアクションボードを表示する。指定UI部品に対してアクションが定義されていなければ、図9(b)で説明したような空白のアクションボート910を含む画面を表示する。指定UI部品に対して既にアクションが定義されていれば、図10(d)で説明したような、アクションの文字列が入力されたアクションボード910を含む画面を表示する。 In S801, the developer terminal 100 displays an action board on the display 105. If no action has been defined for the specified UI component, a screen including a blank action board 910 as described in FIG. 9(b) is displayed. If an action has already been defined for the specified UI component, a screen including an action board 910 with the action string entered as described in FIG. 10(d) is displayed.
S802では、開発者用端末100は、アクションボード910に対してアクションを記述する操作(記述操作)があったか否かを判定する。アクションを記述する操作とは、例えば、アクションボード910を選択した状態で操作部106に含まれるキーボードに対する操作や、タッチパネルに表示されるソフトキーボードをタッチする操作によって行われるテキスト入力操作である。アクションを記述する操作があった場合にはS803に進み、そうでない場合にはS810に進む。 In S802, the developer terminal 100 determines whether an operation to describe an action (description operation) has been performed on the action board 910. An operation to describe an action is, for example, a text input operation performed by operating the keyboard included in the operation unit 106 while the action board 910 is selected, or by touching a soft keyboard displayed on a touch panel. If an operation to describe an action has been performed, the process proceeds to S803; if not, the process proceeds to S810.
S803では、開発者用端末100は、アクションを記述する操作によるアクションの入力操作を受け付け、アクションボード910に、入力された文字を表示する。 In S803, the developer terminal 100 accepts the action input operation by the action description operation and displays the input characters on the action board 910.
S804では、開発者用端末100は、S803で入力された文字と、その前までに入力された文字とによる文字列が、創作関数の関数名に前方一致する(すなわち、一部一致する)か否かを判定する。前方一致する場合にはS805に進み、そうでない場合にはS808に進む。 In S804, the developer terminal 100 determines whether the character string consisting of the characters entered in S803 and the characters entered up to that point matches (i.e., partially matches) the function name of the created function. If there is a prefix match, proceed to S805; if not, proceed to S808.
S805では、開発者用端末100は、S804で一致すると判定された創作関数の関数名をコードアシスト欄に選択肢として表示する。これによって、図10(b)で説明したようにコードアシスト欄911が表示される。なお、コードアシスト欄911には、創作関数だけでなく、プログラミング言語で一般的に利用可能な関数名などについても、入力された文字列に前方一致するものを表示しても良い。 In S805, the developer terminal 100 displays the function names of the created functions determined to be a match in S804 as options in the code assist field. This causes the code assist field 911 to be displayed as described in FIG. 10(b). Note that the code assist field 911 may display not only created functions, but also function names that are generally available in programming languages and that prefix-match the input string.
S806では、開発者用端末100は、コードアシスト欄に表示された選択肢のいずれかが選択されたか否かを判定する。選択肢のいずれかが選択された場合にはS807に進み、選択された選択肢の関数名をコードアシスト欄911に表示する。例えば、図10(b)の状態からコードアシスト欄911の選択肢が選択されたことに応じて、アクションボード910の5行目に示すように、「sql01」と入力して表示する。選択肢のいずれも選択されなかった場合には処理はS808に進む。 In S806, the developer terminal 100 determines whether any of the options displayed in the code assist field has been selected. If any of the options has been selected, the process proceeds to S807, where the function name of the selected option is displayed in the code assist field 911. For example, in response to the selection of an option in the code assist field 911 from the state shown in FIG. 10(b), "sql01" is entered and displayed, as shown on the fifth line of the action board 910. If none of the options has been selected, the process proceeds to S808.
S808では、開発者用端末100は、アクションを記述する操作が継続して行われたか否かを判定する。アクションを記述する操作が継続して行われた場合にはS803に進み、そうでない場合にはS802に進む。 In S808, the developer terminal 100 determines whether the operation to describe the action is being performed continuously. If the operation to describe the action is being performed continuously, the process proceeds to S803; if not, the process proceeds to S802.
S810では、開発者用端末100は、関数を追加する指示をする操作が行われたか否かを判定する。具体的には、関数追加ボタン921が押下されたか否かを判定する。関数追加ボタン921が押下された場合にはS811に進み、そうでない場合にはS820に進む。 In S810, the developer terminal 100 determines whether an operation has been performed to instruct adding a function. Specifically, it determines whether the Add Function button 921 has been pressed. If the Add Function button 921 has been pressed, the process proceeds to S811; if not, the process proceeds to S820.
S811では。開発者用端末100は、創作関数を追加するための追加ダイアログ930を表示し、追加ダイアログ930に対する入力を受け付ける。追加ダイアログで入力を受け付ける内容は図9(c)を用いて前述したとおりである。追加ダイアログへの入力が行われ、SAVEボタン933が押下されるとS812に進む。 In S811, the developer terminal 100 displays the addition dialog 930 for adding a creation function and accepts input into the addition dialog 930. The content of the input accepted in the addition dialog is as described above with reference to FIG. 9(c). Once input into the addition dialog has been made and the SAVE button 933 has been pressed, the process proceeds to S812.
S812では、開発者用端末100は、サブメニュー領域の関数一覧920に、追加ダイアログの関数名入力欄932に入力された関数名を追加で、未完マーク929を付した状態で表示する。 In S812, the developer terminal 100 displays the function name entered in the function name input field 932 of the addition dialog in the function list 920 in the submenu area, with an incomplete mark 929 added.
S813では、開発者用端末100は、追加ダイアログの種別選択欄931で選択された種別がスクリプトであるか否かを判定する。スクリプトである場合にはS814に進み、そうでない場合にはS815に進む。S814では、開発者用端末100は、スクリプト関数の設定画面(不図示)を表示し、開発者ユーザーからの設定操作を受け付ける。 In S813, the developer terminal 100 determines whether the type selected in the type selection field 931 of the addition dialog is script. If it is script, the process proceeds to S814; if not, the process proceeds to S815. In S814, the developer terminal 100 displays a script function settings screen (not shown) and accepts setting operations from the developer user.
S815では、開発者用端末100は、追加ダイアログの種別選択欄931で選択された種別がSQLであるか否かを判定する。SQLである場合にはS816に進み、そうでない場合(すなわち、追加ダイアログの種別選択欄931で選択された種別がRESTである場合)にはS817に進む。S816では、開発者用端末100は、SQL関数設定画面を表示し、開発者ユーザーからの設定操作を受け付ける。SQL関数設定画面で受け付ける設定内容は図10(a)を用いて前述したとおりである。 In S815, the developer terminal 100 determines whether the type selected in the type selection field 931 of the addition dialog is SQL. If it is SQL, the process proceeds to S816; if not (i.e., if the type selected in the type selection field 931 of the addition dialog is REST), the process proceeds to S817. In S816, the developer terminal 100 displays an SQL function setting screen and accepts setting operations from the developer user. The setting contents accepted on the SQL function setting screen are as described above using Figure 10(a).
S817では、開発者用端末100は、REST関数設定画面を表示し、開発者ユーザーからの設定操作を受け付ける。REST関数設定画面で受け付ける設定内容は図9(d)を用いて前述したとおりである。 In S817, the developer terminal 100 displays the REST function setting screen and accepts setting operations from the developer user. The setting contents accepted on the REST function setting screen are as described above with reference to Figure 9 (d).
S818では。開発者用端末100は、それぞれの種別の関数設定画面において、必須項目として予め定められた設定項目への入力が完了したか(設定が完了したか)を判定する。必須項目への入力が完了した場合にはS819に進み、そうでない場合にはS802に進む。 In S818, the developer terminal 100 determines whether input into the setting items predetermined as required items has been completed (whether the settings have been completed) on the function setting screen for each type. If input into the required items has been completed, the process proceeds to S819; if not, the process proceeds to S802.
S819では、開発者用端末100は、設定中の創作関数に関して関数一覧920に表示された関数名に対応付けて表示していた未完マークを非表示とする。これによってユーザー(開発者)は、設定中の創作関数が、アクションボード910で使える有効な設定状態であることを認識することができる。 In S819, the developer terminal 100 hides the incomplete mark that was displayed in association with the function name displayed in the function list 920 for the creative function being set. This allows the user (developer) to recognize that the creative function being set is in a valid setting that can be used on the action board 910.
S820では、開発者用端末100は、関数一覧920に表示されたいずれかの創作関数が選択(押下)されたか否かを判定する。関数一覧920で創作関数が選択された場合には、S813に進み、S814、S816、S817のいずれかで、選択された創作関数の種別に応じた設定画面を、既に設定済みの内容を反映して表示する。ユーザー(開発者)は、設定画面に対して設定内容の変更や追加の設定を行うことができる(すなわち、創作関数の編集を行うことができる)。 In S820, the developer terminal 100 determines whether any of the creation functions displayed in the function list 920 has been selected (pressed). If a creation function has been selected in the function list 920, the process proceeds to S813, and in S814, S816, or S817, a settings screen corresponding to the type of creation function selected is displayed, reflecting the settings that have already been configured. The user (developer) can change the settings on the settings screen or add settings (i.e., edit the creation function).
S821では、開発者用端末100は、保存の指示操作(例えば保存ボタン915の押下)があったか否かを判定する。保存の指示操作があった場合にはS822に進み、そうでない場合にはS823へ進む。 In S821, the developer terminal 100 determines whether a save instruction operation (e.g., pressing the Save button 915) has been performed. If a save instruction operation has been performed, the process proceeds to S822; if not, the process proceeds to S823.
S822では、開発者用端末100は、現在までにアクションボード処理で行われた内容をメモリ102に保持した定義情報に記録するとともに、開発環境300に送信する。 In S822, the developer terminal 100 records the details of the action board processing performed up to this point in the definition information stored in memory 102 and transmits it to the development environment 300.
S823では、開発者用端末100は、関数一覧920に表示された、アクションボード910の表示を指示する選択肢922が押下されたか否かを判定する。選択肢922が押下された場合はS801に進み、指定UI部品のアクションボードを表示する。これによって、関数の設定画面を表示していた場合には、アクションボードの表示に切り替わる。選択肢922が押下されていない場合にはS824へ進む。 In S823, the developer terminal 100 determines whether option 922, which is displayed in the function list 920 and instructs the display of the action board 910, has been pressed. If option 922 has been pressed, the process proceeds to S801, and the action board of the specified UI component is displayed. As a result, if the function settings screen was displayed, it switches to displaying the action board. If option 922 has not been pressed, the process proceeds to S824.
S824では、開発者用端末100は、アクションボードを閉じる操作(アクションボード処理を終了する操作)があったか否かを判定する。アクションボードを閉じる操作が無い場合にはS802に進んで処理を繰り返す。アクションボードを閉じる操作があった場合にはアクションボードを非表示とし、選択中UI画面のキャンバスの表示に切り替え、UIエディタ処理へ戻る。 In S824, the developer terminal 100 determines whether an operation to close the action board (an operation to end action board processing) has been performed. If an operation to close the action board has not been performed, the process proceeds to S802 and the process is repeated. If an operation to close the action board has been performed, the action board is hidden, the display switches to the canvas of the selected UI screen, and the process returns to the UI editor processing.
<画面切替処理>
図12に、画面切替処理のフローチャートを示す。この処理は、図5(b)の表示例で前述したメインメニュー領域510に表示された選択肢の選択に応じた処理である。
<Screen switching process>
A flowchart of the screen switching process is shown in Fig. 12. This process corresponds to the selection of an option displayed in the main menu area 510 described above in the display example of Fig. 5(b).
S1201では、開発者用端末100は、アプリ一覧ボタン511が押下されたか否かを判定する。アプリ一覧ボタン511が押下された場合は図3のS315に進み、そうでない場合はS1202に進む。 In S1201, the developer terminal 100 determines whether the App List button 511 has been pressed. If the App List button 511 has been pressed, the process proceeds to S315 in Figure 3; if not, the process proceeds to S1202.
S1202では、開発者用端末100は、UI画面ボタン512が押下されたか否かを判定する。UI画面ボタン512が押下された場合はS1203に進み、そうでない場合はS1204へ進む。S1203では、図4のUIエディタ処理を行う。 In S1202, the developer terminal 100 determines whether the UI screen button 512 has been pressed. If the UI screen button 512 has been pressed, the process proceeds to S1203; if not, the process proceeds to S1204. In S1203, the UI editor process of Figure 4 is performed.
S1204では、開発者用端末100は、ワークフローボタン513が押下されたか否かを判定する。ワークフローボタン513が押下されたと判定した場合はS1205に進み、そうでない場合はS1206に進む。 In S1204, the developer terminal 100 determines whether the workflow button 513 has been pressed. If it determines that the workflow button 513 has been pressed, the process proceeds to S1205; if not, the process proceeds to S1206.
S1205では、開発者用端末100は、ワークフロー作成処理を行う。 In S1205, the developer terminal 100 performs workflow creation processing.
S1206では、開発者用端末100は、設定ボタン514が押下されたか否かを判定する。設定ボタン514が押下された場合にはS1207に進み、そうでない場合はS1209へ進む。 In S1206, the developer terminal 100 determines whether the Settings button 514 has been pressed. If the Settings button 514 has been pressed, the process proceeds to S1207; if not, the process proceeds to S1209.
S1207では、開発者用端末100は、アプリ設定画面を表示する。アプリ設定画面は、選択中アプリに関する設定操作を受け付ける画面である。S1208では、開発者用端末100は、アプリ設定画面への設定操作を受け付け、設定に基づいてメモリ102に記録した定義情報を更新する。S1208で受け付け可能な設定には、例えば、表示言語の設定や、PWA(Progressive Web Apps)としての利用を可とするアプリを構築するか否かの設定がある。また、アプリに所属する複数のUI画面のうち、どのUI画面をイニシャルUIとするかの設定がある。イニシャルUIとは、実行環境にデプロイされた構築済みアプリにアクセスした際に最初に表示される画面、あるいは構築済みアプリにアクセスした後にアプリの認証画面において認証OKになった後に最初に表示される画面である。 In S1207, the developer terminal 100 displays an app settings screen. The app settings screen is a screen that accepts setting operations related to the selected app. In S1208, the developer terminal 100 accepts setting operations on the app settings screen and updates the definition information recorded in memory 102 based on the settings. Settings that can be accepted in S1208 include, for example, a display language setting and a setting for whether to build an app that can be used as a PWA (Progressive Web App). There is also a setting for which UI screen, out of multiple UI screens belonging to the app, is to be designated as the initial UI. The initial UI is the screen that is displayed first when accessing a built app deployed in the execution environment, or the screen that is displayed first after authentication is successful on the app authentication screen after accessing the built app.
S1209では、開発者用端末100は、環境一覧ボタン515が押下されたか否かを判定する。環境一覧ボタン515が押下された場合には図3のS311に進み、そうでない場合にはS1210へ進む。 In S1209, the developer terminal 100 determines whether the Environment List button 515 has been pressed. If the Environment List button 515 has been pressed, the process proceeds to S311 in Figure 3; if not, the process proceeds to S1210.
S1210では、開発者用端末100は、データベースボタン516が押下されたか否かを判定する。データベースボタン516が押下された場合にはS1211に進み、そうでない場合にはS1215へ進む。データベースボタン516の押下はデータベースへの接続要求である。 In S1210, the developer terminal 100 determines whether the Database button 516 has been pressed. If the Database button 516 has been pressed, the process proceeds to S1211; if not, the process proceeds to S1215. Pressing the Database button 516 is a request to connect to the database.
S1211では、開発者用端末100は、選択中実行環境がマルチテナント実行環境410であるか否かを判定する。マルチテナント実行環境410である場合にはS1213に進み、そうでない場合(シングルテナント実行環境である場合)にはS1212に進む。 In S1211, the developer terminal 100 determines whether the selected execution environment is a multi-tenant execution environment 410. If it is a multi-tenant execution environment 410, the process proceeds to S1213; if it is not (if it is a single-tenant execution environment), the process proceeds to S1212.
S1212では、開発者用端末100は、開発環境300が選択中実行環境から取得したデータベースの情報を取得する。より詳しくは、開発環境300が、選択中実行環境がマルチテナント実行環境であるかシングルテナント実行環境であるかを判定し、シングルテナント実行環境である場合には、開発環境300が選択中実行環境であるシングルテナント実行環境のDBセット(DBセット457、467、477などのうちいずれか)にアクセスし、データベースに記録されている内容を取得する。そして、開発環境300が選択中実行環境から取得したデータベースの情報を開発者用端末100に送信する。開発者用端末100から、開発環境300を介さずにシングルテナント実行環境にアクセスすることは無い。 In S1212, the developer terminal 100 acquires database information acquired by the development environment 300 from the selected execution environment. More specifically, the development environment 300 determines whether the selected execution environment is a multi-tenant execution environment or a single-tenant execution environment, and if it is a single-tenant execution environment, the development environment 300 accesses the DB set (any of DB sets 457, 467, 477, etc.) of the single-tenant execution environment, which is the selected execution environment, and acquires the contents recorded in the database. The development environment 300 then transmits the database information acquired from the selected execution environment to the developer terminal 100. The developer terminal 100 will never access the single-tenant execution environment without going through the development environment 300.
S1213では、開発者用端末100は、ログイン開発者の開発者情報(開発者情報301のうち、ログイン開発者について登録された情報)に記録されたDBインスタンス名を参照する。そして、開発環境300が選択中実行環境であるマルチテナント実行環境410に含まれるDBセット430のうち、ログイン開発者の開発者情報を参照して得たDBインスタンス名が示すDBインスタンスのデータベースに記録されている内容を取得する。そして、開発環境300が選択中実行環境から取得したデータベースの情報を開発者用端末100に送信する。開発者用端末100から、開発環境300を介さずにマルチテナント実行環境410にアクセスすることは無い。 In S1213, the developer terminal 100 references the DB instance name recorded in the developer information of the logged-in developer (the information registered for the logged-in developer in the developer information 301). Then, from among the DB sets 430 included in the multi-tenant execution environment 410, which is the currently selected execution environment for the development environment 300, the developer terminal 100 obtains the contents recorded in the database of the DB instance indicated by the DB instance name obtained by reference to the developer information of the logged-in developer. Then, the development environment 300 transmits the database information obtained from the currently selected execution environment to the developer terminal 100. The developer terminal 100 will not access the multi-tenant execution environment 410 without going through the development environment 300.
S1214では、開発者用端末100は、データベースの管理画面を表示し、S1212またはS1213で取得したデータベースの情報を表示する。そして、選択中実行環境のデータベースに関する各種設定や、内容の更新の指示を行うDB管理操作を受け付ける。 In S1214, the developer terminal 100 displays the database management screen and displays the database information obtained in S1212 or S1213. It then accepts DB management operations to specify various settings for the database of the selected execution environment and to instruct content updates.
S1215では、開発者用端末100は、ファイルマネージャーボタン517が押下されたか否かを判定する。ファイルマネージャーボタン517が押下された場合にはS1216に進み、そうでない場合にはS1218に進む。 In S1215, the developer terminal 100 determines whether the file manager button 517 has been pressed. If the file manager button 517 has been pressed, the process proceeds to S1216; if not, the process proceeds to S1218.
S1216では、開発者用端末100は、選択中実行環境に保存するファイルを管理するファイル管理画面を表示し、S1217で、選択中実行環境に保存するファイルを管理する操作を受け付ける。例えば、構築されるアプリケーションの画面に表示すべき画像ファイルを選択中実行環境の開発者領域にアップロードして保存することができる。開発者用端末100のローカル保存領域(記録媒体108など)から選択中実行環境に保存すべきファイルが選択され保存の指示がされると、開発者用端末100は、選択されたファイルを開発環境300に送信する。開発環境300は、選択されたファイルを受信すると、選択中実行環境の開発者領域に送信することで、選択中実行環境に保存させる。各種実行環境は、開発環境300からのアクセスだけを受け付ける。そのため、ファイル管理のためには、開発者用端末100から、開発環境300を介して各種実行環境にアクセスする。開発者用端末100から、開発環境300を介さずにマルチテナント実行環境410にアクセスすることは無い。前述のログイン処理で説明した取り、開発者は、開発環境300へは認証を行ってログインする必要がある。従って開発環境300を介してでないと各種実行にアクセスできないようにすることで、開発環境300にログインできない他のユーザーが不正に実行環境にアクセスすることは出来ず、その分、セキュリティが向上する。 At S1216, the developer terminal 100 displays a file management screen for managing files to be saved in the selected execution environment, and at S1217, accepts operations for managing files to be saved in the selected execution environment. For example, an image file to be displayed on the screen of an application being constructed can be uploaded and saved in the developer area of the selected execution environment. When a file to be saved in the selected execution environment is selected from the local storage area (such as the recording medium 108) of the developer terminal 100 and a save instruction is given, the developer terminal 100 sends the selected file to the development environment 300. When the development environment 300 receives the selected file, it sends it to the developer area of the selected execution environment, thereby saving it in the selected execution environment. The various execution environments only accept access from the development environment 300. Therefore, for file management, the developer terminal 100 accesses the various execution environments via the development environment 300. The developer terminal 100 never accesses the multi-tenant execution environment 410 without going through the development environment 300. As explained in the login process above, developers must authenticate themselves before logging in to the development environment 300. Therefore, by restricting access to various execution environments to via the development environment 300, other users who cannot log in to the development environment 300 cannot access the execution environment illegally, thereby improving security.
また、開発者ユーザーは開発環境300にログインするための認証に掛かる操作だけを行えばよく、実行環境毎にログインするための認証にかかる操作をする必要がない。そのため、操作手数の増大を抑制することができる。 In addition, the developer user only needs to perform the authentication operations required to log in to the development environment 300, and does not need to perform the authentication operations required to log in to each execution environment. This prevents an increase in the number of operations required.
S1218では、開発者用端末100は、ユーザー管理ボタン518が押下されたか否かを判定する。ユーザー管理ボタン518が押下されたと判定した場合はS1219に進み、そうでない場合はS1220に進む。 In S1218, the developer terminal 100 determines whether the User Management button 518 has been pressed. If it determines that the User Management button 518 has been pressed, the process proceeds to S1219; if not, the process proceeds to S1220.
S1219では、開発者用端末100は、ユーザー情報表示処理を行う。ユーザー情報表示処理は、選択中実行環境に構築されるアプリケーションにログイン可能なアプリユーザー(開発者とは別途管理される情報)の情報であるユーザー情報(図1に図示した各実行環境におけるユーザー情報411、451、461、471など)を表示し、開発者からの管理操作を受け付ける処理である。 At S1219, the developer terminal 100 performs user information display processing. The user information display processing displays user information (such as user information 411, 451, 461, and 471 for each execution environment shown in FIG. 1) that is information about app users (information managed separately from the developer) who can log in to the application built in the selected execution environment, and accepts management operations from the developer.
S1220では、開発者用端末100は、スナップショットボタン519が押下されたか否かを判定する。スナップショットボタン519が押下された場合にはS1221に進んでスナップ処理を行い、そうでない場合にはS1222に進む。 In S1220, the developer terminal 100 determines whether the snapshot button 519 has been pressed. If the snapshot button 519 has been pressed, the process proceeds to S1221 to perform snap processing; if not, the process proceeds to S1222.
S1222では、開発者用端末100は、終了操作が行われたか否かを判定する。終了操作が行われていない場合にはS1201に進んで処理を繰り返し、終了操作があった場合には画面切替処理を終了する。
<チュートリアル処理>
図13に、開発者用端末100が実行するチュートリアル処理のフローチャートを示す。この処理は、図3のS351の処理の詳細である。図14(a)に、S315の処理によってディスプレイ105に表示されるアプリケーションの一覧(アプリ一覧)の表示例を示す。アプリ一覧には、アプリの選択肢として選択肢1403、1404の2つが表示されている。ヘッダーメニュー領域には、チュートリアルボタン1401とアプリ作成ボタン1402が表示される。チュートリアルボタン1401が押下されると、図13のチュートリアル処理を開始する。なお、図13でのチュートリアル処理における各種表示処理の表示先は開発者用端末100のディスプレイ105であるものとする。また、各種表示例は、ディスプレイ105の全体ではなく、一部分における例である。
In S1222, the developer terminal 100 determines whether or not an end operation has been performed. If an end operation has not been performed, the developer terminal 100 proceeds to S1201 and repeats the process, but if an end operation has been performed, the screen switching process ends.
<Tutorial processing>
FIG. 13 shows a flowchart of the tutorial processing executed by the developer terminal 100. This processing is a detailed example of the processing of S351 in FIG. 3. FIG. 14(a) shows an example of a list of applications (app list) displayed on the display 105 by the processing of S315. The app list displays two options 1403 and 1404 as app options. A tutorial button 1401 and an app creation button 1402 are displayed in the header menu area. Pressing the tutorial button 1401 starts the tutorial processing of FIG. 13. Note that the display destination of the various display processes in the tutorial processing of FIG. 13 is the display 105 of the developer terminal 100. Furthermore, the various display examples are examples of a portion of the display 105, not the entire display 105.
S1301では、開発者用端末100は、レッスン一覧を表示する。図14(b)に、レッスン一覧1410の表示例を示す。チュートリアルは、複数のレッスンを含む。各レッスンにはそれぞれ複数のチャプターが含まれ、さらに各チャプターには複数のステップ(手順)が含まれる。図14(b)の例では、レッスン一覧1410に、Lesson1~5の5つのレッスンが一覧表示されている。表示されたいずれかのレッスンの右わきの下向き矢印を表示すると、対応するレッスンに含まれる複数のチャプターが展開して表示される。図14(c)に、Lesson1に含まれる複数のチャプターを展開した表示した場合の表示例を示す。この状態ではLesson1が選択されており、領域1411に、Lesson1に含まれる4つのチャプターが表示されている。開発者が一度やったことのあるチャプターと未着手のチャプターとが認識可能なように、異なる色で表示される。いずれかのレッスンを選択した状態でスタートボタン1412が押下されると、選択されたLessonのチュートリアルが開始される。 In S1301, the developer terminal 100 displays a lesson list. Figure 14(b) shows an example of the lesson list 1410. A tutorial includes multiple lessons. Each lesson includes multiple chapters, and each chapter includes multiple steps (procedures). In the example of Figure 14(b), the lesson list 1410 displays five lessons, Lessons 1 to 5. Clicking the downward arrow to the right of any of the displayed lessons expands and displays the multiple chapters included in the corresponding lesson. Figure 14(c) shows an example of the display when the multiple chapters included in Lesson 1 are expanded and displayed. In this state, Lesson 1 is selected, and the four chapters included in Lesson 1 are displayed in area 1411. Chapters that the developer has already completed are displayed in different colors so that they can be easily distinguished from chapters that the developer has not yet started. When a lesson is selected and the start button 1412 is pressed, the tutorial for the selected lesson begins.
S1302では、開発者用端末100は、レッスン一覧1410のうちいずれかのレッスンが選択され、スタートが指示された(スタートボタン1412が押下)されたか否かを判定する。レッスンを選択してスタートが指示されるとS1304に進み、そうでない場合にはS1303に進む。 In S1302, the developer terminal 100 determines whether a lesson from the lesson list 1410 has been selected and a start command has been issued (the start button 1412 has been pressed). If a lesson has been selected and a start command has been issued, the process proceeds to S1304; if not, the process proceeds to S1303.
S1303では、開発者用端末100は、レッスン一覧1410を非表示とする操作(チュートリアル処理を終了する操作)があったか否かを判定する。終了する操作がない場合にはS1302に進み、終了する操作があった場合には図13のチュートリアル処理を終了する。 In S1303, the developer terminal 100 determines whether an operation to hide the lesson list 1410 (an operation to end the tutorial process) has been performed. If no operation to end the tutorial process has been performed, the process proceeds to S1302; if an operation to end the tutorial process has been performed, the tutorial process in FIG. 13 is ended.
S1304では、開発者用端末100は、メモリ102に保持するチュートリアルの処理対象のレッスンを示すレッスンナンバーの変数Lを、選択されたレッスンに対応する番号に設定する。 In S1304, the developer terminal 100 sets the lesson number variable L, which indicates the lesson to be processed in the tutorial stored in memory 102, to the number corresponding to the selected lesson.
S1305では、開発者用端末100は、メモリ102に保持するチュートリアルの処理対象のチャプターを示すチャプターナンバーの変数Cを1に初期化する。なお、図14(c)の領域1411に示したようなチャプターの一覧から特定のチャプターを選択してそのチャプターからチュートリアルを開始できるようにしてもよい。その場合、S1305では、変数Cは選択されたチャプターに対応する番号に設定する。 In S1305, the developer terminal 100 initializes the chapter number variable C, which indicates the chapter to be processed in the tutorial and is stored in memory 102, to 1. Note that it is also possible to select a specific chapter from a list of chapters such as that shown in area 1411 of Figure 14(c) and start the tutorial from that chapter. In that case, in S1305, variable C is set to the number corresponding to the selected chapter.
S1306では、開発者用端末100は、メモリ102に保持するチュートリアルの処理対象のステップ(手順)を示すステップナンバーの変数Sを1に初期化する。 In S1306, the developer terminal 100 initializes the step number variable S, which indicates the step (procedure) to be processed in the tutorial stored in memory 102, to 1.
S1307では、開発者用端末100は、変数L,C,Sが示す、現在の処理対象のステップで表示すべきチュートリアルの内容が、コピーの文字列を含むものであるか否かを判定する。なお、レッスン毎のチュートリアル毎の各ステップで表示すべきチュートリアルの内容は、S302で開発環境300から受信し、メモリ102に記録しているクライアント用プログラム322(クライアント用情報)によって示される。すなわち、S1306の判定は、メモリ102に記録しているクライアント用プログラム322(クライアント用情報)を参照して行う。処理対象のステップが、コピーの文字列を含むステップである場合にはS1320に進み、そうでない場合にはS1308に進む。なお、入力対象項目に入力すべき情報である入力すべき文字列が所定文字数以上を要するステップ(手順)である場合にS1330へ進み、入力対象項目に入力すべき情報である入力すべき文字列が所定文字数未満で良いステップ(手順)である場合に1308に進むようにしても良い。 In S1307, the developer terminal 100 determines whether the tutorial content to be displayed in the currently processed step, indicated by variables L, C, and S, contains a copied string. The tutorial content to be displayed in each step for each tutorial in each lesson is indicated by the client program 322 (client information) received from the development environment 300 in S302 and recorded in memory 102. That is, the determination in S1306 is made by referencing the client program 322 (client information) recorded in memory 102. If the step to be processed contains a copied string, proceed to S1320; otherwise, proceed to S1308. If the string to be entered, which is the information to be entered in the input field, is a step (procedure) that requires more than a predetermined number of characters, proceed to S1330; if the string to be entered, which is the information to be entered in the input field, is a step (procedure) that requires less than the predetermined number of characters, proceed to S1308.
S1308では、開発者用端末100は、処理対象のステップのチュートリアルにおけるガイド表示を行う。図14(d)に、チュートリアルにおけるガイド表示の表示例を示す。図14(d)は、レッスン1のチャプター1のステップ1のガイド表示の例である。操作対象項目であるアプリ作成ボタン1402を強調するように、他の部分をグレーアウトし、チュートリアルの対象ステップにおける操作対象項目を示す(指す、識別させる)吹き出し1420(ガイド表示領域)を重畳表示する。吹き出し1420には、現在のチャプターを示すチャプターガイド1421、現在のステップにおけるガイドメッセージ1422、終了ボタン1423が表示される。図14(d)の例では、ガイドメッセージ1422として「[アプリ作成]ボタンをクリックします。」と表示されている。なお、操作対象項目はステップによって異なり、ボタンであったり、入力項目(テキストボックスなどの入力対象項目)であったりする。 In S1308, the developer terminal 100 displays a guide for the tutorial for the step being processed. Figure 14(d) shows an example of a guide display for a tutorial. Figure 14(d) is an example of a guide display for step 1 of chapter 1 of lesson 1. To highlight the Create App button 1402, which is the item to be operated, the other parts are grayed out and a speech bubble 1420 (guide display area) indicating (pointing to, identifying) the item to be operated in the target step of the tutorial is superimposed. The speech bubble 1420 displays a chapter guide 1421 indicating the current chapter, a guide message 1422 for the current step, and an end button 1423. In the example of Figure 14(d), the guide message 1422 reads, "Click the [Create App] button." Note that the item to be operated varies depending on the step and may be a button or an input item (an input item such as a text box).
S1310では、開発者用端末100は、操作対象項目が入力項目であり、その入力項目(入力対象項目)に入力操作があったか否かを判定する。なお、チュートリアルでの処理対象ステップにおける操作対象項目である入力項目を入力対象項目と称するものとする。操作対象項目がボタンなどの入力項目以外である場合や、操作対象項目が入力項目であっても入力操作が行われていない場合にはS1312に進む。操作対象項目が入力項目であり、その入力項目(入力対象項目)に入力操作(例えば、入力項目を選択した状態で操作部106に含まれるキーボードを操作する文字入力操作)があった場合にはS1311に進む。 In S1310, the developer terminal 100 determines whether the operation target item is an input item and whether an input operation has been performed on that input item (input target item). Note that an input item that is an operation target item in a processing step in a tutorial is referred to as an input target item. If the operation target item is something other than an input item such as a button, or if the operation target item is an input item but no input operation has been performed, the process proceeds to S1312. If the operation target item is an input item and an input operation has been performed on that input item (input target item) (for example, a character input operation by operating the keyboard included in the operation unit 106 with the input item selected), the process proceeds to S1311.
図15(a)に、操作対象項目が入力項目であった場合にチュートリアルにおけるガイド表示の表示例を示す。図15(a)は、レッスン1のチャプター1に含まれるステップのガイド表示の例である。入力対象項目1501を強調するように、他の部分をグレーアウトし、入力対象項目を指す吹き出し1520(ガイド表示領域)を重畳表示する。入力対象項目1501は、新規に作成するアプリのIDの設定(IDとなる文字列の入力)を開発者(ユーザー)から受け付けるためのテキストボックスである。吹き出し1520には、現在のステップにおけるガイドメッセージ1522、終了ボタン1523、次へボタン1524が表示される。図15(a)の例では、ガイドメッセージ1522として「[ID]を入力します。入力後、[次へ]ボタンをクリックします。」と表示されている。すなわち、入力対象項目1501に入力すべき内容のガイダンスを表示している。図15(a)では、コピーボタンは表示されない。 Figure 15(a) shows an example of a guide display in a tutorial when the item to be operated is an input item. Figure 15(a) is an example of a guide display for a step included in Chapter 1 of Lesson 1. To highlight the input item 1501, the other parts are grayed out and a speech bubble 1520 (guide display area) pointing to the input item is superimposed. The input item 1501 is a text box that accepts the developer (user)'s setting of the ID of the newly created app (input of a character string that will become the ID). The speech bubble 1520 displays a guide message 1522 for the current step, an end button 1523, and a next button 1524. In the example of Figure 15(a), the guide message 1522 reads, "Enter an [ID]. After entering the ID, click the [Next] button." In other words, guidance on what to enter in the input item 1501 is displayed. In Figure 15(a), the copy button is not displayed.
S1311では、開発者用端末100は、S1310で受け付けたユーザーからの入力操作に応じた文字列を入力対象項目に入力する。これによって例えば、図15(b)に示すように、入力対象項目1501に「app01」という文字列が表示される。図15(b)は、入力対象項目1501に文字列が入力されている以外は、図15(a)と同じ表示例である。 In S1311, the developer terminal 100 inputs a character string corresponding to the input operation from the user received in S1310 into the input target field. As a result, for example, as shown in FIG. 15(b), the character string "app01" is displayed in input target field 1501. FIG. 15(b) is the same display example as FIG. 15(a), except that a character string has been input into input target field 1501.
S1312では、開発者用端末100は、次へボタンの押下、あるいは、操作対象項目の操作があったか否かを判定する。次へボタンの押下、あるいは、操作対象項目の操作があった場合はS1340へ進み、そうでない場合にはS1313に進む。例えば、図14(d)の状態であればアプリ作成ボタン140が押下された場合にS1340に進む。また例えば、図15(a)または図15(b)の状態であれば、次へボタン1524が押下された場合にS1340へ進む。 In S1312, the developer terminal 100 determines whether the Next button has been pressed or an operation on an item to be operated has occurred. If the Next button has been pressed or an operation on an item to be operated has occurred, the process proceeds to S1340; if not, the process proceeds to S1313. For example, in the state of FIG. 14(d), if the Create App button 140 has been pressed, the process proceeds to S1340. Also, for example, in the state of FIG. 15(a) or 15(b), if the Next button 1524 has been pressed, the process proceeds to S1340.
S1313では、開発者用端末100は、スキップボタン(例えば図16のスキップボタン1610)が押下されたか否かを判定する。スキップボタンは、表示アイテム(操作アイコン)であり、スキップアイテムとも称するものとする。スキップボタンが押下された場合にはS1314へ進み、そうでない場合にはS1316へ進む。スキップボタンは、操作対象項目の表示位置にかかわらない位置(すなわち、ガイドを表示する吹き出しの位置にかかわらない位置)であって、ステップが先へ進んでも画面上での位置が変わらない固定位置(面上の所定位置、同一の位置)に表示するものとする。このようにすることで、一度スキップボタンにマウスオーバーした後は、マウスの位置を固定したまま、チュートリアルに含まれる複数のステップにおける操作対象項目への操作を連続でスキップしていくことができる。従って、チュートリアルをじっくりやるのではなく、素早く簡単に確認を済ませたい場合などに、効率的にチュートリアルの複数のステップの内容を確認することができる。 In S1313, the developer terminal 100 determines whether a skip button (e.g., skip button 1610 in FIG. 16) has been pressed. The skip button is a display item (operation icon) and is also referred to as a skip item. If the skip button has been pressed, the process proceeds to S1314; if not, the process proceeds to S1316. The skip button is displayed in a position that is unrelated to the display position of the item to be operated (i.e., a position that is unrelated to the position of the speech bubble displaying the guide), and in a fixed position (a predetermined position on the screen, the same position) that does not change on the screen even as the steps proceed. By doing this, after hovering the mouse over the skip button once, it is possible to continuously skip operations on items to be operated in multiple steps included in the tutorial while keeping the mouse position fixed. This allows you to efficiently check the contents of multiple steps of the tutorial, for example, if you want to quickly and easily check the contents rather than going through the tutorial in detail.
S1314では、開発者用端末100は、入力対象項目に、予め定められた所定の値(諸所定の情報)を入力する。所定の値は、メモリ102に記録しているクライアント用プログラム322(クライアント用情報)に、ステップ毎に記録されている値(情報)であり、エラーなくチュートリアルの次以降のステップへ進むことが可能な値(情報)であるものとする。例えば、図15(a)の状態でスキップボタンが押下された場合は、入力対象項目に、新規に作成するアプリのIDとして適正な値(例えば「app_tutorial」という文字列)を自動的に入力する。すなわち、S1310、S1311で入力対象項目にユーザー操作に応じた入力がされていない場合でも、スキップボタン(スキップアイテム)が操作されると自動的に適正な情報(値)が入力される。なお、操作対象項目が入力項目でない場合には、S1314では操作対象項目を自動的に操作(ボタンなら押下)し、S1315を経ずにS1340に進むものとする。 In S1314, the developer terminal 100 inputs predetermined values (various predetermined information) into the input target field. The predetermined values are values (information) recorded for each step in the client program 322 (client information) stored in memory 102, and are values (information) that allow the user to proceed to the next or subsequent step in the tutorial without error. For example, if the skip button is pressed in the state shown in FIG. 15(a), an appropriate value (e.g., the string "app_tutorial") is automatically entered into the input target field as the ID of the newly created app (e.g., the string "app_tutorial"). In other words, even if no user input is made into the input target field in S1310 or S1311, appropriate information (values) are automatically entered when the skip button (skip item) is operated. Note that if the operation target field is not an input field, the operation target field is automatically operated (pressed if it is a button) in S1314, and the process proceeds to S1340 without passing through S1315.
S1315では、開発者用端末100は、入力対象項目に自動的に入力された所定の値を表示した状態で、所定時間(例えば2秒)経過したか否かを判定する。所定時間が経過した場合はS1340に進み、そうでない場はS1315で所定時間の経過を待つ。このように、入力対象項目に自動的に入力した適正な値を所定時間表示する。従って、自分自身で入力対象項目にどのような値を入力してよいかわからずにスキップボタンを押下した開発者ユーザーであっても、どのような値を入力するのが適切だったのかを確認することができる。このように、発者ユーザーに、本システムの使い方、操作方法をより好適に学ばせることができる。 In S1315, the developer terminal 100 determines whether a predetermined time (e.g., 2 seconds) has elapsed while displaying the predetermined value automatically entered into the input field. If the predetermined time has elapsed, the process proceeds to S1340; otherwise, the process waits for the predetermined time to elapse in S1315. In this way, the appropriate value automatically entered into the input field is displayed for the predetermined time. Therefore, even if a developer user presses the skip button because they are unsure of what value to enter into the input field, they can confirm what value they should have entered. In this way, developer users can more effectively learn how to use and operate the system.
S1316では、開発者用端末100は、チュートリアルの終了を指示する操作(例えば終了ボタン1423の押下)があったか否かを判定する。終了を指示する操作があった場合は図13の処理を終了し、そうでない場合にはS1310に進み処理を繰り返す。 In S1316, the developer terminal 100 determines whether an operation to end the tutorial (e.g., pressing the End button 1423) has been performed. If an operation to end the tutorial has been performed, the process of FIG. 13 ends; if not, the process proceeds to S1310 and is repeated.
S1340では、開発者用端末100は、エラーが生じたか否かを判定する。エラーが生じた場合はS1941へ進み、そうでない場合にはS1342へ進む。 In S1340, the developer terminal 100 determines whether an error has occurred. If an error has occurred, proceed to S1941; if not, proceed to S1342.
S1321では、開発者用端末100は、エラー発生箇所のステップに戻して警告表示を行う。例えば、図15(a)の状態で入力対象項目1501を空欄にしたまま次へボタン1524が押下され、さらにチュートリアルの先のステップで、操作対象項目であるアプリの作成確定ボタンが押下された場合、新規作成するアプリのIDが無い状態となってしまうため、エラーと判定される。この場合、図15(a)の表示を行うステップまで処理を戻し(変数Sを戻り先のステップ番号に設定し)、エラーの要因となった入力対象項目1501を強調表示(例えば赤枠で表示)し、S1307へ進んで図15(a)の表示を行うステップの処理を再度行う。 In S1321, the developer terminal 100 returns to the step where the error occurred and displays a warning. For example, if the Next button 1524 is pressed while the input target field 1501 is left blank in the state shown in Figure 15(a), and then the Confirm App Creation button, which is the target field for operation, is pressed in a subsequent step of the tutorial, the ID of the newly created app will no longer exist, and this is determined to be an error. In this case, the process returns to the step where Figure 15(a) is displayed (the variable S is set to the step number to return to), the input target field 1501 that caused the error is highlighted (for example, displayed in a red frame), and the process proceeds to S1307 to repeat the process of the step where Figure 15(a) is displayed.
S1322では、開発者用端末100は、変数SがSmax(処理対象チャプターの最後のステップの番号)であるか否かを判定する。変数SがSmaxである場合はS1324に進み、そうでない場合にはS1323に進む。 In S1322, the developer terminal 100 determines whether the variable S is Smax (the number of the last step in the chapter being processed). If the variable S is Smax, the process proceeds to S1324; if not, the process proceeds to S1323.
S1323では、開発者用端末100は、変数Sの値を1つインクリメントする。すなわち、次のステップの番号に設定する。そして、S1307に進み、チュートリアルにおける次のステップに関する処理を行う。例えば、S1308で、図14(d)のレッスン1のチャプター1のステップ1のガイド表示をした状態で、操作対象項目であるアプリ作成ボタン1402が押下された場合、S1302でYesと判定され、S1320No,S1322Noと進んで、S1323で同じチャプター1の次のステップに設定したうえで、S1307No、S1308と進む。S1308では、図14(e)に示すような、チャプター1のステップ2のガイド表示が行われる。 In S1323, the developer terminal 100 increments the value of variable S by one. That is, it sets it to the number of the next step. Then, it proceeds to S1307 and performs processing related to the next step in the tutorial. For example, if in S1308 the Create App button 1402, which is the item to be operated, is pressed while the guide display for Step 1 of Chapter 1 of Lesson 1 in Figure 14(d) is displayed, S1302 will be determined as Yes, and it will proceed to S1320 No and S1322 No, and it will be set to the next step in the same Chapter 1 in S1323, and then it will proceed to S1307 No and S1308. In S1308, the guide display for Step 2 of Chapter 1 will be displayed, as shown in Figure 14(e).
S1324では、変数CがCmax(処理対象レッスンの最後のチャプターの番号)であるか否かを判定する。変数CがCmaxでない場合はS1325に進む。変数CがCmaxである場合は、そのレッスンのチュートリアルは完了であり、図13の処理を終了する。図15(c)に、レッスン1の最後のチャプターの最後のステップのチュートリアルのガイド表示の例を示す。この状態で操作対象項目であるデプロイボタンが押下されると、S1324でYesと判定され、図13の処理を終了する。 In S1324, it is determined whether variable C is Cmax (the number of the last chapter of the lesson being processed). If variable C is not Cmax, the process proceeds to S1325. If variable C is Cmax, the tutorial for that lesson is complete, and the process in Figure 13 ends. Figure 15(c) shows an example of a guide display for the tutorial for the last step of the last chapter of Lesson 1. If the Deploy button, which is the item to be operated, is pressed in this state, S1324 returns Yes, and the process in Figure 13 ends.
なお、チュートリアルにおける操作に基づいて、実際にアプリを開発する制御が行われる。すなわち、図15(c)でデプロイボタンが押下されるのは、前述した図4のS425でデプロイボタンが押下された後に表示される確認画面に含まれるデプロイボタンが押下されるのと同義である。従って、図15(c)でデプロイボタンが押下されると、S426の処理を行い、選択実行環境にデプロイするように指示するデプロイ要求を開発環境300に送信する。これに応じて開発環境300は実際に選択実行環境にデプロイを行い、アプリを構築する。チュートリアルに従って新規に作成したアプリの定義情報も開発環境300に保存され、レッスン1を完了した後にアプリ一覧画面を表示させると、図15(d)に示す通り、チュートリアルで作成したアプリの選択肢1530が追加されて表示される。 The actual development of the app is controlled based on the operations in the tutorial. In other words, pressing the Deploy button in Figure 15(c) is synonymous with pressing the Deploy button included in the confirmation screen that is displayed after pressing the Deploy button in S425 of Figure 4 described above. Therefore, when the Deploy button is pressed in Figure 15(c), processing of S426 is performed, and a deploy request instructing deployment to the selected execution environment is sent to the development environment 300. In response, the development environment 300 actually deploys to the selected execution environment and builds the app. The definition information for a new app created in accordance with the tutorial is also saved in the development environment 300, and when the app list screen is displayed after completing Lesson 1, an option 1530 for the app created in the tutorial is added and displayed, as shown in Figure 15(d).
S1325では、開発者用端末100は、変数Cの値を1つインクリメントする。すなわち、次のチャプターの番号に設定する。そして、S1328に進み、変数Sを1に設定する。すんわち、次のチャプターの最初のステップの番号に設定する。そして、S1307へ進み、チュートリアルにおける次のチャプターの最初のステップに関する処理を行う。 In S1325, the developer terminal 100 increments the value of variable C by 1. That is, it sets it to the number of the next chapter. Then, it proceeds to S1328, where it sets variable S to 1. That is, it sets it to the number of the first step of the next chapter. Then, it proceeds to S1307, where it performs processing related to the first step of the next chapter in the tutorial.
一方、1330では、開発者用端末100は、処理対象のステップのチュートリアルにおける、コピーボタン付きのガイド表示を行う。図16(a)に、チュートリアルにおける、コピーボタン付きのガイド表示の表示例を示す。入力対象項目1601を強調するように、他の部分がグレーアウトされ、入力対象項目1601を識別させる(指す、指し示す)吹き出し1620(ガイド表示領域)が重畳表示される。吹き出し1620には、現在のチャプターを示すチャプターガイド1621、現在のステップにおけるガイドメッセージ1622、終了ボタン1623、次へボタン1624が表示される。加えて、ボックス1626にコピー対象文字列が表示されるとともに、コピー対象文字列のコピーを指示する操作アイコン(表示アイテム)であるコピーボタン1624(コピーアイテム)が表示される。ボックス1626に表示されるコピー対象文字列は、スキップボタン1610が押下された場合に入力対象項目1601に自動的に入力される所定の値と同じものである。すなわち、メモリ102に記録しているクライアント用プログラム322(クライアント用情報)に、ステップ毎に記録されている値(情報)であり、エラーなくチュートリアルの次以降のステップへ進むことが可能な適正な値(情報)である。 Meanwhile, at 1330, the developer terminal 100 displays a guide with a copy button for the tutorial of the step being processed. Figure 16(a) shows an example of a guide with a copy button for a tutorial. To highlight the input target item 1601, the other parts are grayed out, and a speech bubble 1620 (guide display area) identifying (pointing at) the input target item 1601 is superimposed. The speech bubble 1620 displays a chapter guide 1621 indicating the current chapter, a guide message 1622 for the current step, an end button 1623, and a next button 1624. In addition, the string to be copied is displayed in box 1626, along with a copy button 1624 (copy item), which is an operation icon (display item) that instructs the user to copy the string to be copied. The string to be copied displayed in box 1626 is the same as the predetermined value automatically entered into the input target item 1601 when the skip button 1610 is pressed. In other words, these are values (information) recorded for each step in the client program 322 (client information) stored in memory 102, and are appropriate values (information) that allow you to proceed to the next or subsequent step in the tutorial without error.
S1331では、開発者用端末100は、コピーボタン1624が押下されたか否かを判定する。コピーボタン1624が押下された場合はS1332へ進み、そうでない場合にはS1333へ進む。 In S1331, the developer terminal 100 determines whether the copy button 1624 has been pressed. If the copy button 1624 has been pressed, the process proceeds to S1332; if not, the process proceeds to S1333.
S1332では、開発者用端末100は、コピー対象文字列(ボックス1626に表示された文字列)をクリップボードにコピーする。 In S1332, the developer terminal 100 copies the string to be copied (the string displayed in box 1626) to the clipboard.
S1333では、開発者用端末100は、入力対象項目1601に対するペースト操作があったか否かを判定する。入力対象項目1601に対するペースト操作があった場合にはS1334へ進み、そうでない場合にはS1340へ進む。 In S1333, the developer terminal 100 determines whether a paste operation has been performed on the input target item 1601. If a paste operation has been performed on the input target item 1601, the process proceeds to S1334; if not, the process proceeds to S1340.
S1334では、開発者用端末100は、入力対象項目1601に、クリップボードにコピーされてる文字列を入力(ペースト)する。これによって、コピーボタン1624を押下した直後であれば、入力対象項目1601に、コピー対象文字列(ボックス1626に表示された文字列)が入力される。 In S1334, the developer terminal 100 inputs (pastes) the character string copied to the clipboard into the input target item 1601. As a result, if the copy button 1624 has just been pressed, the character string to be copied (the character string displayed in box 1626) is input into the input target item 1601.
S1340~S1346の処理は、S1310~S1316の処理とそれぞれ同様であるため説明を省略する。なお、S1341で、コピー対象文字列とは異なる、入力対象項目に対する適正でない値(例えば誤ったURL)を入力することも可能である。あえて適正でない値の入力も受け付けることで、適正でない入力を行うと後段の処理でエラーが発生するという学びをユーザーに提供することができる。 The processing of S1340 to S1346 is similar to the processing of S1310 to S1316, respectively, and therefore will not be explained here. It is also possible to enter an inappropriate value for the input item (for example, an incorrect URL) that is different from the string to be copied in S1341. By intentionally accepting input of an inappropriate value, the user can learn that an error will occur in subsequent processing if an inappropriate input is made.
図16(b)に、図16(a)の状態から、コピーボタン1624を押下してから入力対象項目1601に対してペーストする操作を行ったことにより、入力対象項目1601にコピー対象文字列(ボックス1626に表示された文字列)が入力された場合の表示例を示す。このようにすることで、チュートリアルにおいて入力すべき文字列を簡単に入力することができる。長い文字列であっても、エラーの起きない適切な文字列(コピーボタン1624の押下でコピーされる文字列)を、簡単に入力することができる。 Figure 16(b) shows an example of the display when, from the state shown in Figure 16(a), the copy button 1624 is pressed and then pasted into the input target item 1601, resulting in the string to be copied (the string displayed in box 1626) being entered into the input target item 1601. This makes it easy to enter the string to be entered in the tutorial. Even if the string is long, it is easy to enter an appropriate string (the string copied by pressing the copy button 1624) that will not cause errors.
図16(a)、図16(b)は、図9(d)で説明したREST関数の設定画面のチュートリアルである。そして、本実施形態は、入力対象項目へ入力された内容に基づいて実際にアプリケーション開発ソフトウェアの機能を実行するように制御する。すなわち、入力対象項目1601は図9(d)の設定欄944であり、この関数が行うリクエストを送信する先となるURLの設定欄である。この入力対象項目1601に、リクエストを送信する先として適切なURLを示す文字列を入力すると、チュートリアルを通して実際に正しく機能するREST関数を作成することができる。入力対象項目1601に、リクエストを送信する先として適切でないURL(例えば、存在しないURLなど)を示す文字列を入力すると、チュートリアルで生成されるREST関数は正しく機能しない関数となり、エラーを生じさせる要因となる。URLの文字列入力は、コピーをせずに手入力するとタイプミスなどが起こりやすく、適切でない文字列となってしまう可能性がある。これに対し、本実施形態のように、リクエストを送信する先として適切な文字列であるコピー対象文字列を簡単にコピーできるコピーボタン1624をチュートリアル中に表示することで、簡単で、かつ、ミスのない確実な入力を行うことができる。 Figures 16(a) and 16(b) are tutorials for the REST function settings screen described in Figure 9(d). This embodiment controls the actual execution of application development software functions based on the content entered in the input fields. That is, input field 1601 is the setting field 944 in Figure 9(d) and is the setting field for the URL to which this function sends requests. By entering a string indicating an appropriate URL to which requests will be sent in input field 1601, users can create a REST function that actually functions correctly through the tutorial. If a string indicating an inappropriate URL to which requests will be sent (e.g., a non-existent URL) is entered in input field 1601, the REST function generated in the tutorial will not function correctly and may result in an error. Entering the URL string manually without copying it is prone to typos, which can result in an inappropriate string. In contrast, as in this embodiment, by displaying a copy button 1624 during the tutorial, which allows users to easily copy the string to be copied, which is an appropriate string to which a request is to be sent, users can enter text easily and reliably without making any mistakes.
またコピー対象文字列を簡単にコピーできるコピーボタンは、前述したアクションボードに関するチュートリアルの際にも非常に効果的である。アクションボードにはJavaScript(プログラミング言語)でアクションを表す文字列を記入することができる。このことをチュートリアルでガイドして実際に開発者ユーザーに操作してもらうには、入力対象項目をアクションボードとし、開発者ユーザーに実際にアクションボードにJavaScriptでアクションを表す文字列を入力させることとなる。JavaScriptでのアクションを表す文字列は長く、入力が手間である上に、タイプミスなども発生しやすい。また、開発者ユーザーにとって、そもそもどのようなアクションを書けば良いのかというのをすぐに思いつくことは簡単ではなく、どんなアクションを書くかというのから検討するのでは、チュートリアルとしては手間がかかりすぎる。そこで、予め用意された適当なアクションを表すJavaScriptでの文字列をコピー対象文字列としてコピーボタンでコピーしてアクションボードに貼り付けることができれば、手間やミスを大きく削減しつつも、アクションボードがどういうものであるかというのを開発者ユーザーに理解させるというチュートリアルの効果も奏することができる。スキップボタンを押下することでコピー対象文字列と同じ文字列をアクションボードに自動入力して表示することでも、同様の効果を得ることができる。 The copy button, which allows for easy copying of target strings, is also extremely effective in tutorials on the aforementioned action board. The action board allows for the entry of strings representing actions in JavaScript (a programming language). To guide developers through this in a tutorial and have them actually operate the action board, the input field can be set as the action board, and the developer can actually enter the string representing the action in JavaScript into the action board. The string representing an action in JavaScript is long, tedious to enter, and prone to typos. Furthermore, it is not easy for developer users to immediately come up with the right action, and starting from the beginning, deciding what action to write would be too time-consuming for a tutorial. Therefore, if the copy button could be used to copy a pre-prepared JavaScript string representing an appropriate action and paste it into the action board, it would significantly reduce the effort and errors while still providing the effect of a tutorial that helps developer users understand what the action board is. A similar effect can be achieved by automatically entering and displaying the same string as the target string in the action board by pressing the skip button.
なお、本実施形態では、チュートリアルにおいてスキップボタンとコピーボタンの双方を表示する例を説明したが、いずれか一方だけを表示するようにしてもよい。すなわち、スキップボタンの押下による入力対象項目への所定の値の自動入力処理と、コピーボタンによる入力対象項目へ入力する値として適正なコピー対象文字列をコピーする処理のいずれか一方を実施するものとしてもよい。 In this embodiment, an example was described in which both a skip button and a copy button were displayed in the tutorial, but it is also possible to display only one of them. In other words, it is possible to perform either a process of automatically inputting a specified value into an input target field by pressing the skip button, or a process of copying an appropriate copy target string as a value to be input into an input target field by pressing the copy button.
また、コピーボタンを表示せずとも、入力対象項目へ入力する値(情報)として適正なコピー対象文字列を、チュートリアルのガイド領域に、選択してコピー可能な形態で表示するだけでもよい。ガイド領域に表示されたコピー対象文字列を選択してコピーを指示する操作がされたことに応じてコピー対象文字列をコピーし、入力対象項目に対してペーストの操作がされたことに応じて、コピーされていたコピー対象文字列を入力対象項目に入力するように制御するとしても、チュートリアルにおける操作性向上の効果を奏することができる。 Also, without displaying a copy button, it is possible to simply display in the tutorial guide area a string to be copied that is appropriate as a value (information) to be entered into an input field in a form that can be selected and copied. The string to be copied is copied in response to an operation to select the string to be copied displayed in the guide area and instruct copying, and the copied string to be copied is entered into the input field in response to an operation to paste into the input field, thereby achieving the effect of improving operability in the tutorial.
このように、本実施形態では、チュートリアルにおける操作性をより向上させることができる。 In this way, this embodiment can further improve operability during tutorials.
なお、上述の各フローチャートで説明した各種制御は1つのハードウェアが行ってもよいし、複数のハードウェア(例えば、複数のプロセッサや回路)が処理を分担することで、装置全体の制御を行ってもよい。
また、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。さらに、上述した各実施形態は本発明の一実施形態を示すものにすぎず、各実施形態を適宜組み合わせることも可能であ
The various controls described in the above flowcharts may be performed by a single piece of hardware, or the entire device may be controlled by multiple pieces of hardware (e.g., multiple processors or circuits) sharing the processing.
Furthermore, although the present invention has been described in detail based on its preferred embodiments, the present invention is not limited to these specific embodiments, and various forms within the scope of the gist of the present invention are also included in the present invention. Furthermore, each of the above-described embodiments merely shows one embodiment of the present invention, and each embodiment can be combined as appropriate.
(他の実施形態)
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
(Other embodiments)
The present invention can also be realized by executing the following process. That is, software (programs) that realize the functions of the above-described embodiments are supplied to a system or device via a network or various storage media, and the computer (or CPU, MPU, etc.) of the system or device reads and executes the program code. In this case, the program and the storage media storing the program constitute the present invention.
100:開発者用端末、200:アプリユーザー用端末、201:アプリユーザー用端末201、300:開発環境、400:実行環境 100: Developer device, 200: App user device, 201: App user device 201, 300: Development environment, 400: Execution environment
Claims (15)
前記コピーアイテムが操作されたことに応じて前記コピー対象をコピーし、
前記入力対象項目に対してペーストの操作がされたことに応じて、前記コピー対象を前記入力対象項目に入力するように制御する制御手段と、
を有することを特徴とする情報処理システム。 a display control means for controlling the display of input items into which the user should input information in a predetermined procedure among a plurality of procedures included in the tutorial, and a copy item for receiving an instruction to copy a copy item, which is information to be input into the input item;
copying the copy target in response to the operation of the copy item;
a control means for controlling the input of the copy target into the input target item in response to a paste operation being performed on the input target item;
An information processing system comprising:
を特徴とする請求項1に記載の情報処理システム。 The information processing system according to claim 1, wherein the display control means controls the display of the copy item in the predetermined procedure of the tutorial, and controls the display of guidance on what should be entered in the input target field without displaying the copy item in a second procedure of the tutorial that is not the predetermined procedure.
を特徴とする請求項2に記載の情報処理システム。 3. The information processing system according to claim 2, wherein the predetermined procedure is a procedure in the tutorial that satisfies a condition based on the number of characters of a string to be input as information to be input into an input target item.
を特徴とする請求項1に記載の情報処理システム。 2. The information processing system according to claim 1, wherein the control means is also capable of controlling the input of information different from the information to be copied into the input target item in response to a user operation.
を特徴とする請求項1に記載の情報処理システム。 2. The information processing system according to claim 1, wherein the control means controls the execution of actual functions of the software that is the subject of the tutorial based on the information input for the input target items.
前記コピー対象を選択してコピーを指示する操作がされたことに応じて前記コピー対象をコピーし、
前記入力対象項目に対してペーストの操作がされたことに応じて、前記コピー対象を前記入力対象項目に入力するように制御する制御手段と、
を有することを特徴とする情報処理システム。 a display control means for controlling the display of input target items into which the user should input information in a predetermined procedure among a plurality of procedures included in the tutorial, and for controlling the display of copy targets, which are information to be input into the input target items, in the guide area;
copying the copy object in response to an operation of selecting the copy object and instructing copying;
a control means for controlling the input of the copy target into the input target item in response to a paste operation being performed on the input target item;
An information processing system comprising:
前記制御手段は、更に、前記入力対象項目に対してユーザーからの入力操作があった場合には、前記ユーザーから入力された内容を前記入力対象項目に入力して前記チュートリアルのうち次のステップへ進むように制御し、
前記スキップアイテムが操作された場合は、前記入力対象項目に対するユーザーからの入力操作がなくとも、所定の内容を前記入力対象項目に入力して前記チュートリアルのうち次のステップへ進むように制御すること
を特徴とする請求項1に記載の情報処理システム。 the display control means further controls to display input target items into which the user should input information in a predetermined procedure among a plurality of procedures included in the tutorial, to display skip items, and to display guidance on the content to be input into the input target items in a guide area ;
the control means further controls, when a user inputs an operation for inputting the input item, the control means inputs the content input by the user into the input item and proceeds to the next step in the tutorial;
The information processing system described in claim 1, characterized in that when the skip item is operated, the system controls the input of specified content into the input target item and proceeds to the next step in the tutorial, even if there is no input operation from the user for the input target item .
を特徴とする請求項7に記載の情報処理システム。 The information processing system according to claim 7, wherein the control means, when the skip item is operated, controls the system to proceed to the next step after displaying a state in which the predetermined content has been input into the input target item.
を特徴とする請求項7に記載の情報処理システム。 The information processing system according to claim 7, wherein the control means controls the system to proceed to the next step after displaying the state in which the predetermined content has been input into the input target item for a predetermined period of time when the skip item is operated.
を特徴とする請求項7に記載の情報処理システム。 8. The information processing system according to claim 7, wherein the display control means controls the display so that the skip items are displayed at the same position in a plurality of steps included in the tutorial.
を特徴とする請求項7に記載の情報処理システム。 8. The information processing system according to claim 7, wherein the display control means controls the display of the skip item in a position that is independent of the position of the input target item.
を特徴とする請求項7に記載の情報処理システム。 The information processing system according to claim 7 , wherein the display control means controls the display of the skip item in a position independent of the position of the guide area.
前記コピーアイテムが操作されたことに応じて前記コピー対象をコピーし、
前記入力対象項目に対してペーストの操作がされたことに応じて、前記コピー対象を前記入力対象項目に入力するように制御する制御ステップと、
を有することを特徴とする情報処理システムの制御方法。 a display control step of controlling to display input target items into which the user should input information in a predetermined procedure among a plurality of procedures included in the tutorial, and a copy item for receiving an instruction to copy a copy target, which is information to be input into the input target item;
copying the copy target in response to the operation of the copy item;
a control step of controlling the copy target to be input into the input target item in response to a paste operation being performed on the input target item;
1. A method for controlling an information processing system, comprising:
前記コピー対象を選択してコピーを指示する操作がされたことに応じて前記コピー対象をコピーし、
前記入力対象項目に対してペーストの操作がされたことに応じて、前記コピー対象を前記入力対象項目に入力するように制御する制御ステップと、
を有することを特徴とする情報処理システムの制御方法。 a display control step of displaying input target items into which the user should input information in a predetermined procedure among a plurality of procedures included in the tutorial, and controlling the display of copy targets, which are information to be input into the input target items, in the guide area;
copying the copy object in response to an operation of selecting the copy object and instructing copying;
a control step of controlling the copy target to be input into the input target item in response to a paste operation being performed on the input target item;
1. A method for controlling an information processing system, comprising:
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022211174A JP7807668B2 (en) | 2022-12-28 | 2022-12-28 | Information processing system, control method for information processing system, and program |
| JP2026004009A JP2026065094A (en) | 2022-12-28 | 2026-01-14 | Information processing system, method for controlling the information processing system, and program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022211174A JP7807668B2 (en) | 2022-12-28 | 2022-12-28 | Information processing system, control method for information processing system, and program |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2026004009A Division JP2026065094A (en) | 2022-12-28 | 2026-01-14 | Information processing system, method for controlling the information processing system, and program |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2024094552A JP2024094552A (en) | 2024-07-10 |
| JP2024094552A5 JP2024094552A5 (en) | 2025-06-12 |
| JP7807668B2 true JP7807668B2 (en) | 2026-01-28 |
Family
ID=91809576
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2022211174A Active JP7807668B2 (en) | 2022-12-28 | 2022-12-28 | Information processing system, control method for information processing system, and program |
| JP2026004009A Pending JP2026065094A (en) | 2022-12-28 | 2026-01-14 | Information processing system, method for controlling the information processing system, and program |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2026004009A Pending JP2026065094A (en) | 2022-12-28 | 2026-01-14 | Information processing system, method for controlling the information processing system, and program |
Country Status (1)
| Country | Link |
|---|---|
| JP (2) | JP7807668B2 (en) |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20210182988A1 (en) | 2017-03-31 | 2021-06-17 | FSBO System, LLC | Systems and Methods for Interactive Web-Based Processing of Real Estate Transactions |
-
2022
- 2022-12-28 JP JP2022211174A patent/JP7807668B2/en active Active
-
2026
- 2026-01-14 JP JP2026004009A patent/JP2026065094A/en active Pending
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20210182988A1 (en) | 2017-03-31 | 2021-06-17 | FSBO System, LLC | Systems and Methods for Interactive Web-Based Processing of Real Estate Transactions |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2026065094A (en) | 2026-04-14 |
| JP2024094552A (en) | 2024-07-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8395787B2 (en) | Information processing apparatus having customized driver, method of controlling the same, and medium storing control program | |
| JP7807668B2 (en) | Information processing system, control method for information processing system, and program | |
| JP7799193B2 (en) | Information processing system, control method for information processing system, and program | |
| JP7807666B2 (en) | Information processing system, control method for information processing system, and program | |
| JP7807665B2 (en) | Information processing system, control method for information processing system, and program | |
| JP7799192B2 (en) | Information processing system, control method for information processing system, and program | |
| JP7807664B2 (en) | Information processing system, control method for information processing system, and program | |
| JP7801587B2 (en) | Information processing system, control method for information processing system, and program | |
| JP2024093620A (en) | Information processing system, control method for information processing system, and program | |
| JP7773061B2 (en) | Program, information processing device and processing method | |
| JP6646222B2 (en) | Information processing apparatus, information processing system, control method thereof, and program | |
| JP2019192134A (en) | Information processing device, processing method therefor and program | |
| JP2025179891A (en) | Information processing system, control method for information processing system, and program | |
| JP7506339B2 (en) | Information processing system, control method thereof, and program | |
| JP2025098619A (en) | Information processing system, control method thereof, and program | |
| JP2024075981A (en) | Information processing system, control method for information processing system, and program | |
| JP2024076011A (en) | Information processing system, control method for information processing system, and program | |
| JP2024076015A (en) | Information processing system, control method for information processing system, and program | |
| JP2024076013A (en) | Information processing system, control method for information processing system, and program | |
| JP2024076005A (en) | Information processing system, control method for information processing system, and program | |
| JP2024149184A (en) | Information processing system, information processing method, and program | |
| JP2019192135A (en) | Information processing device, processing method therefor and program | |
| JP2024149188A (en) | Information processing system, information processing method, and program | |
| JP2019192133A (en) | Information processing device, processing method therefor and program | |
| JP2025180307A (en) | Information processing system, control method for information processing system, and program |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20250604 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20250604 |
|
| RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20250826 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20250930 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20251201 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20251216 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20251229 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7807668 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |