V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
memorybox
V2EX  ›  分享创造

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

  •  3
     
  •   memorybox · 2015-03-07 09:34:40 +08:00 · 1539 次点击
    这是一个创建于 3352 天前的主题,其中的信息可能已经有所发展或是发生改变。

    安卓市场下载:

    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 条回复    2015-03-08 10:25:21 +08:00
    typcn
        1
    typcn  
       2015-03-07 09:54:56 +08:00
    我说写程序大部分时候靠 Google 还被 “知乎大神” 断章取义喷了。
    armysheng
        2
    armysheng  
       2015-03-07 10:00:16 +08:00
    zan
    hatcloud
        3
    hatcloud  
       2015-03-07 10:00:44 +08:00
    给我很大的鼓励继续学下去
    kingcos
        4
    kingcos  
       2015-03-07 10:31:16 +08:00 via Android
    有这种坚持就不错啊。。。佩服~赞~
    oimotis
        5
    oimotis  
       2015-03-07 10:39:43 +08:00
    讚!樓主很強!
    fulvaz
        6
    fulvaz  
       2015-03-07 10:47:22 +08:00
    - - 楼主6666
    Jelen
        7
    Jelen  
       2015-03-07 11:42:46 +08:00
    赞!没有楼主持之以恒的精神
    yangxin0
        8
    yangxin0  
       2015-03-07 11:55:37 +08:00
    这个也只能叫游戏软件而不是游戏
    illuz
        9
    illuz  
       2015-03-07 12:03:29 +08:00
    太神了...
    blijf
        10
    blijf  
       2015-03-07 18:44:31 +08:00 via Android
    我一关都玩不过。。。
    不过楼主给了我学习的激情
    bullettrain1433
        11
    bullettrain1433  
       2015-03-07 23:18:55 +08:00 via iPhone
    我觉得过年回去还是多陪陪爸妈吧
    iugo
        12
    iugo  
       2015-03-08 10:25:21 +08:00
    没有脚本能力. 没写过爬虫.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3158 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:19 · PVG 21:19 · LAX 06:19 · JFK 09:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.