开始一个软件项目就像开始编写代码一样简单。大多数程序员都会对需要做什么以及如何完成有直觉。启动软件项目的另一个极端是与客户交谈(或观察世界)并找出问题所在。我发现彻底了解您试图通过项目解决的问题对于轻松完成项目已经很长了。它会让您很好地理解您需要什么才能将您的项目称为完成。
所以我想第一点变成:知道你要解决的问题是什么。了解这一点还将告诉您是否有任何现有应用程序以令人满意的标准解决了相同的问题。
注意:我对 Windows 8 平台不太熟悉,所以我的回答主要是关于 iOS 和 Android。然而,提出的问题足够广泛,足以涵盖 Windows 平台的大部分内容。
平台
选择部署平台是发布产品的重要组成部分,许多其他决策取决于平台。不幸的是,存在两个主要的移动操作系统,它们在代码开发和重用方面是分开的。在考虑选择部署平台时,您需要考虑受众,以及愿意为您的应用程序付费的(潜在)受众子集。Android 可能需要大多数设备,但iPhone 最赚钱(也适用于开发人员)。但是,请记住,那里有很多应用程序,大多数开发人员从未从他们的应用程序中赚到任何(或不够)钱。
以致富为目标的应用程序开发会让您失望。这不太可能,那么总有人也总是中彩票。不过,这是一个很好的就业方式并通过这种方式赚钱。
然后是编程语言(Java、Objective-C 或 C#)的问题。这在很大程度上取决于您已经熟悉的内容,如果您不熟悉,请参考上一点。
测试
测试产品是一件棘手的事情。您必须从模拟器开始(通常随开发包提供)。但是,迟早您必须在硬件上测试该应用程序。我怀疑你会得到免费的硬件,但从朋友和亲戚那里借用总是一种选择。也可能有企业将测试硬件出租给开发人员,如果没有,那么我想这是一个可以研究的商业理念。
平台选择也会影响这一点。Android 运行在比 iOS 更广泛的硬件上。
专利侵权
我对专利问题了解不多,除了软件专利很讨厌。作为一个单一的开发者,我不会太担心侵犯专利,它们的主要目的是阻止竞争对手。通常最终发生的情况是,大公司通过专利诉讼扼杀竞争,或者他们收购了一家拥有大量专利的小公司。
如果您想安全起见(意味着您拥有一家公司并且确实这样做是为了赚钱),那么请咨询专利律师。
代码库
像 GitHub 这样的代码托管服务非常棒,因为它不仅提供了一个存放代码的地方,而且还提供了问题跟踪器,用于记录仍然缺失的功能或软件中出现的错误。
开始学习 Git 的最佳地点是git-scm.com和GitHub 帮助页面。
软件开发计划
你的最后一点涉及到一个叫做软件工程的东西。对管理软件开发项目的不同方法进行了大量研究。这个想法是软件开发往往会延长很长一段时间,项目的需求在项目期间会发生变化(随着您了解更多),并且项目可能涉及 1 到 100 名开发人员。必须以某种方式协调这些开发人员(以及所有其他相关方,如客户)之间的工作,进入软件工程领域。目的是定义一种方法和项目结构,以指导开发过程,并使其更有可能在项目结束时满足要求。
一些值得研究的模型包括(测试驱动开发和其他敏捷方法)。
最后,我将添加到需要完成的事情列表中
- 研究库,请注意,这是在熟悉这些库的 API 之前进行的。
已经存在哪些软件可以完成您想要实现的部分目标。这部分可以追溯到使用什么平台的问题。Apple 在开发易于使用的框架以支持 iOS 应用程序开发方面投入了大量精力。我对 Andoird 或 Windows 8 不太熟悉,但您编写的代码越少,产品完成的速度就越快。
1 http://mobiledevices.about.com/od/kindattentiondevelopers/tp/Android-Os-Vs-Apple-Ios-Which-Is-Better-For-Developers.htm