個人プロダクト開発シリーズ第2回

前回の記事では、iOS開発者の視点から、ニーズの決定、個人アプリの開発、公開に使ったリソースを紹介しました。使えるリソースに制約があったため、完成できたのはAppleのApp Storeだけで公開するユーティリティアプリでした。

今回は、十分な機能を備えたクロスプラットフォーム製品の開発、その過程で直面した問題と解決策に目を向けます。私がWeChat公式アカウント、ミニプログラム、アプリからなる一つのプロダクト体系を、どのように段階的に築いたかを共有します。

1. プロダクトの目標

広い意味で、プロダクトの目標とは、そのプロダクトが実現する価値です。利用場面が存在しても、作ったプロダクトに価値がなく、利益を生めず、利用者もごく少ないのであれば、存在する必要はありません。

さらに大きく考え、プロダクトのビジョンから話し始めることもできます…

ちょっと待ってください。今はそこまで考えなくてかまいません。そうしないと、プロダクトは延々と頭の中で想像されるだけになってしまいます。

資金も人手も投入できるものも限られているなら、目標は明確です。どの問題を解決するのか、あるいはどの機能を実現するのかです。

たとえば私がFile Managerを作ったとき、MVPの目標は明快でした。スマートフォンとパソコンの間でファイルを転送することです。

MVPの要件を完成させると、自然にほかの要件も生まれました。自分の製品計画から出たものもありますが、多くはユーザーのフィードバックから生まれました。

  • 1.0.0 スマートフォンとパソコンの間のファイル転送
  • 1.1.0 画像、動画、音声ファイルのプレビューまたは再生
  • 1.2.0 ファイルの分類、移動、削除、圧縮、共有
  • 1.3.0 プレーヤーの改善
  • 1.4.0 セキュリティ認証機能:ジェスチャーパスコード、生体認証
  • 2.0.0 アプリ内課金の追加
  • 2.1.0 ファイルスキャン機能の追加
  • …

当時のFile Manager画面:ファイルの閲覧と管理機能

当時のFile Manager画面:追加のファイルツールと操作画面

目標を一つ明確にしましょう。大きくなくても、実行できるものであればよいのです。一度に一つへ集中し、間違っているように思えてもまず続けます。完成させなければ、間違いかどうかわからないでしょう ◔ ‸◔?完成させてから振り返ります。

2. プロダクトのプロトタイプ

前回の記事では、多くのプロトタイピングツールを試した末、プロトタイプを設計する時間があれば、xibで画面を組み上げられるという結論に至ったと書きました。

ここで自分の意見を覆します ,,Ծ‸Ծ,,

先の計画を持たず、とにかく完成させて公開することだけを考えて個人向けユーティリティアプリを作るなら、確かにそう考えるのも無理はありません。

しかし製品を繰り返し改善していくと、プロトタイプの計画を持たず、一歩ごとに次を考える進め方は、その後の開発に大きな問題を残します。プロトタイプを設計する作業は、実はプロダクトのロジックを整理する作業です。

いくつかのプロトタイピングツールを紹介します。現在、私がよく使うのはMockingBotです。

3. プロジェクト管理

iOSアプリを一人で開発して公開した後、深刻な問題に気づきました。プロジェクト管理という発想がまったくなかったのです。時間があるとき、思い出したときだけ作業し、怠けたいときは何もしませんでした。

自分のプロダクトを自分で設計し開発しており、MVPにはおそらく有料ユーザーもいなかったため、ユーザーに責任を持つ意識もありませんでした。

これはプロジェクトの進行を大きく妨げます。長期間にわたり無計画で開発すれば、プロジェクト自体が頓挫することもあります。

会社で数年間のイテレーション管理を経験し、個人プロジェクトにも管理ツールが有効だとわかりました。明確な目標と、筋の通ったプロトタイプがあれば、作業をタスクに分解するのは自然な流れです。

私はプロジェクト管理にcoding.netを使っています。ソースコードのホスティングにも利用できます。

当時のプロジェクト管理画面:作業を個別タスクに分割

タスクを時間単位の粒度に分割すると、管理しやすくなるだけでなく、テストケースも書きやすくなります。私は現在、本格的にコードを書く前にテストケースを完成させています。これはとても重要です。

プロトタイプは製品ロジックを整理し、テストケースは開発の詳細を整理します。完全なテストケースは、正しいビジネスロジックの実装へ導き ✅、多くの業務上の誤りを防いでくれます ❌。

4. 技術を選ぶ

ここまでに行ったのは準備だけで、まだ開発には入っていません。重要な問題は、開発者が自分一人なのに、冒頭の目標であるWeChat公式アカウント、ミニプログラム、アプリからなる一つのプロダクト体系を完成させなければならないことです。

