我应该开始学习什么移动平台?

我应该开始学习什么移动平台? 重要的是:

  • 缓解
  • 平台的普及
  • 低成本的SDK和实际的手持设备

Solutions Collecting From Web of "我应该开始学习什么移动平台?"

我认为3-4个平台有一个未来。 但这取决于你喜欢什么平台,以及如何自由分发你的应用程序:)

  1. Windows Phone 7
    • .NET和Silverlight
    • 通过Windows Phone Marketplace
  2. Android的
    • Java的
    • 通过Android电子市场 (收费)或像正常的应用程序
  3. 苹果手机
    • Objective-C或Java( 使用Java开发iPhone应用程序 )
    • 通过iPhone市场
    • 支付一些费用($ 99 /年)
    • 令人难以置信的应用程序商店炒作
    • 您需要Mac(Mac OS)进行开发(感谢ctacke)
  4. Windows Mobile(我最喜欢的)
    • C ++或.NET
    • 免费发布,就像正常的应用程序
    • 微软也有一个市场 – 在这里
  5. Java的
    • J2ME或JavaFX

Android的

Linux内核。 SDK是低成本(免费)。 Java是一种非常stream行的语言。

现在诺基亚已经购买了TrollTech(Qt),用于在Symbian之上创build一个优秀的移动平台,你会认为OSS人群至less会提到它。

与其他所有Symbian相比,Symbian拥有巨大的市场。 Qt是KDE的中坚力量,可以轻松实现跨平台的开发,而且devise的非常好。

你会认为:

  1. 一个巨大的市场
  2. 一个伟大的LGPL跨平台框架
  3. 一个app store

…将是一个未来打击等待发生。 当然,赚钱的机会比成千上万的应用程序还要多,用户期望支付不超过0.99美元。

Symbian也开始打开代码。 事实上,随着Qt移动平台的成熟,底层操作系统可能并不那么重要。

这个很简单(即使像我这样的Windows Mobile开发者):

苹果手机

该设备的基础技术并不是什么特殊之处,但是苹果公​​司为开发者提供了一个方便合理的机制,同时locking了设备,软件盗版(据我所知)是完全不可能的[更新或显然是非常困难的] 。 谁不想为这样快速增长的市场编写软件?

Windows移动设备可能已经完成了这个6或7年前,但是没有…

人气:全球数字表示,Java ME显然领先于其他所有人。 Symbian是遥遥领先的。 iPhone是一个更遥远的三分之一。 但是,如果你的目标是一个大陆,一个国家或一种语言,那么这个数字就会发生巨大的变化。

易于开发:Objective-C是一个很酷而强大的东西,但记住它已经20岁了。 iPhone很容易开发,但Android开发同样简单,免费和多平台。 Java ME是一个噩梦,除非您的目标是数量有限的不同手机型号。 原生Symbian OS C ++在市场上的声誉较差,但逐年逐年回落。 Symbian还有让你select你想开发哪种语言的巨大优势。

工具成本:Java ME最便宜,其次是Symbian,Android和iPhone。

其他标准:很好,很大程度上取决于你想要开发的应用程序。

没有提及Palm的WebOS,因为从商业的angular度来看,至less现在它几乎没有注册成雷达。

检查谷歌智能手机的市场份额。 这是Gartner的一个。 总之,2008年的销售数据是(销售数千个单位):

Operating 2008 Market Growth System Sales Share 2007-2008 ----------------------------------------------------------- Symbian 72,933.5 52.4% -6.1 Research In Motion 23,149.0 16.6% 96.7 MS Windows Mobile 16,498.1 11.8% 12.2 Mac OS X 11,417.5 8.2% 245.7 Linux 11,262.9 8.1% -4.2 Palm OS 2,507.2 1.8% 42.2 Other OSs 1,519.7 1.1% 13.1 ----------------------------------------------------------- Total 139,287.9 100.0% 13.9 

所以,阅读这个,Symbian设备是最大的市场。 iPhone和黑莓是快速发展的平台。 Android去年年底上市,所以很难说它会是多么受欢迎。
我的select是:

  1. iPhone – 因为它是最统一的平台 – 相同的显示器和键盘,类似的其他function。 非常stream行的networking商店,如果你决定去专业。 快速增长的市场份额,可能在明年或者二年内排名第二。
    减号是它需要Mac电脑进行开发。
  2. 黑莓 – 相对较less数量的不同设备(不同的分辨率,不同的键盘),但它使开发变得复杂,因为你需要考虑到这些因素。 其次是销售数量,保持非常高的增长率。
  3. Symbian是迄今为止手机数量最多的一个,但是来自几个不同的厂商(诺基亚,三星,夏普,索尼Erricson等等)拥有不同的硬件configuration。 每个供应商都有自己的开发人员程序,您需要join才能访问设备特定的SDK。
  4. Windows Mobile – 仍然销售大量的单位,非常好的开发工具。
  5. Android – ? 一直持有,直到它获得任何显着的市场份额。

