レビュー:Appery.ioはモバイルアプリビルダーとバックエンドサービスを組み合わせます

Appery.ioは、オンラインのビジュアルデザインとプログラミングツール、および統合されたバックエンドサービスを備えた、かなり有能なクラウドベースのモバイルWebおよびハイブリッドモバイル開発プラットフォームです。これは、アプリビルダーとMBaaS(サービスとしてのモバイルバックエンド)のクロスと考えることができます。

以下の図1に示すように、Appery.ioアプリビルダーはHTML5、jQuery Mobile、およびApache Cordovaコードを生成し、Appery.ioビルドサーバーはiOS、Android、Windows Phone、およびHTML5アプリを生成します。Appery.io MBaaSは、ホスティング、MongoDB NoSQLデータベース、プッシュ通知、JavaScriptサーバーコード、および安全なプロキシを提供します。 

Appery.ioは、会社がインターフェースを事前に構築しているかどうかに関係なく、基本的にすべてのRESTAPIと通信できます。構築済みのRESTインターフェースをサービスに結び付けるのは数分です。自分でRESTインターフェースを構築するには少し時間がかかり、もう少し知識が必要ですが、それは大きな仕事ではありません。

オンラインアプリビルダー

Appery.ioアプリビルダーには、アプリ設定、モデルとストレージ(図2)、作成時のページ、ダイアログ、テンプレート、テーマ、CSS、定義するサービス、JavaScript、およびカスタムコンポーネント用のタブがあります。定義します。ビルダー(図3)は、GoogleマップやVimeoなどの外部サービスを含む25を超えるコントロールのパレットを備えたWYSIWYGデザインのメタファーを使用し、各アイテムのプロパティシートを表示します。デザインビューからソースコードビューに切り替えて、生成されたHTML、CSS、JavaScript、およびデバイス固有のコード(Androidの場合はJava、iOSの場合はObjective-C、Windows Phoneの場合はC#でサポートされているXAML)を表示できます。

HTML5アプリは、デスクトップブラウザー(図4)、および電話とタブレットのブラウザーでテストできます。コルドバに依存しないものはすべて機能します。Cordovaコードをテストするには(たとえば、ネイティブデバイス機能を使用したり、プッシュメッセージを取得したりするために)、アプリをビルドしてデバイスにダウンロードし、そこで実行します。便宜上、Appery.ioはHTML5アプリとバイナリのQRコードを表示して、デバイスに直接ダウンロードできるようにします。さらに便利なように、Appery.ioネイティブテストアプリシェルをデバイスにインストールして、コードにポイントすることができます。

一般的に、アプリビルダーは習得と使用が簡単であることがわかりました。Appery.ioは、モバイル開発者が通常得られるものに驚かないように、IDEの設計をうまく行っています。

Appery.ioで生成されたソースコードをオンラインで確認することも、プロジェクトのダウンロード後にオフラインで表示することもできます。HTML5 / CSS / JavaScriptコードを読むのに問題はありませんでしたが、Underscore、jQuery、およびjQueryMobileについてはすでによく知っていました。Appery.ioは、ウィジェットを除いて、約17のJavaScriptライブラリを取り込みます。それは太っていますか?はい、そうです。しかし、最近のデバイスでは、それは問題ではありません。

Android、iOS、およびWindowsPhoneのデバイス固有のネイティブコードは興味深いものではありません。Appery.ioは、ネイティブシェルをCordovaに依存しており、組み込みのブラウザーコントロールですべてのカスタムアプリケーションの作業を行います。

Appery.ioに独自のクラウドベースのビルダーとビルドサービスがあるのは素晴らしいことです。これは、ブラウザーベースのIDEと組み合わせると、モバイル開発者がネイティブアプリを作成するために複数のコンピューターや複数のVMを用意する必要がなく、複数のネイティブSDKやIDEを維持する必要がないことを意味します。もちろん、Appery.ioで生成されたアプリをエクスポートして自分で維持する場合(たとえば、サブスクリプションを継続したくない場合)、ネイティブSDKとIDE、またはからのPhoneGapBuildサービスが必要になります。アドビ。

バックエンドサービス

前述したように、Appery.ioには、ホスティング、NoSQLデータベース(MongoDB)、プッシュ通知、JavaScriptサーバーコード、安全なRESTAPIを含むMBaaS機能があります。

Appery.ioを使用すると、独自のクラウド、Heroku、および(手動で)サードパーティのホスティングプロバイダーへのHTMLホスティングが可能になります。Appery.ioの独自のクラウドでは、DNS設定にアクセスでき、それらを変更する方法を知っている場合は、提供されたapp.appery.ioドメイン名または独自のドメイン名またはサブドメイン名のいずれかを使用できます。

Herokuでホストするには、heroku.comアカウントを持っていると仮定して、サインインし、Herokuでapperyioを承認してから、Appery.io側からHerokuアプリを作成する必要があります。Herokuに公開できるのはモバイルWebアプリのみであり、Cordovaアプリは公開できません。

ハイブリッドアプリは、Google Play、iOS App Store、およびWindowsストアに公開できます。Appery.ioは、クラウドでバイナリを構築できます。

Appery.ioデータベースは、MongoDB、Webインターフェイス(図2)、およびRESTAPIを使用します。テーブル(別名コレクション)と列を定義したら、Appery.ioアプリビルダーの他の部分からそれらを参照し、接続とマッピングをグラフィカルに作成して、CRUDコードを自動的に生成できます。各データベースには、ユーザー、ファイル、デバイスの3つの定義済みコレクションがあり、これらはすべておおよそ期待どおりの列を持っており、コレクションを自由に追加できます。

Appery.ioは、選択したデータベースのDevicesコレクションを使用して、プッシュ通知を受信するデバイスを制御します。 AndroidとiOSのプッシュ通知をサポートしており、特定のプッシュ通知はどちらか一方にのみ送信できます。クエリビルダーまたはクエリ文字列を使用して、特定のプッシュのデバイスをフィルタリングできます。可能なフィルターの中には、ジオロケーション(たとえば、特定の場所から2マイル以内にあるすべてのデバイス)があります。その他のフィルターには、データベースに保持して必要に応じて割り当てることができるチャネル、およびデバイスIDが含まれます。 Appery.ioはネイティブのGoogleおよびAppleサービスを介してプッシュ通知を行うため、これらのAPIに登録しておく必要があります。

Appery.ioは、Node.jsフレームワークを使用していませんが、V8エンジンを使用してJavaScriptサーバーコードを実行します。 REST APIを前提として、バックエンドJavaScriptコードはリクエストパケットとレスポンスパケットを使用してアプリと通信し、レスポンスをJSONとしてフォーマットします。たとえば、次のコードは、現在のサーバー時刻で「Hello」応答を定義します。

// get name from service, name is entered in the app

var name = request.get("name");

// get and format the time

var now = moment().format("dddd, MMMM D YYYY, h:mm:ss a");

// put together the greeting string

var greetingString = "Hello " + name + ". It is " + now;

// format as JSON and return the response

response.success(JSON.stringify({

   greeting: greetingString

}), "application/json");

Appery.ioは、データベースと特別なプロキシチャネルを使用してSecure RESTを実装し、秘密鍵、資格情報、およびその他の機密データがアプリユーザーによって開かれないようにします。基本的に、秘密データをキー名でデータベースに保存し、キー名を秘密データに置き換えるためのプロキシチャネルを作成し、アプリでキー名を操作して使用するプロキシチャネルを定義します。次に、アプリがキー名を呼び出し、プロキシでそれらがデータに置き換えられ、サービスが実際のデータを受信します。アプリのユーザーはキー名とプロキシチャネルIDを見つけることができますが、秘密のデータにアクセスすることはできません。

外部インターフェース

この記事の執筆時点で、Appery.ioにはStripe支払い用のプラグインがあります。SendGridメール; Twilioメッセージング; USAトゥデイニュース; Facebook、Foursquare、LinkedInのソーシャルネットワーク。ボックスストレージ; OAuthおよびAuth0ID管理。GitHub; Sirvダイナミックイメージング; モダンでフラットなUIテーマ。また、Salesforce.comのサポートも組み込まれています。

必要な外部サービスにまだプラグインがない場合でも、すべてが失われることはありません。それがRESTサービスの場合、Appery.ioを使用すると、それに接続し、サンプル応答パケットを取得し、ビジュアルデータバインディングを使用してサービスの出力をアプリにマッピングできます。

Appery.ioの背後にある会社であるExadelは、RESTXpressと呼ばれるコンパニオンサービスを販売しています。RESTXpressを使用すると、SQL / JDBCデータベースとSOAPベースのWebサービスをRESTインターフェースで簡単にラップできます。RESTXpressは、TomcatなどのJavaアプリケーションサーバーにインストールでき、個別にライセンス供与されます。

オフラインサポート

Appery.ioモデルとストレージを使用する場合、Webアプリの状態をローカルストレージに永続化することがデフォルトの動作です。データはローカルストレージに保存され、次回の再起動後に利用できるようになります。オプションで、独自のコード(JavaScript)を追加して、この機能を必要に応じてカスタマイズできます。HTML5 WebViewキー/値ペアストレージに保持できるよりも多くのローカルストレージが必要な場合は、org.apache.cordova.fileAPIを使用してデバイスファイルシステムにアクセスするか、WebSQLを使用してローカルSQLiteデータベースにアクセスできます。

Appery.ioモデルとストレージは、開発者がクライアント(ローカルストレージ)でアプリモデルを定義できるようにするため、アプリをオフラインで実行するのに役立ちます。カスタムコード(JavaScript)を使用してさらにカスタマイズできます。Exadelは、より簡単にするために、さらに多くのサポートを追加する予定です。同社によれば、モデルとストレージは最初の一歩に過ぎなかったという。

サーバーとのモバイルデータベースの同期は、クライアントとサーバーの両方をプログラムできるため、Appery.ioを使用して実行できますが、自動ではありません。通常、変更をキーと値のペアで保存するか、ローカルのSQLiteデータベースを維持し、Cordovaプラグインを介してアクセスし、接続時にダーティレコードをサーバーデータベースにプッシュします。

結論と比較

Appery.ioはMBaaSとモバイルアプリの開発スペースにまたがっているため、両方のカテゴリの製品と比較する必要があります。幅広い筆運びで、Appery.io(全体のスコア8.2)はAnyPresence(全体のスコア9.1)よりも魅力的ではないことがわかりました。AnyPresenceはさらに一歩進んでネイティブアプリとモバイルAPIを生成します。AnyPresenceには、重要なエンタープライズデータベースインターフェイスも組み込まれています。

また、Appery.ioは、Node.jsフレームワークの使用を通じてエンタープライズサポートが優れているFeedHenry(8.6)や、優れたデータベース統合とオフライン操作、モバイルデータの完全なサポートを備えたAlpha Anywhere(8.8)よりも機能が低いことがわかりました。同期、およびデータの競合の解決。

Appery.ioは、裸のMBaaS Parse(7.6)やアプリビルダー/ MBaaSAppcelerator(7.8)よりも気に入っており、Kinvey(8.3)とほぼ同等であることがわかりましたが、Kinveyは分析とエンタープライズデータベースのサポートの点でより多くの機能を提供します。

スコアカード 能力(25%) 統合(25%) クライアントサポート(20%) IDE(20%) (10%) 総合評点
Appery.io 8 8 8 9 8 8.2