安卓市场下载:
http://apk.hiapk.com/appinfo/me.happy123.aklotski/1
到底开发一个APP有多难?在知乎上看到这个帖子,正好过年有10多天的假,便从零开始,开发了一个小游戏:<华容道>。记录一下:
之前我是完完全全的JAVA,,Android零基础。为了探明"我这种条件下开发一个APP有多难",简单记录了一下开发流程:
很巧的,我在知乎看到了类似”如何20天零基础开发Android游戏” 的问题。大家都是对这种问题不屑一顾的,但我从开始到完成恰好十来天,可以作为参考记录一下。
确立市场方向,要做个益智类游戏,啥好呢?啥好呢?我把所有的Android的华容道下载下来玩了一遍,嗯,都很粗糙,看来有的玩,就是它了。
这个时候,其实你已经完成一半工作了。没错,就是那句什么 决定出发的时候,旅行就完成了一半。 这个时候就不要纠结于做什么了,关键是如何做。
开始搭建开发环境,先后折腾了Android Studio和Eclipse,家里翻墙实在慢呀,另外我用父亲打扑克的机器跑Android Studio是在跑不动啊,最后装了Eclipse。推荐个链接,有兄弟收集了开发环境套装国内下载,你值得拥有。
http://www.cnblogs.com/bjzhanghao/archive/2012/11/14/android-platform-sdk-download-mirror.html
开始学习Java,神马?你都不会Java还来搞Android。嗯,我也没想到,有一天我要搞Java!要搞Java啊,我对它的印象还是航空母舰啊~~~。没办法,找了本 <Head First Java> 电子书,照着书里面的例子一个个敲,没错,不论懂不懂,就一个个敲。,幸亏 Head First 系列专门照顾低智商读者的,像我这样的一天敲到了300多页的例子。
不知不觉就把600页的书敲完了。嗯,看来那种xx天精通xxx,也不是骗人的,现在我的状态,估计能出去忽悠一些HR了。
先不管Android,搞一个穷人版的华容道。就开始封装三个类,什么接口啊,多态啊,统统不用,就是简单继承。搞了个核心库,棋盘就用 0011 先画出来了。嗯,最后可以玩了。不过只有我一个人懂得怎么玩。 不过很有成就感啊,看来一天写个俄罗斯方块之类的不是难事啊。
这个核心库很关键啊,挂了直接影响后面的开发啊。但是我用 0011 看的很累啊。赶紧google之,看看Java怎么搞测试~~~,好,最后集成了JUnit,顺便学了学怎么在Eclipse里面跑测试,最后写了一堆测试用例,果然发现了BUG,某些棋子竟然能对角线走动,罪过罪过。
Android程序怎么搞,现在八字还没一撇呢。热情啊,就要消耗光了。
赶紧找了本网上号称最简单的Android开发教程 <第一行代码 >,再开始对着敲。没错,我就是只会这一招。
还在敲~~~,敲不完了。不是打字慢,而是电脑一开Android 手机模拟器就陷入昏睡模式,一气之下不敲了,直接接上手机开干。
游戏逻辑在前面那个核心库早写完了,我对Android App的开发印象就是:画View。没错,就是处理各种图像拉伸,各种尺寸适配,各种布局位置,各种奇葩的手机尺寸,各种API新老接口整合。
简单列举下中间遇到的坑:
怎么在各种尺寸下画出一个比较漂亮的棋盘布局
怎么用相对布局把几个菜单搞得整齐一点
怎么PS出一个不那么生硬的背景,没错,我还同时开了Photoshop做美工,这个时候电脑已经处在超脱状态
怎么在两个View直接传数据,怎么处理活动的生存周期
怎么加背景音乐,怎么搞成服务,怎么能让程序退出的时候结束服务,怎么搞得好听一点,没错,这个时候我又客串DJ,研究了MP3各码率下音质和文件大小的关系,最后以专业乐评人的视角选择了一首古筝曲
晕,现在为止还是只有一关呢,怎么办?我到 代码发芽 网上,写个Python脚本爬下来了所有关卡,同时邮件问作者申请授权
到底是拖动棋子效果好呢,还是点击移动棋子效果好呢?我又化身PM,反反复复走最简单的一关, 十八步 ,最后确定还是点击效果好。没错,到目前为止,这个游戏我只玩通了三关,我的智商就是这样。最后我爸还解决了 横刀立马 ,我怎么也不行。
发现一个重大问题,原来我一直以为只有五虎上将的,一共五横五竖十个长条棋子,突然发现有一关里面出现了魏延,我晕,再调吧
又发现个问题,Android的默认sqlite模块好像没说怎么把已有的数据库集成进去,怎么办,Google吧
到各个Android市场注册账号,提交APP,等审核,之间经历若干PS工作,这也是辛苦活啊。
就是这样,我在各种大坑小坑瞎搞之后,瞎搞出来了。。。
所谓零基础xx天搞APP是可以的,但是有条件,你只是Android零基础或者Java零基础,其它编程基础还是要有的,不然期间大坑小坑肯定要浪费很多时间
熟练工和初级工效率差距巨大,一天写个游戏APP不是开玩笑
这样写出的APP完成度低,要加入完整的体验流程,工作量还是很大的
虽然说是零基础,但是我其它程序语言(C, C++, Python, Javascript, CSS)的经验还是有一点的,以这个条件来看也不是零基础,下面总结下我已有的技能铺垫:
Google能力。这个真的非常重要。我没有诋毁百度的意思。我只能说,做开发,真的只能依靠Google。另外搜索能力也很重要,比如我遇到个最简单的问题:"如果把已有的数据库集成到Android程序里",一般就会以"android sqlite exists database" 为关键字google,要更精准的话,还会以google的site 语法过滤stackoverflow上面的答案;如果你要解决布局问题的话,起码要知道layout这种术语吧。所以不夸张的说,Google能力是最重要的一项技能。
具体可以参考这里:如何用好 Google 等搜索引擎? - Google 搜索
版本控制能力,我是使用 http://bitbucket.com 的Git服务开发的,现在大部分开发人员都转向Git了。GIt也有一个非常陡峭的学习曲线,如果从来没有接触到版本控制的人,要很长时间才能熟悉。
PS能力,就是有点美工能力,可以简单的修一下图,PS一下背景,调下大小,抠个图什么的,要求不是太高,不过有些很简单的问题就足够考验新手的,比如"怎么创建圆角图片?","怎么平铺背景?","怎么设置叠加效果?" 等等等等,这些会的人根本不用时间,几秒钟的事,但是毅力不足的新手很容易就被吓退了。或者就去找简单工具想一键修图之类的,我只能说,简单工具可以帮你在某个情况下完成某个特定问题,长远来看,你一定会为今天省出的一分钟,付出一小时的代价。
测试能力,这个就是耐心。毅力第一位,没有花巧,就是一个个写测试用例,一项项测。
最好有一点脚本能力,比如我想找到所有华容道游戏的关卡,怎么办?一项一项添吗?无疑是到网上找现成的最好,可是怎么把网上现成的关卡搬到你的程序里呢?一般就是写脚本爬虫转化。这个还真的是会者不难,我大概半个小时就做到了。前提是我已经熟知前端开发的那些东西,还有简单的HTML parse,还有HTTP协议等等,这个真的是要基础的。
最后就是毅力了。上面每个技能掌握前都会遇到大大小小的坑,考验的就是你的毅力。天下事有难易乎?为之,则难者亦易已。 共勉之。
1
typcn 2015-03-07 09:54:56 +08:00
我说写程序大部分时候靠 Google 还被 “知乎大神” 断章取义喷了。
|
2
armysheng 2015-03-07 10:00:16 +08:00
zan
|
3
hatcloud 2015-03-07 10:00:44 +08:00
给我很大的鼓励继续学下去
|
4
kingcos 2015-03-07 10:31:16 +08:00 via Android
有这种坚持就不错啊。。。佩服~赞~
|
5
oimotis 2015-03-07 10:39:43 +08:00
讚!樓主很強!
|
6
fulvaz 2015-03-07 10:47:22 +08:00
- - 楼主6666
|
7
Jelen 2015-03-07 11:42:46 +08:00
赞!没有楼主持之以恒的精神
|
8
yangxin0 2015-03-07 11:55:37 +08:00
这个也只能叫游戏软件而不是游戏
|
9
illuz 2015-03-07 12:03:29 +08:00
太神了...
|
10
blijf 2015-03-07 18:44:31 +08:00 via Android
我一关都玩不过。。。
不过楼主给了我学习的激情 |
11
bullettrain1433 2015-03-07 23:18:55 +08:00 via iPhone
我觉得过年回去还是多陪陪爸妈吧
|
12
iugo 2015-03-08 10:25:21 +08:00
没有脚本能力. 没写过爬虫.
|