编辑:
Re Mac评论:

  • 最便宜的Mac Mini (1GB RAM,120GB HD),不含鼠标,键盘和显示器,成本与戴尔或惠普中档笔记本电脑(599美元)相当。 因此,开发所需的最less硬件成本至less是基于Windows的系统的两倍。 iPhone开发需要比任何其他智能手机平台更昂贵的设备。 这是一个缺点。

重新评论Symbian:

我知道symbian.org和开源的倡议。 但:

  1. 这个过程是非常slooow。 它从一年多前(2008年6月)开始,现在还在testing阶段。 这是非常大的公司之间的交易,它可能会通过一段时间才能达成最终的协议。
  2. 现在,如果你想开发Symbian设备,你需要去每个供应商的开发者网站,以获得文档,例子,SDK,工具的访问…
  3. 如果你打算去专业,每个供应商都有自己的商店和一套你需要遵守的规则。

移动客户端的编程历史上一直是一个噩梦。 移动世界的零碎特性加剧了您在桌面/服务器市场遇到的任何问题。

如果你的目标是作为一个小开发商赚钱,你应该尽可能地集中你的努力。 为此,iPhone是唯一真正的select,在J2ME,Symbian或Windows Mobile上testing,移植和authentication应用程序的成本很快就克服了这些平台所具有的潜在市场优势。

您还需要考虑将要开发的应用程序的技术要求。 例如,虽然J2ME比其他任何可能的手机都“受到支持”,但安全模型限制了J2ME的实用性,如果你想做“酷”的事情(至less这对我来说一直是个问题)。 对JSR的支持也是一个主要问题。 J2ME可以在非智能手机上运行很多,但这些手机是否支持你想要的function?

还要考虑目标受众群体中的手机分布情况。 潜在用户的位置,收入和年龄将极大地决定您可以并应该瞄准的手机。

我自己的经验是,移动应用程序编程是塞class,Windows Mobile和BREW的一场激战。 这是J2ME上的组织噩梦。 但是很多人在苹果App Store上赚钱。 而诺基亚现在有Ovi … RIM有一家商店,Windows Mobile将有一个商店…也许苹果的成功将推动其他手机供应商一起行动,使其更容易。

关于手机成本标准的说明: MTK (大部分中国/台湾品牌)将是最便宜的,但是你只能在制造时安装在手机上,所以这不是一个真正的select… Java手机可以便宜,但移植的问题是一个痛苦。 我工作的一家国际公司每年花费超过50万美元进行手机购买和客户端移植,因为他们必须在每个新的Java手机上testing他们的应用程序,甚至是使用不同固件的手机(只要在Wurfl中inputN95 ,就可以看看有多less不同的固件可以在欧洲运营商做傻事,比如安装定制固件,所以沃达丰英国和O2 UK N95 一样。)Windows Mobile可以是一样的,每个新版本都有不同的API和原始设备制造商改变了一切……如果您计算购置几台Java或Windows Mobile手机的成本,以确保您的应用能够在不同的操作系统版本和固件上运行,那么您花费了大量的资金。 不妨拿一两个iPhone。

那么,我的build议?

  1. 苹果手机
  2. Symbian(2和3可以根据你需要的function切换)
  3. J2ME
  4. Windwos Mobile
  5. Android的
  6. BREW(如果你在美洲)
  7. 轮缘
  8. MTK

以下是未来受欢迎的平台:

1)iPhone

它有三个护城河必须跨越赶上 – 配件,应用程序和硬件的附加组件

iPhone和触摸的配件可以find全部。 他们现在在很多酒店房间都有iPhone / iPod对接收音机…

当然,苹果公司的应用程序有很深的领先优势,但是它的领先优势远远超出了它的范围,因为除了所有的应用程序外,现在还有大量的iPhone开发人员。 当然,一些最初的应用程序是毫无意义的松散,但现在有无数的类别与真正的应用程序的工作人员深入。

