Sencha Ext JS 7.7 is Here – Discover What’s New and Exciting – LEARN MORE

Ext JS ユーザー紹介: Paymo

May 13, 2018 106 Views
Show

Paymoは、2008年、フリーランスや小規模企業を主なターゲットとした、シンプルなタイムトラッキングアプリケーションとして誕生しました。それ以来、事業の多様化、アプリケーションへの機能の追加により、着実に成長を遂げています。

過去10年間の歩みを早送りで振り返ってみると、Paymoは今や、本格的なオンラインプロジェクトマネジメントソフトウェアへと変貌し、世界各地の70,000にのぼる小規模企業やフリーランスにサービスを提供しています。同ソフトウェアの主要な目的は、プロジェクトを最初から最後まで、単一の環境下で、シームレスに管理するために必要な機能であるタスクおよびタイム管理、タイムトラッキングとレポーティング、チームのスケジューリングとプロジェクトアカウンティングをすべて提供することです。

同アプリは、フリーランス向けには限定無料プランで、中小企業向けには2種類の有料プランで提供されます。学校や大学は1年間、無料利用でき、NPOには50%の割引プランが用意されています。

Paymo Dashboard built on Ext JS. Paymo helps your team seamlessly manage projects through their entire life cycle, from initiation to planning, working, making adjustments, and getting paid. 

Ext JSで構築したPaymo ダッシュボード。Paymoによって、プロジェクトチームは、プロジェクトの立ち上げから企画、実施、調整、支払までのライフサイクル全般にわたって、シームレスに管理することができます。

 

Ext JSを選択した理由

2012年、私たちは、オンラインアプリの利点をすべて維持しつつ、デスクトップ上と同様のWebエクスペリエンスを顧客に提供するために、既存のプロジェクトマネジメントパッケージ(古典的なPHP Web 1.0アプリ)を書き換える決定をしました。最初の調査段階を経て、私たちは、Sencha Ext JSの採用を決めました。モバイルデバイスでも使用できる強固なWebフレームワークを必要としていたのです。

クラスシステム

Ext JSの一番の長所はクラスシステムです。これは、フレームワークのクラスとコンポーネントの全階層を、クラスをベースとしたオブジェクト指向プログラミング(OOP)スタイルで階層化できるSencha独自のメカニズムで、Javascriptが本来持っているプロトタイプベースのパラダイムとは異なる点です。

クラスベースのOOPを採用しているJava、C#、C++といった言語の経験がある開発者であれば、このフレームワークを容易に習得できます。そして、システム内のクラスとコンポーネントを明確に可視化し、この階層でどこでも拡張、カスタマイズが可能となります。Ext JSは、「閉じた」モノリシックなシステムという第一印象を与えますが、実際にはそうではありません。

Docs

さらに、極めて重要な点として、フレームワークの異なるバージョンにも対応可能な、Senchaが提供するよく整理されたオンラインドキュメントが挙げられます。Docsは、フレームワークの背後にあるコンセプトを明確、詳細に記述しているので、時間とコストの節約につながります。

App開発ライフサイクル

Paymoチームは、Sencha Ext JSが、以下のようなアプリ開発のあらゆる側面を網羅できる点を評価しました。

  • データ
  • レイアウト
  • ルーティング
  • テーマ構成
  • ローカライゼーション
  • ビルド

パッケージは、MVC/MVVMアーキテクチャをサポートするスタイルもいくつか提供します。フレームワーク アーキテクチャがガイドラインを提供してくれるので、若手の開発者にとっては有用な特徴です。

Ext JSのもうひとつの強みは、アプリデータをロードし、保存できるデータレイヤーです。データレイヤーは「Model」、「Store」、「Proxy」、「Session」といった多数のクラスで構成されており、データ構造を容易に定義することができます。

Paymo内では、「Model」はユーザー、プロジェクト、タスクといったアプリのエンティティに相当します。他方、「Store」はモデルを格納したコレクションで、そこからソート、フィルターまたはページング処理が可能です。「Session」は、「Model」の重複がないこと、特定の「Model」を包含するすべての「Store」が同じ「Model」に関連づけられていることを保証します。この事実によって、アプリの一領域におけるタスク名の変更は、自動的に、アプリケーション全体に渡ってタスク名を更新することになります。
Task Management within Paymo built on Ext JS. Use tasks, task lists, due dates, milestones, and the Kanban module to organize tasks and activities.

Ext JSで構築したPaymo内のタスク マネジメント。タスク、タスクリスト、期限、マイルストーン、カンバンモジュールを使って、タスクと活動を整理します。

Advanced Task Management within Paymo, built on Ext JS. Switch to an advanced tasks view with filters or check the full task view to see all task details. 

