Criton社は200件以上のホテルに向けてアプリを作成
Critonは、デジタルトランスフォーメーションを簡素化する、受賞歴のあるゲストエンゲージメントおよび統合プラットフォームで、ホテル経営者が完璧なデジタルゲストジャーニーを提供し、滞在中の消費を最大化できるようにしています。
Criton社はCodemagicを使って、200件以上のホテルにアプリを構築しています。さらに、同社のコードベースの完全性をテストするために、毎日ユニットテストを行い、毎晩テクニカルビルドを行っています。
Criton社のチームは15名から構成され、開発、QA、サポート、プロダクトマネジメント、カスタマーエクスペリエンスをカバーしています。8人のチームメンバー様がCodemagicを常用されております。4人の開発者様がCodemagicをテクニカルビルドやユニットテストに使用し、4人のチームメンバー様がCodemagicを、クライアントアプリを公開するトリガーに使用されております。「Codemagicのおかげで、当社チームメンバーは皆、プロダクションレベルのビルドをトリガーできます」と、Criton社の開発マネージャーであるAlan Hannah様が述べました。
Criton社の業務遂行に、継続的なインテグレーションとデリバリーが欠かせない
「CI/CDのサービスは、様々なベクトルから当社の業務遂行に欠かせません。当社の開発者にとって、CI/CDはワークフローの重要な一部となっています。Critonでは、ユニットテストやテクニカルビルドにCodemagicを使用しています。コードベースに導入されたコードが、リリース前に安定していることを確認できます」と、Alan Hannah様が述べました。
Alan様は、Criton社が以下を確実にするためにはCI/CDが不可欠だと考えておられます:
- ビルド環境に一貫性をもたせる
- 開発者が迅速にフィードバックを得られる
- 非同期公開プロセスを持つ
- 事業をうまく拡大できる
- 需要やプラットフォームの変化に対応できる柔軟性とスケーラビリティを備えている
3月に英国でコロナロックダウンが始まって以来、Criton社では製品の需要が大幅に増加しました。Criton社は、パンデミックのピーク時には、1日平均3つのアプリを公開していました。
「当社はクライアントのアプリを1時間以内にiOSとAndroidストアに公開できます。それぞれのアプリケーションを、コードが管理された環境で構築するのが不可欠です。Codemagicは、「私のマシンでは動作する」という問題を解消してくれました」-Alan Hannah様
「私たちはPython/Djangoで独自のバックオフィスプラットフォームを書きました。バックオフィスでは、クライアントごとにアプリをカスタマイズできます。そして、Codemagic APIを介して、ビルドと公開のプロセスをトリガーできます」と、Alan Hannah様は述べました。
CodemagicでのクライアントとYAMLの扱いについて
Criton社は、Codemagic APIを介してホワイトラベルのビルドをトリガーしています。
Codemagicのエンジニアリングチームは、Criton社が、数千行の定型的なコードで.yamlファイルを詰め込むのではなく、同社のホワイトラベルの顧客用のリリースパイプラインを単一のワークフローで管理するのをご支援いたしました。同社は、構成の一部を再利用したり、環境変数を定義したり、Codemagic APIでパーツを書き換えたりできます。Criton社はこれを使って、顧客用の複数のフレーバーを管理しています。
Criton社の開発チームが最も感銘を受けたのは、プロジェクトのセットアップが非常に簡単だったことです。「Codemagicのダッシュボードを使って、概念実証を確立しました。その後、codemagic.yamlの構成に移行し、ビルドプロセスをより細かくコントロールできるようになりました」と、Alan様は語ります。「当社はCodemagic社のチームと、当社の要求についてお話しました。その後Codemagic社のチームが、当社が必要とする複数の追加APIフィールドを有効にしてくれました」
「Critonでは、すべてのワークフローをcodemagic.yamlで構成しています。一度定義したスクリプトをcodemagic.yamlファイル内で再利用することで、効率化を図ることができました」と、Alan様は述べました
例えば、スクリプトを定義するワークフローで:
&build_appbundle
name: Build appbundle
script: |
cd $APP_DIR
flutter build appbundle --release --flavor=production -t lib/main.dart
上記を他の場所で*表記を使って呼び出せます。例えば:
Scripts:
cd $CM_BUILD_DIR
*build_appbundle
Criton社チームの開発者様やQAエンジニアの方々も、ご自分でアプリを構築しなくても端末上でテストできることをとても喜んでおられます。
CodemagicによりCriton社は時間を84%節約-700個のアプリバージョンを、45日ではなく7日で仕上げ
Codemagicを利用する前は、Criton社はアプリを作成してiOSやAndroidストアに公開するのに、クライアントごとに約90分かかっていました。Alan様によると、このプロセスには高度な技術的知識が必要でした。
「当社はCodemagic APIを使ってアプリの公開をトリガーするツールの開発と改良に、合計で6週間ほど費やしました。そして、アプリ公開をトリガーするまでの時間は、約15分以下に短縮されました。この15分というのは、公開前に構成を確認するための手作業にかかる時間です。
クライアントのアプリケーションをCodemagic VM上に構築するのにかかる実際の時間も、35~45分に短縮されました」と、Alan Hannah様にご説明いただきました。
「Critonは3月以降、700個以上のアプリのバージョンを公開しました。Codemagicを利用する前は、700個以上のアプリを公開するのに、熟練者でも45日かかっていたと思います。Codemagicを当社ツールキットの一部として採用したことで、当社は700個以上のアプリバージョンを7.5営業日で公開することができ、84%の時間短縮に成功しました」と、Alan様は述べました
Criton社は他のCI/CDツールも使っていました。「ユニットテストの検証と公開には、他のCI/CDツールを使用していました。テストやデプロイプロセスが統合されていないのは、私たちにとって大きな欠落点でした」と、Alan様は語りました。
他の成功例もご覧ください:
Discussion about this post