最后一个护城河是新的,但没有人足够接近做任何类似的事情,他们可以阻止它 – 这是公司的能力3.0公司build立特定的设备,并通过蓝牙和基座连接器与他们交谈。 TomTom的iPhone车载底座(不仅仅是一个docker,它还包含了TomTom应用程序可以使用的更强大的GPS接收器),在这方面是冰山一angular。 医疗设备,分析工具等

2)Palm Pre

Palm Pre的优点是,许多真正想要坚持使用它们的Palm用户有一个很好的升级途径,而Pre有与苹果一样的优势,因为他们自己构build了一个单独的设备,使得构build充分利用平台的应用程序,并真正符合设备的理念。 只有SDK的更有限的性质阻止了更大的应用程序的select,但我认为我们会看到这个平台成长得很好。 唯一的危险是,我可以看到他们被我的微软收购,然后他们敬酒。

3)Android

Android拥有更多设备的优势。 但是这也使得构build和testing应用程序变得困难得多,并且编写充分利用特定function的应用程序。 我认为周围会有比Pre更多的物理设备,但是我相信在三年之后,Pre会比Android平台有更多的应用使用。

为了便于开发,我先评价Pre(除非你对CSS不是很熟悉),iPhone是第二,Android是第三(因为没有足够多的资源存在/将会帮助你进行Android开发,和iPhone一样大的框架,让你的工作变得简单)。

Symbian和Windows Mobile都不在游戏中。 除非他们购买了这三款手机之一,否则尽pipe现在有多less款手机可以在手机上使用,但是他们已经成为手机软件的一个严肃的平台。 他们也没有这三个平台所具有的框架或IDE丰富性,并且每天都在增长。

所有人需要做的就是记下这个问题右上angular的标签数量,以便获得受欢迎程度的子集(在stackoverflow.com上)。

就我的评论而言,标签数量是:

  • iphone ×4829
  • windowsmobile ×606
  • android ×523
  • j2me ×301
  • symbian ×106

这显然是其他因素。 你喜欢通过iPhone或J2ME为Windows Mobile写作吗? 你知道J2ME,但想进入iPhone开发吗? 我不认为有任何一个正确的答案,但标签计数确实说了一些stream行的东西。

我不太喜欢Symbian。 stream行和轻松使iPhone更完美。

我也听说Android是一个很酷的开发平台,但是我没有尝试过,现在还不是很stream行。

您也可以查看networking应用程序path:

  • XHTML Mobile Profile / XHTML Basic,可以访问任何WAP 2.0手机浏览器(所有智能手机,大多数数据感知手机)。 最好看看dotMobile移动开发者指南 。
  • 传统的网页开发与逐步增强,优化到小屏幕,目标智能手机平台。

这是原生SDK和浏览器平台无处不在的平衡。 我知道很多开发人员忽略networking应用程序太弱,但平台已经成长,值得研究。 像“无法下线”或“无法访问本地数据”这样的旧假设不再是事实。

iPhone,显然。 现在把你的努力放到另一个平台上只是愚蠢的事情,或者至多是冒险的。 也许Pre或者Android都有潜力,但是iPhone正在走过“潜力”阶段。 黑莓手机是另一个强有力的select,因为它们已经很大,而且仍然有很大的发展,但是平台本身是有限的,我不知道黑莓用户将会像iPhone用户那样抓取尽可能多的应用程序。

这就是为什么我认为iPhone,根据您的标准 –

  1. 易用性 – iPhone可能是最难的,因为你不可能已经知道Objective-C。 但是,这是一个面向对象的语言,Cocoa是一个MVC框架。 在习惯了语法之后,它和你可能已经知道的没什么不同。
  2. 平台的stream行 – 这是一个容易的。 iPhone可能不是最普遍的,但是对于那些真正使用他们的设备来做电话和发送短信的人来说,它肯定是最受欢迎的,并且很可能想要对任何应用程序感兴趣build造。 没有人为RAZR购买应用程序。
  3. 成本 – iPhone开发的成本是拥有最近的Mac和支付苹果99美元。 如果您还没有Mac,那么对于软件开发人员来说,这是非常实惠的。 人们会在这里为Linux提供一个案例,但是如果花费1000美元对你来说是一个问题,而你是一个软件开发人员,那么你可能没有做出最好的职业select。

苹果真的做了一个微软创build一个应用程序平台,将locking在客户多年。 有几个应用程序,我会有一个艰难的时间放弃在这一点上。

