07.はじめてスマホアプリを作ってみた(保守フェーズ)【 Android / Xamarin.Forms 】

2021/03/06

目次 [隠す]

OneThird ストア画像

記事の概要

こちらの一覧の7つ目、「保守フェーズ(公開から現在まで)」の記事となります。

はじめてスマホアプリを作ってみた 記事一覧

  1. 検討フェーズ(どんなアプリを作るか)
  2. 要件フェーズ(どんな要件のアプリにするか)
  3. 調査フェーズ(どんな技術を使うか)
  4. 設計フェーズ(どうやって作るか)
  5. 開発フェーズ(実際に作りはじめる)
  6. 公開フェーズ(アプリを公開する)
  7. 保守フェーズ(公開から現在まで)

こちらでインストールできます
※アンドロイド版のみです。iPhoneユーザの方すみません。
Google Play で手に入れよう

全7回に分割して書いていますが長いので、ダイジェストで読みたい方はこちらの記事をご覧ください。

アラフォー初心者だけどスマホアプリを開発~リリースまでがんばってみた【Android・Xamarin.Forms】 | neputa note

この度、素人ながらスマホアプリ開発に挑戦してみました。 今回の記事では概要と経緯について書き綴ってみたいと思います。 実際に行った作業の詳細は、今後それぞれ記事を書き、こちらにリンクを追記します。作っ

blog card

はじめてのスマホアプリ開発 保守フェーズ

前回は、アプリをGooglePlayでリリースする工程で行ったことをまとめました。

今回は、リリース後に見つけたバグや追加したい機能などをどのように管理し、実装しているのかについて書いてみたいと思います。

個人開発なので、自分が把握できる方法であれば何でもよいとは思います。

こういうやり方してる人もいるんだ、という感じに温かい目で読んでもらえるとありがたいです。

作業で使用しているツール

an image of tools
Photo by:Todd Quackenbush in Unsplash

まずは、どのようなツールを使用して作業を行っているかについてです。
現在の作業環境を図に書き出してみました。

work environment
作業環境図

図中の各ツールをどのような目的で使用しているのか説明したいと思います。

Visual Studio と Git

開発ツールは「Visual Studio Community」を使用しています。

Visual Studio Community 2019 - Free IDE and Developer Tools

Try our free, fully-featured, and extensible IDE for creating modern developer apps for Windows, And

blog card

ソース管理ツールの「Git」を操作する機能が統合されているので、作業時に起動するのはVisual Studioと次に説明する各Webツールのためにブラウザぐらいでしょうか。

Azure DevOps

わたしの場合は記憶力に自信がないので、ひとつひとつの作業を経緯を含めて記録しておかないと、後から見た際に「なんのこっちゃ」となることが多いです。

この作業を記録するために、Azure DevOpsが大いに役立っています。

Azure DevOps Services | Microsoft Azure

Azure DevOps Services (以前の Visual Studio Team Services) を利用して、よりスマートに計画を立て、より効率的に共同作業を行い、より迅速に公開しましょ

blog card

最初の5ユーザまでなら無料で利用できます。

.NETに限らず、Node.js、Python、Java、PHP、Ruby、C/C++など多くの言語に対応しています。

Azure DevOpsで主に使用している機能は以下となります。

Boards
「Basic」「Agile」「Scrum」の3種類から管理方法を選択し、プロジェクト管理を行うことができる機能です。
個人開発ではありますが、検索して分かりやすい情報が多かった「Scrum」を選択して使っています。

Repos
これはリモートリポジトリです。
Visual Studioからpushしたコミットをここで管理しています。
主にmainブランチに開発ブランチをマージする作業をここでしています。

Wiki
アプリの仕様をここに書いておくようにしています。
「仕様書」というほど厳密なものではなく、変更頻度が低いアプリの仕様上のルールなどを書くようにしています。

この他、「Pipeline」というビルドやデプロイを自動化する機能がありますが、この部分は別途「App Center」というツールで行っているので使っていません。

「Test」という機能は有償プランでフルに利用できるようになります。わたしは限定的にしか使用できないので、UIテストのチェックリストを「Test Case」として作成する機能などを使っています。

チーム開発であれば、Reposでテスト用のブランチを切って、Pipelineでビルド&検証環境へリリース、Testでテスターが作業みたいな流れが実現できるのだと思います。

App Center

Azure DevOpsで管理しているリポジトリを参照し、ビルド&リリースを自動化できるブラウザで使用するツールです。

Visual Studio App Center | Microsoft Azure

Visual Studio App Center でアプリケーション ライフサイクルを自動化することで、iOS、Android、Windows、macOS 向けの高品質のアプリをより迅速に作成できます

