爱意满满的作品展示区。
memorybox

我的第一个 Android APP:智取华容道

  •  3
     
  •   memorybox · Mar 7, 2015 · 2155 views
    This topic created in 4114 days ago, the information mentioned may be changed or developed.

    安卓市场下载:

    http://apk.hiapk.com/appinfo/me.happy123.aklotski/1

    到底开发一个APP有多难?在知乎上看到这个帖子,正好过年有10多天的假,便从零开始,开发了一个小游戏:<华容道>。记录一下:

    之前我是完完全全的JAVA,,Android零基础。为了探明"我这种条件下开发一个APP有多难",简单记录了一下开发流程:

    开发日志:

    很巧的,我在知乎看到了类似”如何20天零基础开发Android游戏” 的问题。大家都是对这种问题不屑一顾的,但我从开始到完成恰好十来天,可以作为参考记录一下。

    Day1

    确立市场方向,要做个益智类游戏,啥好呢?啥好呢?我把所有的Android的华容道下载下来玩了一遍,嗯,都很粗糙,看来有的玩,就是它了。
    这个时候,其实你已经完成一半工作了。没错,就是那句什么 决定出发的时候,旅行就完成了一半。 这个时候就不要纠结于做什么了,关键是如何做。

    Day2

    开始搭建开发环境,先后折腾了Android Studio和Eclipse,家里翻墙实在慢呀,另外我用父亲打扑克的机器跑Android Studio是在跑不动啊,最后装了Eclipse。推荐个链接,有兄弟收集了开发环境套装国内下载,你值得拥有。

    http://www.cnblogs.com/bjzhanghao/archive/2012/11/14/android-platform-sdk-download-mirror.html

    Day3

    开始学习Java,神马?你都不会Java还来搞Android。嗯,我也没想到,有一天我要搞Java!要搞Java啊,我对它的印象还是航空母舰啊~~~。没办法,找了本 <Head First Java> 电子书,照着书里面的例子一个个敲,没错,不论懂不懂,就一个个敲。,幸亏 Head First 系列专门照顾低智商读者的,像我这样的一天敲到了300多页的例子。

    Day4

    不知不觉就把600页的书敲完了。嗯,看来那种xx天精通xxx,也不是骗人的,现在我的状态,估计能出去忽悠一些HR了。

    Day5

    先不管Android,搞一个穷人版的华容道。就开始封装三个类,什么接口啊,多态啊,统统不用,就是简单继承。搞了个核心库,棋盘就用 0011 先画出来了。嗯,最后可以玩了。不过只有我一个人懂得怎么玩。 不过很有成就感啊,看来一天写个俄罗斯方块之类的不是难事啊。

    Day6

    这个核心库很关键啊,挂了直接影响后面的开发啊。但是我用 0011 看的很累啊。赶紧google之,看看Java怎么搞测试~~~,好,最后集成了JUnit,顺便学了学怎么在Eclipse里面跑测试,最后写了一堆测试用例,果然发现了BUG,某些棋子竟然能对角线走动,罪过罪过。

    Day7

    Android程序怎么搞,现在八字还没一撇呢。热情啊,就要消耗光了。
    赶紧找了本网上号称最简单的Android开发教程 <第一行代码 >,再开始对着敲。没错,我就是只会这一招。

    Day8

    还在敲~~~,敲不完了。不是打字慢,而是电脑一开Android 手机模拟器就陷入昏睡模式,一气之下不敲了,直接接上手机开干。

    Day9-Day13

    游戏逻辑在前面那个核心库早写完了,我对Android App的开发印象就是:画View。没错,就是处理各种图像拉伸,各种尺寸适配,各种布局位置,各种奇葩的手机尺寸,各种API新老接口整合。

    简单列举下中间遇到的坑:

    • 怎么在各种尺寸下画出一个比较漂亮的棋盘布局

    • 怎么用相对布局把几个菜单搞得整齐一点

    • 怎么PS出一个不那么生硬的背景,没错,我还同时开了Photoshop做美工,这个时候电脑已经处在超脱状态

    • 怎么在两个View直接传数据,怎么处理活动的生存周期

    • 怎么加背景音乐,怎么搞成服务,怎么能让程序退出的时候结束服务,怎么搞得好听一点,没错,这个时候我又客串DJ,研究了MP3各码率下音质和文件大小的关系,最后以专业乐评人的视角选择了一首古筝曲

    • 晕,现在为止还是只有一关呢,怎么办?我到 代码发芽 网上,写个Python脚本爬下来了所有关卡,同时邮件问作者申请授权

    • 到底是拖动棋子效果好呢,还是点击移动棋子效果好呢?我又化身PM,反反复复走最简单的一关, 十八步 ,最后确定还是点击效果好。没错,到目前为止,这个游戏我只玩通了三关,我的智商就是这样。最后我爸还解决了 横刀立马 ,我怎么也不行。

    • 发现一个重大问题,原来我一直以为只有五虎上将的,一共五横五竖十个长条棋子,突然发现有一关里面出现了魏延,我晕,再调吧

    • 又发现个问题,Android的默认sqlite模块好像没说怎么把已有的数据库集成进去,怎么办,Google吧

    Day14

    到各个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协议等等,这个真的是要基础的。

    • 最后就是毅力了。上面每个技能掌握前都会遇到大大小小的坑,考验的就是你的毅力。天下事有难易乎?为之,则难者亦易已。 共勉之。

    12 replies    2015-03-08 10:25:21 +08:00
    typcn
        1
    typcn  
       Mar 7, 2015
    我说写程序大部分时候靠 Google 还被 “知乎大神” 断章取义喷了。
    iaigcfun
        2
    iaigcfun  
       Mar 7, 2015
    zan
    hatcloud
        3
    hatcloud  
       Mar 7, 2015
    给我很大的鼓励继续学下去
    kingcos
        4
    kingcos  
       Mar 7, 2015 via Android
    有这种坚持就不错啊。。。佩服~赞~
    oimotis
        5
    oimotis  
       Mar 7, 2015
    讚!樓主很強!
    fulvaz
        6
    fulvaz  
       Mar 7, 2015
    - - 楼主6666
    Jelen
        7
    Jelen  
       Mar 7, 2015
    赞!没有楼主持之以恒的精神
    yangxin0
        8
    yangxin0  
       Mar 7, 2015
    这个也只能叫游戏软件而不是游戏
    illuz
        9
    illuz  
       Mar 7, 2015
    太神了...
    blijf
        10
    blijf  
       Mar 7, 2015 via Android
    我一关都玩不过。。。
    不过楼主给了我学习的激情
    bullettrain1433
        11
    bullettrain1433  
       Mar 7, 2015 via iPhone
    我觉得过年回去还是多陪陪爸妈吧
    iugo
        12
    iugo  
       Mar 8, 2015
    没有脚本能力. 没写过爬虫.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1134 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 18:13 · PVG 02:13 · LAX 11:13 · JFK 14:13
    ♥ Do have faith in what you're doing.