「Codemagicは、当社のFlutterのビルド、品質、デリバリープロセスの中心となる技術です」- ClearPoint社のシニアソフトウェアエンジニア、Tim Ruddell様
ClearPoint
ClearPoint社は、デザインとエンジニアリングに適切なプラットフォームを組み合わせ、革新的なデジタル体験をご提供されております。ニュージーランドを拠点とする同社は、Flutterを使って2つのコアアプリを開発しました。これらは現在、市場で入手可能です。
その一つが「Zip」です。これは、「今すぐ手に入れて、支払いは後で」という、短期融資を支援するモバイルアプリケーションです。完全な透明性を保持し、金利や手数料がかからないため、お客様は今すぐ欲しい商品を手に入れることができる一方で、費用は6週間に渡って分散させることができます。このアプリのユーザー数は数十万人を誇り、毎月何百万ドルもの取引を処理しています。
もう一つのアプリは、大手金融サービスプロバイダーのAMP向けに作られた、ファンドと退職金を管理するアプリです。ユーザーは、アプリから直接、退職金や投資を管理できます。
「ClearPointでは、まさにソフトウェアを実践しています。当社のチームにとって、イノベーションは仕事が終わったからといって止まるものではありません」と、ClearPoint社のプリンシパルエンジニアであるIrina Southwell様は語ります。「FlutterとDartは、ClearPointの革新的なエンジニアリングに新たに加わったもので、当社はそれらを使って仕事をするのが大好きです」
React NativeからFlutterへの旅
シニアソフトウェアエンジニアのTim Ruddell様が、ClearPointがFlutterにたどり着くまでの道のりを、ご自身の経験を交えて語ります。
「私はClearPointにウェブ開発者として採用されました。いくつかのプロジェクトを経て、モバイル開発用のリソースがもっと必要になりました。そこで、ClearPointは私に参加したいかどうか尋ねてきました。その時点では、私のモバイル開発の経験はReact Nativeを使ったものだけでした。当社のシニア開発者の一人であるRichard Vowlesは、Flutterを使うことを提案しました。それにより、より速く、より機敏に作業し、さらにより一貫した体験を配信するすることができるようになりました。
**当社のお客様は、短期間でモバイルアプリを配信することを望んでおり、テクノロジーの選択は私たちに委ねられました。私は慎重にFlutterを試してみることに同意し、とても感動しました。もう使用してから1年ぐらいになりますが、とても気に入っています。私が開発でFlutterを使い始めたのは、ある意味偶然です」
ClearPoint社では現在、Flutterを使用する核となる開発者が3名おり、合計で6名います。通常、1つのFlutterプロジェクトで3人の開発者様が同時に作業を行っています。Tim様は、これらのマイクロチームは、スタートアップの開発チームのようだとおっしゃっております。「Flutterを使うと、作業に対するフィードバックが非常に早く得られるので、生産性が高まります」
「私たちは、Flutterを使うことで大きな利益を得られることに気づきました。ClearPointのお客様は、マルチプラットフォームであることをとても気に入っています」と Irina様は述べました。「クロスプラットフォームの要素は、間違いなくFlutterを際立たせるものです。ClearPointでは、Flutterを使ってさらに多くのことをやろうとしています。例えば、私たちのサービスをグローバルに提供するために、FlutterShopを立ち上げています。ものすごい勢いがあるのは確かで、仕事が一層増えて、Flutterでのアプリ作りに専念できるようになることをとても楽しみにしています」と語っております。
また、ClearPoint社のエンジニアの方々は、Flutterでの開発やテストを支援する複数のオープンソースのライブラリを作成および公開し、Flutterをさらに優れたプラットフォームにされております。それらには以下のものが含まれます:
- Ogurets DartによるGherkin + Cucumberの実装で、BDDテストをできるだけ簡単に書くことに重点を置いています。
- Dart-codegen-Dart用のOpenAPIコードジェネレータ。このプラグインはDartコードを生成し、OpenAPI v3 Mavenプラグインと一緒に使用するように設計されています。同社は、Dartが元々提供するものに多くの改良を加えて作りました。
CI/CDが厄介でした、Codemagicに出会うまでは
ClearPointは、Flutter向けのCI/CDツールを、Flutterが市場に出てまだ間もない段階から見つけたいと考えていました。「CI/CDの選択肢を検討していたときに、当社開発者の一人が、CI/CDで何かを動かすのに1週間もかかっていました」と、Tim様が述べました。開発者の方々はやっとのことで全ての設定を完了し、ツールは順調に動いていました。ですが、このプロセスには複数の手動ステップが必要で、多大な労力を要しました。「ある時、当社はCodemagicのことを知りました。試しに使ってみると、当社の開発者たちは皆このツールに落ち着きました。Codemagicは当時の市場では絶対的に最高のツールでしたし、今でもそうです」
ClearPoint社は、顧客や、企業、テスターなどのすべての関係者に頻繁にアップデートを提供する必要がありました。 同社の事業では、完全に自動化されたワンクリックリリースが必要でした。 「当時、AppleのApp Storeへのリリースに2ファクタ認証を提供するツールはCodemagicだけでした。これは私たちにとって画期的なことでした」と、Irina様は述べます。
Codemagicで1日に2~3時間節約
各プロジェクトで、ClearPoint社は1日に約10~20個のビルドを行います。各ビルドには、775個のユニットテストとウィジェットテスト、そして約50個のエンドツーエンドテストがあります。Codemagicでビルドを実行することで、過去10か月間で1日2~3時間のご節約に成功されております。これは開発チーム全体の1日の作業時間の10~15%に相当いたします。
「Codemagicがなければ、迅速にイテレーションすることはできませんでした。Codemagicのおかげで、何も考えなくても頻繁にデプロイできるようになりました」と、Tim様は語ります。
「ClearPointは10年以上前から市場に参入していますが、差別化要因の1つはエンジニアリング面です」と、Irina様は語ります。「この5年間、私たちは自動化、DevOps、継続的デリバリーに大きく注力してきました。ですので、Codemagicのツールは、私たちのソフトウェアの作り方にぴったりです」