Ext JSで構築したPaymo内のアドバンスト タスク マネジメント。フィルターでアドバンスト タスクビューに切り替えたり、フルタスクビューをチェックして、すべてのタスク詳細を確認できます。

コンポーネント ライブラリ

Ext JSに含まれるビルト済のUIコンポーネントと非UIコンポーネントのライブラリは膨大で、豊富な選択肢を提供します。SASS構文の助けを借りれば新しいテーマの設定はきわめて容易であり、変数、入れ子ルール、mixin、インライン・インポート等を使って、万事においてスピードアップを図ることができます。テーマの内部構造が一貫した体系化を助けます。

新しいコンポーネントの作成と再利用についても同様のことが言えます。とにかく簡単で、すべてのプラットフォームを横断して共有されるコードが、シームレスなエクスペリエンスを実現します。

私たちは早い段階から、グリッド、ウィンドウ、タブパネル、ボタン、メニュー等、Ext JSの強力なコンポーネント ライブラリを活用しました。グリッドコンポーネントとページング処理したDOMをレンダリングする機能(Buffered Renderer)を使って、アプリケーションのロード速度とユーザーエクスペリエンス全体を向上させることができました。

さらに、クロスブラウザ/クロスプラットフォームの互換性も強みです。これによって、開発チームは、ビジネスロジックに一層注力し、HTML/CSSスタイリングでの作業時間を短縮することができました。

Ext JSを使うビジネス上の価値

私たちは、Ext JS、Sencha TouchおよびSencha Cmdを使用して、Webテクノロジーだけで様々なプラットフォームを多数開発することができ、それと同時に、異なるプラットフォーム上でコンポーネントを再利用してきました。Sencha Cmdの使用により、ビルドシステムを当社の継続的デリバリーシステムに統合することができたのです。

私たちは、Ext JSを使用することで、当時市販されていた他のソリューションと比較して、開発時間を半分に短縮できたと評価しています。

新規導入を進める開発者の皆様へのアドバイス
  • ドキュメンテーションを注意深く読んだ上で着手すること
  • 必要な場合を除き、プライベートメソッドは使わないこと。これを守ることにより、Ext JSの新しいバージョンへのアップデートが容易になります
  • 不要なコンポーネントは削除し、意図する用途に合わせてコンポーネントを使用するよう努めること
  • DOMサイズとCSSパフォーマンスに細心の注意を払うこと
  • 可能なときにはSenchaコミュニティに貢献すること

 

Recommended Articles

Ext JS Data Gridをすばやくカスタマイズする方法(part 2/6)

全6回構成の「Ext JS Data Gridカスタマイズ」ブログシリーズの最初の記事では、GridやColumnのプロパティをカスタマイズしてデータグリッドを外観や機能を変更する方法を説明しました。この記事ではデータ表示用のメソッドグリッドを用いてデータグリッドをすばやくカスタマイズする方法を説明します。

Ext JS Data Gridをすばやくカスタマイズする方法(part 1/6)

Ext JS Data Gridは、高速で強力かつ柔軟に利用できます。Ext JSを使用すると、ユーザーは自分のアプリケーションに合わせてグリッドの外観をすばやくカスタマイズできます。全6回構成のブログシリーズでExt JS Data Gridをカスタマイズするさまざまな方法をカバーします。

Sencha Ext JS 7.1およびツールの提供開始のお知らせ

Ext JS、ExtAngular、ExtReact、ExtWebComponents、およびツールのバージョン7.1を提供開始いたしました。この記事ではバージョン7.1の改善点について紹介します。

Sencha 2019/2020 ロードマップアップデート

少し前にSenchaのロードマップをご案内しました。これについてお客様から素晴らしいフィードバックをいただいており、2019/2020ロードマップにそれらの提案を取り入れたいと思います。

今秋のアップデート – Senchaジェネラルマネージャのデスクから

前回Senchaコミュニティに情報発信してから、数週間が経ちました。私たちのプライオリティと製品ロードマップは、お客様の声によって形成されており、皆さんがすばらしいアプリケーションを構築できるような価値ある製品強化を提供していきたいと考えています。今回、いくつかの進行中の開発状況に関して紹介するとともに、コミュニティの皆さんにアップデートを提供したいと思います。

コンポーネントファーストのアプローチでアプリ開発をスピードアップ

開発者は、アプリケーションを構築し、迅速かつ効率的に市場に投入するために、再利用可能かつポータブルなコードに長い間依存してきました。コンポーネントベースの開発は、ReactやAngularなどの人気のあるフロントエンドフレームワークの多くで開発されたアプリケーションのホームを見つけてきた、JavaScriptの現代の進化を通じて人気を維持しています。

View More

coming soon

Something Awesome Is

COMING SOON!