ミニプログラム、iOS、Androidをすべて開発する技術が必要です。プログラミング言語を学ぶ難易度はそれほど高くありませんが、同じビジネスロジックを3回実装するコストがかかります。これは明らかに現実的ではありません。

一般にはウェブを使って複数プラットフォームの体験を実現したり、アプリを諦めて公式アカウントとミニプログラムだけにしたりするでしょう。プロダクトの初期段階で要件を素早く検証する場合、これは非常に妥当な方法です。

少し検索すれば、クロスプラットフォーム技術が数多くあるとわかります。アプリとミニプログラムを3プラットフォーム共通のコードで作るなら、Uni-Appが使えます。これはVue.jsフロントエンドフレームワークを使い、iOSとAndroidにはWeexを利用します。

個人プロダクトや小規模な商用プロダクトには十分です。

5. データ管理

ミニプログラムとアプリの実装方法が決まっても、もう一つ重要な問題が残ります。データをどこに置くのか?

ユーティリティだけなら、アプリ内にローカル保存すれば十分です。しかし目標が、完全なユーザーシステムを備える情報プラットフォーム、さらには複雑なUGCコミュニティなら、どうすればよいでしょうか。

Uni-Appには独自のuniCloudサービスがあります。JavaScriptでサーバー開発を完了でき、ミニプログラムとアプリはドメイン名なしでサーバーを利用できます。

私は別の方法を選びました。サーバーレスプラットフォームのLeanCloudにデータを預け、ミニプログラムとアプリからLeanCloudのJavaScript SDKを通じてホストされたデータベースへアクセスします。

開発プランでは1日30,000回のAPIアクセスを無料で利用でき、SMSサービスも提供されます。ユーザーシステムの構築、ユーザーデータのアップロード、プラットフォームデータの取得を支えられます。

開発プランのアクセス回数を超えたなら、プロダクトに一定規模のユーザーがついたということです。そのころにはトラフィックによる収益で、商用の従量課金プランも利用できるでしょう。

少しずる賢いデータの集め方

天気アプリや情報アプリを作りたいのに、天気やニュースのデータがなければどうすればよいでしょうか。

中国には多くのAPIマーケットがあります。たとえば:

Alibaba Cloud API Marketplace

Tencent Cloud API Marketplace

Baidu Cloud API Marketplace

Juhe Data

EastApi

などです。

これらのマーケットは、有料APIと無料APIの両方を提供しています。

  • トラフィックをうまく収益化できるプロダクトなら、有料APIの利用を検討できます。

  • そうでなければ、無料枠を使う方法もあります。しかし100回の試用枠はテスト中にすぐ使い切ってしまいます。どうすればよいでしょうか。

そこで、サーバーレスのデータベースプラットフォームであるLeanCloudとAPIマーケットを組み合わせます。毎日の天気を例にすると、まずサーバーレスデータベースを検索し、データがなければAPIマーケットへリクエストして、その結果をデータベースへ保存します。

それでも100回ではすべての都市をカバーできなければ?無料枠を活用する精神で、複数のプラットフォームに申し込みましょう。

6. 公開と運営

これでミニプログラム、アプリ、サーバーの開発が終わりました。どうやって公開するのでしょうか?

ミニプログラムは比較的簡単です。WeChat公式アカウントプラットフォームで案内に従い、ミニプログラムを申請します。

iOSで公開するには有料の開発者アカウントが必要で、これが一つの障壁です。長期的に運営するなら、Apple Developerのウェブサイトでアカウントを申請することをおすすめします。現在は、iPhoneにDeveloperアプリをダウンロードして支払えば簡単に申請できます。

Androidで公開するには、ソフトウェア著作権登録が必要です。通常の申請には1〜2か月かかる場合があり、有料で第三者の代行業者へ依頼することもできます。

さらに無料枠を活用するとして、アプリとミニプログラムの運営枠で使う画像、音声、動画はどこに保存すればよいでしょうか。

公式アカウントのメディアライブラリでこの問題を解決できます。画像や音声、動画を保存して元のURLを取得すれば、アプリとミニプログラムからアクセスできます。

7. 収益を得る

トラフィックを収益化する比較的簡単な方法は、広告です。

しかし各プラットフォームで媒体主になる条件は厳しくなり続けており、個人開発者が広告を導入するのはかなり難しくなっています。

  • Uni-Appにはワンクリック導入機能があります。詳しくはドキュメントをご覧ください。

  • 公式アカウントでフォロワーを増やせば、記事内の広告枠を有効にできます。

  • ミニプログラムはユニークビジターが1,000人に達すると、媒体主向けの収益化を有効にできます。

8. まとめ

これで、冒頭で紹介したWeChat公式アカウント、ミニプログラム、アプリからなる一つのプロダクト体系が完成しました。

以上の手順に従い、私も三つのプロダクトでこの作業を完了しました。コードを読み取って試してみてください。

当時のプロダクトのQRコード。現在は利用できない場合があります