Golang 製の Android 向けテストアプリ配信ツール「alphawing」を公開しました

昨年の Advent Calender ぶりの登場です。@m0t0k1ch1 です。

表題の件につきまして、実は 7/31 に公開された こちらの記事 の実績一覧の一番上に載せていただいてもいたのですが、改めてこちらで報告させていただきたいと思います。

alphawing とは

https://github.com/kayac/alphawing

alphawing-ss.png

TestFlight2014/3/21 をもって Android のサポートを終了 してしまったので、それを代替するためのツールとして開発したのが、この alphawing です。簡単に表現すると、「Android 用の TestFlight」です。表題の通り、サーバーサイドは Golang で記述されています。

アプリケーションの詳しい起動方法などについては README をご参照ください。

アプリケーションの概要

alphawing-overview.png

  • アプリケーションにひもづいた service account を作成し、その service account に割り当てられた Google Drive の保存容量を用いて apk ファイルを管理しています。アプリケーションの内部では、基本的にこの service account を用いて各種 Google API を叩いています。
  • アプリケーションへのログインには Google OAuth を用いており、ログイン可能なドメインを限定することも可能となっています。
  • ストア先を Google Drive にしているので、Google Compute Engine との相性がよいです。

alphawing でできること

開発者

  • 任意のプロジェクト単位で apk ファイルをバージョン管理する
  • プロジェクトの登録
  • apk ファイルのアップロード(アップロード API も使用可)
  • 各プロジェクトごとのメンバー(:apk ファイルをダウンロードできるユーザー)管理

テスター

  • メンバーとして登録されているプロジェクトの apk ファイルを端末にダウンロードする

社内運用について

社内運用には docker を用いています。@fujiwara さん作の Urume で立ち上げた VM 上にコンテナを起動し、そのコンテナ上でアプリケーションを走らせています。

最後に

今後について

ipa 対応など、アプリケーションとして改善の余地はまだまだあるので、今後も継続して手を入れていきたいと思っています。もちろん、社外の方からのご要望・ご指摘・pull request もお待ちしております。

つくってみて

今回の開発にあたって触れることになった Golang、Google API、docker などは、どれも今までに扱ったことがないものだったので、自分の中では技術的に新しいチャレンジがたくさんありました。社内向けにリリースしたときには、すっかり Golang と Gopher くんのことが好きになっていました。

また現在、仕事の中で alphawing とはまた別のアプリケーションを Golang で書いていたりもします。運用をメインにやっている自分のようなエンジニアにも、こういった新しい技術を用いて初期段階からプロダクトの開発に参加できるチャンスがあるのは幸せな限りです。

最後の最後に

alphawing の開発にあたって、普段は別々のチームに所属している先輩方・同期のみんなと開発を進めることができました。これはとても楽しかったですし、非常に学ぶことが多かったです(どちらかというと自分は雑用してただけ。。)。ご協力いただいたみなさん、本当にありがとうございました!m(__)m

そして、、

カヤックではサーバーサイドを Golang で書いちゃう開発者を募集中です!