blog card

毎月のビルド数などに制限がありますが無償で使用できます。

接続IDなどシークレット情報を管理して、ビルド時に差し込んでくれる機能などがあります。

わたしはAzure DevOpsのReposでmainブランチのコミットを行い、App Centerが更新を検知して自動でビルド、Google Play Consoleへリリースしてくれるように設定しています。

Google Play Console

Google Playの公開情報をここで管理します。

アップデートをApp Centerでリリースしたら、審査中の間にここで多言語用のリリースノートを書いたりしています。

ダウンロード状況などを分析してくれる機能もありますが、まだユーザも多くないのでそれほど役立てることはできていません。

Google Cloud Platform

これは、App CenterからGoogle Play ConsoleへリリースできるようにするためのAPI Serviceを提供してくれるプラットフォームとして利用しています。

Azure

ユーザ認証の機能を提供してくれる「Azure AD B2C」と、サーバDBとして利用しているドキュメントDB「CosmosDB」を使用しています。

Azure Cosmos DB を試す| Microsoft Azure

Azure Cosmos DB を使用して、任意のプラットフォームやデバイス用に、Web およびモバイル アプリを迅速かつ簡単に構築してください。サブスクリプションは不要で、課金や契約もありません。

blog card

Azure Active Directory B2C とは | Microsoft Docs

Azure Active Directory B2C を使用して、Facebook、Google、その他の ID プロバイダーでのソーシャル ログインなど、外部 ID をアプリケーションでサポートする

blog card

サインイン画面のカスタムテンプレートを使用するために「Azure Blob」も併せて利用しています。

AWSなどの方が情報も多くユーザも多いとは思いますが、.NET開発者向けの情報やライブラリが充実しているので、いまのところ不自由なく利用することができています。

この他、Google Admobや、Admob用にadd-aps.txtをホストするためにFirebaseを利用しています。

作業の流れ

an image of a work flow
Photo by:Campaign Creators in Unsplash

続いて、ここまで書いたツールをどのような手順で使用しているか書いてみたいと思います。

  1. (Azure DevOps)Boardsに、Bug・Product Backlog Item を登録する。(随時)
  2. 優先度を整理し、次回リリース対象をBoardsのSprintsに登録する。
  3. Visual Studioで開発を行う。
  4. 作業内容をBoardsに記録する。
  5. 開発完了後、ローカルGitから、Azure DevOps ReposにPushする。
  6. Reposでmainブランチに開発ブランチをマージする。
  7. mainブランチの更新をApp Centerが検知し、Build → Distributeが行われる。(自動)
  8. App Centerから配布されたaabをGoogle Play Consoleが受け取りリリースが行われる(自動)
  9. BoardsにCommit IDを記録しStatusをDoneにする。
  10. 一連の作業が完了。
work flow
作業フロー図

現在は、こんな感じで作業を繰り返しアプリのアップデートを行っています。

初回リリースをするまでは、開発とこれらの環境構築を併せて行っていたのでかなり大変でしたが、おかげで今はコーディングに最も時間を費やすことができる環境となっています。

まとめ

ざっとではありますが、わたしの作業環境についてまとめてみました。

各ツールの使い方や設定方法などは、個別に別途記事を書きたいと思います。

すべて我流なので、使い方がおかしかったりするものもあると思います。
わからない部分や、もっといい使い方がある、いいツールがあるよーなど指摘いただけますととっても嬉しいです。

10年以上前、かつて知っていた開発環境とは大きく変わり、今では便利なツールがたくさんあることに驚くとともに、ツールを作ってくれた方々に感謝しながら使わせていただいています。
いずれ費用を捻出できるぐらいになったら、有償のさまざまな機能も使ってみたいなーなどと夢見ています。

ここまで、初心者がはじめてスマホアプリを開発し、リリースするまでを7回に分けで書いてきました。

独学で実践してきた偏ったものかもしれませんが、どなたかのお役に少しでもなれれば幸いです。

プログラミングはほんっとうに楽しいですね。

どうぞよき開発ライフを!

長文にお付合いいただき、ほんとうにありがとうございました!

はじめてスマホアプリを作ってみた 記事一覧

  1. 検討フェーズ(どんなアプリを作るか)
  2. 要件フェーズ(どんな要件のアプリにするか)
  3. 調査フェーズ(どんな技術を使うか)
  4. 設計フェーズ(どうやって作るか)
  5. 開発フェーズ(実際に作りはじめる)
  6. 公開フェーズ(アプリを公開する)
  7. 保守フェーズ(公開から現在まで)