如何app开发编程iphone app 编程

君,已阅读到文档的结尾了呢~~
低成本、高效率地开发出一款App已不是什么新鲜事,但一个连Xcode都不知道的纯编程小白如何在短短3周的时间里靠250美元成功地开发出一款简单又实用的iPhone App?除了编程,从idea、设计到上架App Store,一切工作都是Ben一人独立完成。 Ben Philabaum是雷克萨斯负责数字项目的一名员工,尽管每天都和开发者一起工作,但却是一个实实在在的编程小白,不会任何编程语言,甚至在开发自己的App之前,连Xcode是什..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
我想做个程序员:一位编程小白的App开发故事
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口我想做个程序员:一位编程小白的App开发故事
发表于 09:50|
来源benphilabaum|
作者Ben Philabaum
摘要:低成本、高效率地开发出一款App已不是什么新鲜事,但一个连Xcode都不知道的纯编程小白如何在短短3周的时间里靠250美元成功地开发出一款简单又实用的iPhone App?除了编程,从idea、设计到上架App Store,一切工作都是Ben一人独立完成。
Ben Philabaum是雷克萨斯负责数字项目的一名员工,尽管每天都和开发者一起工作,但却是一个实实在在的编程小白,不会任何编程语言,甚至在开发自己的App之前,连Xcode是什么都不知道。然而,他在不到3周的时间里,却成功地开发出了自己的第一款App——。除了编程,从idea、设计到成功上架App Store的一切工作都是Ben一人独立完成。低成本、高效率,一款简单却又非常实用的查看照片拍摄日期的应用就这样诞生了。下面就让我们一起听Ben讲述自己的开发历程吧。图:Ben Philabaum9年前,对于大多数人而言,手机还是个奢侈品,当时我第一次购买手机,它笨拙得像个砖块,运行着Windows Mobile系统,还有一个手写笔。让我印象最为深刻的是,将它装在裤子上的口袋里时,会鼓起很大一块,当时感觉很帅也很霸气。一直以来,我都有一个愿望,那就是开发出一款属于自己的App,但遗憾的是这个愿望从未实现,甚至我连想都不敢想。直到上个月,当我在不到3周的时间里,从想法到应用成功上架App Store,这个梦想终于成为了现实。第一步:敢想敢做做一个真正属于自己的App?这个App是什么?实现什么样的功能?针对什么样的人群?在过去,这些问题我从来都没有想过,也不知道从何想起。做应用开始的第一步就是思考做个什么样的应用,完美的?史诗级的?当我终于想到我要做什么时,却发现已有人捷足先登。因此我就必须另辟蹊径,不求独一无二,只求能让人觉得耳目一新。图:Photo Date但即使想法再天花乱坠,不能实现又有何用?因此当许多人跟我讲他们那些超级复杂、让人闻之一振的idea时,我只能非常无奈地微笑并点点头。而这也正是为什么我会决定做一个非常简单的App的原因。我的工作是在雷克萨斯做数字项目,其中有一个是做iPad应用的,也正因为此,我对App还是有一定的了解的,尽管我不知道任何iOS编程语言,甚至在开始我的iPhone App项目之前,我都不知道Xcode是什么。简单,简单!在开始App开发之前,我必须要确定idea。不复杂,或许也不让人兴奋,但却非常本质。我冥思苦想,却一直没有好的想法,直到有一天,当我在我的iPhone上滚动浏览相片时,突然灵光一现。“当拍摄这些照片时,我看不到它的日期!”既然都能看到拍摄的地理位置,为什么看不到时间呢?&于是,我在谷歌上输入“how to see iPhone photo date”(如何查看iPhone照片日期),在搜索结果的第一页,我看到大概有5个人在寻找该问题解决方法的论坛帖子。这就表明不止我一人有这样的疑问,其他人同样也有。那么如果我做这样一个App,那一定会有用户群。由此可见,如果想保证App在发布之后能有一定的市场,明晰用户需求是非常重要的一点。尽管对于我的第一款App,我并没有太多的要求,只是想着以通过App Store审查为目标,尽可能地低成本、高效率。其实说到底,要想让应用成为现实,想法是什么无关紧要,只是不要心比天高,命却比纸薄。总想着将应用做得多么完美,甚至可以完全颠覆Instagram,这自然是不可能的事情。作为App开发新手,需要做的就是两个字儿——简单!如何创建一个开发者理解的实体模型?有两种方法:免费的选择——Skitch下载Skitch,通过其矩形、直线、文本等工具创建一个实体模型,下图是我画的一个例子,说实话,感觉相当蹩脚。20美元的选择(可能免费)——Keynote + Keynotopia如果此前你已经有了Keynote,那么这个选择就是免费的。唉,可惜我没有,因此我不得不花上20美元进行购买,当然,你也可以直接下载使用。在Keynote窗口中创建App,在另一个窗口中打开模板。然后选择需要的物件,复制并粘贴。每一格就是App的一个界面,通过复制粘贴,就能让你的App设计非常完美,且毫无后顾之忧。如果你的应用界面上包含具有描述功能的注释,那将会是非常有帮助的。比如说,如上图所示,在屏幕界面上,用户可以通过他们的摄像机扭转向下滚动,在下方自动显示照片拍摄日期。超级免费的选择——画在纸上。开发部分:毫无压力地寻找开发者我认为最让人感觉害怕的就是这个部分,作为一个编程小白,我不能说自己亲自动手敲代码,我只能另外雇佣一个开发者,但对于大多数和我有着同样情况的人而言,不知道自己究竟要什么,又害怕雇佣错人,以至于他们必须要多花钱,或者做出的App无法正常使用,亦或者开发者自己需要时间考虑,还有可能一不小心碰到了骗子等等。图:我是如何雇佣开发者的我的工作让我每天都要和许多开发者一起工作,但我还在为我的应用能否找到合适的开发者而犯愁,我不可能雇佣我的开发者同事,因为他们的价钱实在太昂贵了。寻找开发者:如何去芜存菁?在上发布了一个以“非常简单的iPhone项目”为题的项目。当公开发布一个项目时,你必须要从开发者角度考虑,如果你看到这个项目,你会思考什么?因此,项目命题必须要恰当,只有这样,开发者才会care。如果你吹得天花乱坠,比如“革命性的idea”,一看标题,开发者都不知道你讲的是什么。而“拥有明确的指导方针、合理的时间安排的一个非常让人兴奋的项目”,这一定会引起开发者的注意,因为这个标题很明确地表示,做这个App规划设计均已OK,只剩编程工作,并且时间上的要求也比较合理,不会说一天之内必须搞定。我的项目标题为“一个非常简单的iPhone App”,更是吸引人,简单意味着容易,容易也就意味着钱非常好赚,开发者何乐而不为呢。当然,公开招聘开发者的同时也会产生一个非常常见的问题,那就是,如果你在freelancer、elance或odesk类的网站上发布一个项目,你可能会收到许多开发者投标。我自己收到了23份,但谁有那么多的时间来一一查看呢,如何缩小雇佣范围,去芜存菁?有一个小技巧,可以让你快速去除80%的开发者投标。因为在不同类型的网站上,许多人会抱着试一试的心态,不断地向每个项目投标。在你发布项目之后的短短三分钟内,你就有可能会收到500字的回复。因此,我在我的项目中如此描述道:“请在你的投标中写上2+2的答案,让我知道你已经认真地读完了项目内容。”它好像真的起作用了,在我收到的23份投标中,有许多人并没有做到这一点要求,于是我也就无情地摒弃了他们的投标,尽管看他们的个人资料,有一小部分人的条件还是相当不错的,但即使如此,我还是放弃了他们,因为如果连我的基本要求都不能满足,那在后面的开发工作中,又如何能满足我更加“苛刻”的要求呢。测试App在开发者完成App开发编程工作之后,就到了测试阶段,首先,进行准备工作。在手机上进行测试:前提——将手机的UDID写入应用,才能进行正常测试。获得一个IPA,是App的压缩文件,在电脑上进入,注册一个账户并登录,然后上传该IPA。在手机上登录,安装测试App,打开App,界面显示一个App构建,下载然后进行测试。图:测试App使用截图测试方法推荐——发动朋友,一起来测试,不告诉朋友具体的使用方法,让他们自己摸索,这能极大地帮助改善App。比如我有一个朋友尝试着在照片之间猛击左/右,但却没有反应,于是后来我和我的开发者一起将该项功能加入了App。提交到App Store在向App Store提交应用之前,要确保自己拥有所有提交上传的应用截图,因为苹果不会在通过应用之后还允许你进行截图修改,只有等到提交新版本时才可以增加新的截图,这是我唯一搞砸了的并且需要时刻谨记的事情。图:应用截图,可查看我向App Store提交应用的详细过程记录。我的经验教训从你能想到的最简单的idea开始。能否做到让App简单却对人们非常实用,这一点至关重要。当与一个你不认识的开发者一起工作时,务必要提供非常详细的说明。通过一些小技巧可以对开发应征人进行筛选。发动朋友一起来测试你的App最有效。(编译/唐小引 责编/张宁)文章来源:本文为CSDN编译整理,未经允许不得转载。如需转载请联系。
推荐阅读相关主题:
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章登录网易通行证
使用网易通行证(含网易邮箱)帐号登录
斯坦福大学公开课:iPhone开发教程2010年冬
本课程共28集 翻译完 欢迎学习
如果你对iPhone Development有兴趣,以下是入门门槛供参考:首先你要有一台Mac电脑(因为 iPhone App 使用 Mac 平台内建的 Xcode 开发工具),网上也有在Windows下搭设开发环境的教程,请大家自行GOOGLE一下,接著下载 iPhone SDK 安装,然后最基本的是你要熟悉C语言,再来你得学习开发iPhone所使用的Objective-C语言,接著是Cocoa。
讲师:多人
职业:讲师职业
学位:讲师学位
斯坦福大学,美国一所私立大学,被公认为世界上最杰出的大学之一。它拥有的资产属于世界大学中最大的之一。
公开课客户端下载Apple Developer作者:徐磊 资深架构师,微软最有价值专家MVP 微软Regional DirectorTechEd 讲师
一篇“从产品经理的角度算一算,做个app需要多少钱”的文章在网上疯传,可见大家对互联网创业的热情!这次,从一名技术经理的角度再给大家分析一下,如何使用跨平台开发技术为你节省上百万的开发成本。所谓“跨平台”开发技术,就是使用一种语言和一种开发工具同时支持几种不同的手机/平板设备,这样做不仅仅省钱而且开发效率高,可以让你更快的推出新版本和新功能!
作为一名软件工程顾问,我曾参与过很多的项目,主要为软件团队进行开发工具和方法论方面的咨询/培训/指导,我接触过不下100个各种类型/大小的开发团队,有传统行业,有互联网,有不差钱的,也有刚起步的创业者;其中也不乏app开发项目。开发团队遇到的问题最大共性是每个人在一个团队中的位置很大程度上决定他的判断,简而言之:视野问题!而当大家问一名IT人士那个经典的“做个app要多少钱?”的问题时,他也仅仅能根据自己的技术背景和经验给你一个答案,更加倾向于推荐那些相对稳妥的方案;而不懂技术的人更加无从判断。我想说的是:虽然互联网创业是个技术活,但技术选型一定要业务先行,ROI(投入产出比)优先。这就是为什么你首先应该从成本角度进行分析,做出判断;而不要受制于技术!
在回答完那个经典的“做个APP多少钱?”的问题后,下面这些问题就会接踵而来:
应该开发iPhone版本还是Andrioid版本?
可能需要聘用掌握了不同开发语言(iPhone使用Xcode/Object-C,而Android使用Android SDK和Java)和技能的团队成员,研发成本几乎翻倍
产品的后台系统使用怎样的开发环境?
如何在新功能上线时保证iPhone/Android的APP与后台系统的同步?
从无到有开发这样一款APP到底需要多少成本?
如何了解用户的使用习惯,并通过数据分析来指导后续版本的开发?
对于当前所流行的“互联网+”的众多创业者来说,如何能够以最快的速度和最小的成本来开发/运营自己的产品是决定是否能够在早期快速取得客户,获取生存空间和赢得未来机会的决定性因素。其实对于任何的软件开发来说,多快好省永远是我们的追求,当前的创业大潮使得这一原则更加凸显,也让更多的人了解到了软件开发。
DevOps(研发运维一体化)也是最近几年在软件行业非常流行的做法,DevOps通过打通开发和运维这两个原本属于不同领域的团队来为我们运营产品提供更快的价值输出,其实也是多快好省地体现。从用户的角度,使用手机/平板等移动设备的用户已经超过了PC用户,而在移动设备领域又存在着iPhone/Android/Windows三分天下的状况,这使得上面所提到的快速推出产品变得更加困难,同时由于不同的设备所使用的操作系统,开发环境和运行环境都完全不一致,让我们的研发管理变得更加的复杂,实现DevOps也是难上加难。
本篇博客将使用这个应用来为你展示一个“互联网+”时代的创业团队如何使用跨平台开发技术来多快好省地解决以上问题。
在2014年的 在线发布会上,微软使用了一套名为 的样例程序来展示Visual Studio 2015和Microsoft Azure所提供的DevOps能力,这套样例的源代码也被分享出来。其中使用了众多的技术来全面展示微软开发工具和云计算平台所提供的跨平台开发和DevOps能力。
全套样例代码可以通过以下地址下载:
跨平台移动开发白皮书 – MyShuttle.biz案例分析
这本白皮书将对当前2大主流跨平台开发技术进行详细的介绍,我将借助MyShuttle.biz这个案例,为你展示如何使用跨平台开发技术结合云计算完成一个典型“互联网+”产品的技术布局,团队组织,开发环境配置和开发流程管理,最终实现基于云的开发运维一体化(DevOps)环境。由于内容较多,我将按照以下顺序逐步发布;本系列的前一部分不会涉及过多的技术内容,适合创业者,技术管理者和普通大众阅读;后半部分会涉及较多深入的技术细节,适合对DevOps和跨平台移动开发技术本身感兴趣的朋友阅读。
案例背景:MyShuttle.biz的业务模型,应用架构
跨平台开发技术如何做到多快好省的?
跨平台开发技术的成熟度和不同方案优劣比较
跨平台开发环境配置和能力分析
Apache Cordvoa HTML/JavaScript Hybrid APP 跨平台技术
Xamarin 原生APP跨平台技术
ASP.NET 5 跨平台开发技术
基于云端的DevOps环境配置和能力分析
是一套类似“滴滴出行”的互联网租车应用,可以为企业用户提供叫车,计费和后台管理能力,解决企业用户日常用车需求。虽然“滴滴出行”解决了普通民众的出行需求,但是企业用车市场仍然是空白。作为在公司中工作的人来说,有客户到访,公司团建,出游,甚至日常的跑业务,税务等活动都需要用车,而企业养车则是非常大的开销;MyShuttle.bizs就是在这样的大背景下诞生的,希望能够将租车公司的空闲车辆与企业用户相衔接,实现社会交通资源的优化和企业用车成本的降低。
大家可以通过以下视频来了解这个应用:
MyShuttle.biz使用3套相互独立的系统来实现以上业务目标,后台系统通过云计算提供数据存储,业务逻辑处理和后台管理功能,并通过网页应用/Windows APP的形式提供给租车公司/用户企业的管理人员使用;用户APP通过各大应用市场给用户免费下载和使用,用户可以使用APP完成叫车,付费和订单管理功能;司机APP则提供给司机使用,完成叫车信息的推送,接受订单,跟踪里程等操作。
后台系统除了可以由用户通过浏览器完成各种操作外,还提供了流行的Restful接口供APP和其他第三方系统集成使用。
使用SQL Azure 提供安全的高可用数据存储服务
使用ASP.NET 5 WebAPI和Azure Mobile Service 所提供的WebAPI提供数据访问服务
为租车公司提供基于浏览器的SPA应用(单页面应用)来进行车辆,司机和订单管理服务
为用车企业管理人员提供基于Windows APP的桌面应用来管理员工,车辆订单
使用Xamarin跨平台开发工具提供原生的App体验,同时支持iPhone/Android/Windows Phone三大移动平台
使用Apache Cordova跨平台开发工具提供基于HTML/Js的Hybrid App体验,同时支持iPhone/Android/Windows Phone三大移动平台
“跨平台”技术如何做到多快好省?
由于使用了跨平台开发技术,我们不必聘用同时具备Object-C/Java/C#能力的开发人员,只需要熟练使用C#语言和Visual Studio IDE的开发人员即可,我们的团队组成可以规划为:
– Team 1: 2名后台开发人员:
○ 熟练使用C#开发语言,ASP.NET MVC
○ 对Microsoft Azure云计算平台有所了解
○ 了解Restful接口开发
○ 负责后台系统中的数据库,WebAPI开发
– Team 2: 2名HTML/Javascript/Web/APP开发人员:
○ 熟练使用C#/HTML/JavaScript/CSS开发语言,前端框架如Jquery, AngularJS
○ 对Microsoft Azure云计算平台有所了解
○ 了解Restful接口开发
○ 负责Web SPA App及Apache Cordova Hybrid APP的开发(司机APP),同时支持iPhone/Android/Windows Phone移动平台
– Team 3: 2名原生APP开发人员
○ 熟练使用C#和Xamarin
○ 了解Restful接口开发
○ 负责原生APP开发(用户APP),同时支持iPhone/Android/Windows Phone移动平台
– Team 4: 1名设计人员
○ 熟悉移动APP和Web应用用户体验设计
○ 可以独立完成平面原型和元素切图,熟悉应用开发过程,具备与开发人员合作的经验
– 1名产品经理
○ 熟悉互联网产品和移动APP运营
○ 熟悉互联网产品开发,具备与研发团队合作经验
○ 可以独立完成用户故事的编写
○ 熟悉敏捷开发过程,熟练使用backlog来进行产品规划
○ 良好的沟通能力
– 1名技术经理
○ 熟练使用C#/ASP.NET MVC/HTML/JavaScript/CSS等开发语言
○ 熟悉主流前端开发框架和Restful接口
○ 熟悉Microsoft Azure云计算平台
○ 熟悉互联网开发,具备管理研发团队经验
○ 熟悉敏捷开发过程,数量使用backlog,sprint,burndown,kanban等工具来进行产品开发过程管理
○ 良好的沟通能力
当然,根据应用的复杂度和业务量的不同,我们也可以对以上团队结构进行简化或扩展;如果我们资源有限,可以按照以下思路简化团队
将Team 1和Team 2合并,节省2名开发人员;因为大家都使用C#语言,MVC架构和REST接口的实现与前台开发关系紧密,这样做不仅仅可以节约成本,还可以提高开发效率,节约团队间的沟通成本;当前,前提是工作量和进度的要求可以满足。
在Team 1/2合并的基础上,我们还可以考虑只使用一种跨平台技术(Apache Cordova或者Xamarin),这个案例中,为了能够展示不同跨平台技术的优劣而同时使用了2种技术;而在真实的项目中,我们完全可以只使用一种;这样,我们还可以考虑砍掉team 3,而由Team 1/2完成所有工作,这也是使用HTML/javascript作为统一的前端语言以及Apache Cordova提供的最大优势;让我们可以使用最少的团队实现最多的移动平台覆盖;当然,如果用户对于界面体验要求较高,使用Xamarin原生跨平台方案还是有其优势的。
随着业务的推进,我们也许需要扩展团队,使用跨平台开发技术前提下,无论简化或者扩展团队,我们的团队永远会和业务对齐,不会有多条业务线使用同一个技术团队的情况出现。在传统的开发模式下,如果你没有足够的资源给每个业务线(司机/租客等)配备独立的技术团队,而按照技术平台(iPhone/Android)来组建团队架构的话,就会出现不同的业务线需要同一个技术团队做不同的事情,这时候必然会造成资源冲突,造成内耗。而使用跨平台开发技术就很好的避免了这个问题,因为我们不必因为技术不同而割裂本应该跟随业务的团队结构。大型软件研发团队的管理中的首要原则就是团队应该和业务对齐,而不要受技术选型的影响;这样做的目的是为了我们可以根据业务线的需求,最小化外界因素对交付的影响,做到按照业务功能持续交付;而多条业务线使用同一个技术团队,不仅仅开发人员无所适从,也会大幅增加沟通成本,造成质量问题。
最后,对于团队建设和能力成长,采用跨平台技术的团队使用同样的语言,工具,开发环境;这使得团队成员的沟通变得容易,大家可以一起交流技术,互相帮助对方完成工作,这样更加有利于我们建立健康的团队氛围,培养大家互相协作的气氛。
按照以上团队能力,下表中我们看到研发成本的计算:
(以下开发人员工资的数据采集自CSDN的2013年开发者薪资调查,根据这份调查的数据我大致估算了各个类别程序员的薪资中上位水平,同时乘以1.4的系数以考虑社保等因素来计算总体月成本。调查原文: )
需要特别提一句,这里的团队配置中我们对每个技术岗位的职位都配置了2个开发人员,同时不同技术岗位因为所使用的技术非常相似,都具备互换性。岗位的互换性对于我们避免员工生病/请假/离职所带来的影响非常重要!而且我这里的平均工资达到了18000元/月,比产品经理的那个计算方式更高!这意味着你可以聘用更高水平的开发人员。
按照以上我们也可以推算出前3年的开发成本:
如果按照以上计算,单单使用跨平台移动开发技术,就可以在第一年为你节省将超过60万元的研发成本,随着团队的扩大(因为APP团队占研发成本的大部分),节省的比例和金额会变得更加惊人!请大家注意,在“产品经理”的计算中,他所使用的“第一版”成本是按照6个月计算的,大致100万的研发成本,和我这里的“传统”计算方式基本一致,而实用“跨平台”技术的“第一版”成本比“产品经理”的计算方式低20万元!
在现实中,我遇到的朋友很多都问我怎样多快好省地开发一款app,我常常告诉他们应该用跨平台技术;但最后的结果他们还是会选择传统的各平台独立开发的方式,希望以上的分析能够帮助这些朋友可以对“跨平台”技术的成本优势有所了解。当然,你心里关于这些技术的其他疑问,比如他们和传统原生app有哪些不同,各种不同的跨平台技术间有哪些优劣,在后续的文章中我都会一一解答……
转载请注明来自36大数据(): &
除非特别注明,本站所有文章均不代表本站观点。报道中出现的商标属于其合法持有人。请遵守理性,宽容,换位思考的原则。}

我要回帖

更多关于 iphone app开发 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信