我正在做出类似的select,最终决定投入iPhone。 好处是,我真的很喜欢Mac – 这是我的第一个,发展很有趣。 我不打算向群众推销,我正在编写支持移动内容的应用程序。 Android将是我的第二select,我甚至不会考虑WM或Symbian。

你可以看看我的答案有一个类似的问题:

有关Android和iPhone的详细市场调查

智能手机市场份额2010年第一季度: 智能手机市场份额http://sofzh.miximages.com/iphone/smartphone-share1.png

现在,Safari支持通过JavaScript定位GPS等高级function,最好的select是符合标准的Web应用程序开发。 通过这种方式,您可以确保从单个代码库轻松更新和兼容多个设备。

这是Gartner关于Windows 7,Symbian和Android竞争的最新报告。 我猜这是Windows 7的糟糕时期。Sybian和Android是抢占市场的人:

http://www.informationweek.com/news/security/reviews/showArticle.jhtml?articleID=227700245&itc=ref-true

对于初学者来说,由于您的问题,答案是J2ME

  • 简单:J2ME的Java相当简单友好
  • 平台的stream行:亿元的设备可以运行J2ME
  • 低成本的SDK和实际的掌上电脑:很容易find一个支持J2ME的廉价手机,几乎所有的工具:框架,IDE,模拟器,文件…是完全免费的。

鉴于Symbian手机所拥有的市场份额(不仅仅是诺基亚Series 60 ),这似乎是一个不错的select。 虽然有优点和缺点。 Symbian有一个陡峭的学习曲线,比替代品陡峭。 分销渠道不是很好,但正在变得更好( Ovi ,例如, Symbian基金会地平线)。

iPhone目前拥有酷炫的因素,而且拥有出众的用户界面。 分配机制仍然不完善。 你只能通过苹果商店进行销售,他们在帮助开发者获得应用程序方面没有很好的声誉。

如上所述,Android是基于Linux内核的。 鉴于诺基亚Maemo平台将在近期内推出,熟悉它可能不会有什么坏处。

移动开发的主要困难是便携性。 这是非常困难的。 实际上,如果您对移动开发不熟悉,最好select一个平台并运行。

所以,简而言之,我的答案是:Symbian。

我已经在iPhone,Symbian,BREW,Java ME,Windows Mobile,Palm上发布了代码。 我个人喜欢在iPhone上工作最多。

以上所有以及Android都允许您免费下载和运行SDK。 我build议你尝试一下你认为最喜欢的那个,然后在模拟器中运行你的程序。 找出你喜欢的一个,然后把自己扔进去。

最好selectandroid.Nowadays android是一个不断增长的环境。
Android被许多厂商所采用。现在很多设备都支持android。
这很受欢迎,很容易。
Android的Google文档也非常好。
为了开发android应用程序(使用android SDK)使用java。
Java是伟大的,熟悉的语言。
最好你selectandroid。

在寻找这个问题的答案时,我遇到了以下两个框架,它们允许从HTML5,Javascript和CSS开发原生移动应用程序:

  1. Adobe的PhoneGap允许您为iOS,Android,Blackberry,Windows Phone,Palm WebOS,Bada和Symbian构build移动应用程序。
  2. Appcelerator的Titanium允许您为iOS,Android和桌面构build应用程序。

其他有趣的function(两者):

  • 两者都是免费和开源的。
  • 两者都有丰富的开发环境
    • titanium有一个基于Eclipse的专用IDE,
    • PhoneGap有针对所有开发目标应用程序的IDE的插件
  • 在文档和支​​持(video内容和开发者论坛)方面都做了很大的努力,
  • 如果您的本地计算机上没有环境,则可以在云中编译您的代码(该服务不是免费的)

我还没有尝试过,因为我还在研究类似的技术。 我想任何一个尝试过的人都可以对我们的利弊进行启发。
乍一看,他们看起来很容易学习; 至less对于任何Web开发人员来说。

我的select是两者中的任何一个,因为我有兴趣为Android和iOS开发(我承认,可以通过缩短学习曲线的可能性)。

我的build议是,J2ME是最好的,因为它是伟大的Java的延伸或诞生。 如今大多数手机都支持J2ME。 对于J2ME,很多Java和Java相关的论坛都在帮助提高我们的J2ME技能,用于解决我们的应用问题等等。

如果你知道Java,那么J2ME并不困难。 Java用户很容易理解和实现。

J2ME的主要优点是J2ME属于Java家族,是开源的。 现在很多公司正在免费向开源迁移。 所以很多公司都build议J2ME用于移动应用程序。

所以selectJ2ME。