ソフトウェアプロジェクトの開始は、コードの記述を開始するのと同じくらい簡単です。ほとんどのプログラマーは、何をする必要があり、どのようにそれを行うことができるかについて直感を持っています。ソフトウェアプロジェクトを開始するもう1つの極端な方法は、クライアントと話し(または世界を見て)、問題が何であるかを理解することから始めることです。あなたがプロジェクトで取り組もうとしている問題を完全に理解することは、プロジェクトを苦痛なく終わらせるための長い道のりであることがわかりました。プロジェクトを完了と呼ぶために何が必要かをよく理解できます。
だから私はポイント1がなると思います:あなたが解決している問題が何であるかを知ってください。これを知っていると、既存のアプリが同じ問題を満足のいく基準で解決するかどうかもわかります。
注:私はWindows 8プラットフォームにあまり詳しくないので、私の答えは主にiOSとAndroidについて話します。ただし、提起された問題は、Windowsプラットフォームの大部分をカバーするのに十分な広さです。
プラットホーム
展開プラットフォームの選択は製品の発売の重要な部分であり、他の多くの決定はプラットフォームに依存します。残念ながら、コードの開発と再利用の点で別々の2つの主要なモバイルOSが存在します。デプロイメントプラットフォームの選択を検討するときは、オーディエンスと、アプリケーションに支払う意思のあるオーディエンスの(潜在的な)サブセットについて検討する必要があります。Androidはそこにあるほとんどのデバイスに必要かもしれませんが、 iPhoneは(開発者にとっても)最もお金を稼ぎます。ただし、そこにはたくさんのアプリがあり、ほとんどの開発者はアプリからお金を稼ぐことはありません(または十分ではありません)。
金持ちになることを目的としてアプリ開発に取り掛かると、失望することになります。それはあまりありそうにありません、そして再び誰かがいつも宝くじにも勝ちます。就職してお金を稼ぐのは良い方法です。
次に、プログラミング言語(Java、Objective-C、またはC#)の問題があります。これは主に、あなたがすでに精通していることに基づいて決定されます。そうでない場合は、前のポイントに戻って参照してください。
テスト
製品のテストは難しいことです。エミュレーター(通常は開発パックに付属しています)から始める必要があります。ただし、遅かれ早かれ、ハードウェアでアプリをテストする必要があります。無料のハードウェアを手に入れることはできないと思いますが、友人や親戚から借りることは常に選択肢です。テストハードウェアを開発者に貸し出すビジネスもあるかもしれませんが、そうでない場合は、それが取り組むべきビジネスアイデアの1つだと思います。
プラットフォームの選択もこれに影響します。Androidは、iOSよりもはるかに幅広いハードウェアで実行されています。
特許侵害
ソフトウェア特許が厄介なことを除けば、特許の問題についてはあまり知りません。単一の開発者として、私は特許を侵害することについてあまり心配していません。それらの主な目的は、競合他社を寄せ付けないことです。通常起こることは、大企業が特許訴訟との競争を打ち負かすか、または彼らが特許の素晴らしいコレクションを保持している中小企業を購入することです。
安全を確保したい場合(つまり、会社を所有していて、実際にお金を稼ぐためにこれを行っている場合)、弁理士に相談してください。
コードリポジトリ
GitHubのようなコードホスティングサービスは、コードを作成する場所を提供するだけでなく、まだ不足している機能やソフトウェアに潜んでいるバグをメモするための問題追跡システムも提供するという点で素晴らしいです。
Gitについて学び始めるのに最適な場所は、git-scm.comとGitHubヘルプページです。
ソフトウェア開発計画
あなたの最後のポイントは、ソフトウェアエンジニアリングと呼ばれるものに爆発します。ソフトウェア開発プロジェクトを管理するさまざまな方法について多くの研究が行われてきました。ソフトウェア開発は長期間にわたって延長される傾向があり、プロジェクトの要件はプロジェクト中に変更され(詳細を学ぶにつれて)、プロジェクトには1人から数百人の開発者が関与する可能性があるという考えです。それらの開発者(および顧客のような関係する他のすべての関係者)の間で作業を調整する何らかの方法を形式化して、ソフトウェアエンジニアリングに参加する必要があります。目的は、開発プロセスをガイドし、プロジェクトの終了時に要件が満たされる可能性を高める方法論とプロジェクト構造を定義することです。
検討する価値のあるモデルには、(テスト駆動開発およびその他のアジャイル手法)が含まれます。
最後に、実行する必要があることのリストに追加します
- 研究図書館、これはそれらの図書館のAPIに慣れる前に来ることに注意してください。
達成したいことの一部を実行するソフトウェアがすでに存在します。これは、どのプラットフォームを使用するかという問題に部分的に戻ります。Appleは、iOSアプリ開発をサポートするための使いやすいフレームワークの開発に多くの注意を払っています。私はAndoirdやWindows8にあまり詳しくありませんが、記述しなければならないコードが少なければ少ないほど、製品はより速く実行されます。
1 http://mobiledevices.about.com/od/kindattentiondevelopers/tp/Android-Os-Vs-Apple-Ios-Which-Is-Better-For-Developers.htm