美文网首页程序人生编程Android资料
从一个安卓小白到第一个APP

从一个安卓小白到第一个APP

作者: 帅气小伙 | 来源:发表于2016-05-02 09:13 被阅读6259次

    作为简书的首文,这一篇文章必须真实经历,讲一讲自己是怎么从一个小白到做出一个完整的APP,并发布的经历。

    一次装X的讨论:

          在一次团队讨论中,我提出了一个很好的想法,做一个眼科病患社区的APP,旨在加强医生与患者之间的沟通和交流,这里的患者都是医生曾经的病人。就是这么一个简单的APP。怪就怪自己,B装大了,讲得太好了,团队的成员个个都踊跃地提出自己想做的部分。

          ”我做后台,数据要什么格式“

          ”我做IOS,我最近刚装了黑苹果“

          ”我做APP的设计图吧,来点新鲜的“

          ”我做网页前端吧,这是我的长项“

            卧槽,这帮同学,都把自己熟悉的,擅长的都抢了,剩下一个Android端了,然而剩我一个了。没办法,”自己装的B,怎么都要说:‘我可以的’ “。没学过Java(学的是C#),更不懂A呢Android。我都不知道我哪来的勇气。故事就是这么开始的。

    我真的可以。

          讨论结束后,我自己一个人走在会宿舍的路上,我一直在想:”我真的可以吗?这是零基础,做不出来是不是很没面子啊。“,相信很多人想入门Android开发的人都有过这样的想法,认为自己没基础,入门会很困难。但是我的老师曾经跟我说:”做任何事情,光想是解决不了任何问题,动手才能去真正地去思考“。暴力一点讲:”能动手尽量别BB“。我这个人就是这样”雷厉风行“- -。当天晚上就下载了“某某博客Android快速入门视频教程全集.ZIP”。我当时根本就没想过要去看Java相关的书和视频,因为我学的是C#,我觉得他们都是相似的。

    用成就掩盖无知,获得前进的动力:

        看完了Android的四大组件之后,我感觉到了无聊,然后就去睡觉了。我喜欢这样,遇到烦心的事情就去睡觉,毕竟四大组件的内容太多了,第一次接触这些完全不熟悉的东西,一时接受不了,感觉自己什么都不会而且有不知道自己该怎么去动手,看着视频中的老师,敲代码的架势。总是在YY,自己什么时候也像他们一样。这属于典型的“编程挫败感”。

         面对这样的挫败感,睡觉只是让自己冷静下来,真正战胜“编程挫败”,那当然是用成就感去战胜它。

         1.用一个精美的布局,赢回自己的自信。Android是MVC的架构,所以做界面并不需要写太多的逻辑代码就能装出一个好B。我当时模仿的是QQ空间的布局。一定要真机调试(截屏)。边做边发朋友圈,对!就是要这么装。渐渐的你就会觉得有动力了。

         2.获得是最有成就感的。如果你觉得仅仅做一层什么都没有的界面,满足不了你(卧槽,你想怎样),那做个能动的,然后发朋友圈,这个B必须装啊。我当时做的是一个简单的天气预报。获取数据+界面显示。界面当然没问题,朋友圈的赞不是自己点的- -。然而是我太天真,在做数据获取的时候,我居然不会写代码,是一行都不会写,Java如何Get都不会写。万恶的HttpUrlConnect。我又再次陷入了这个“编程挫败”。

         3.用别人的成就来满足自己。没办法,自己没学过Java,也不懂Android,写代码必然懵逼。其实一开始不会写,没关系的。于是我又想起了一句经典:“熟读唐诗三百首,不会作诗也会吟”。(卧槽,我居然那么有文化),暴力一点讲:“兄弟可不可以借你的作业来抄一下”。我呸!是参考一下。编程就是这样子,你要学习别人的代码才能生产自己的。有相当长的一段时间我都是这样子的。机智的我,在网上一搜:“Android http请求获取数据”。呵呵,Ctrl+C结合Ctrl+V,这样就写了200行代码,真爽。

        4.享受孤独的调试过程,这才是真正的成就。看着这200行代码,然后写了一条输出语句,run!心里暗爽,成功就去吃宵夜!“你的XXXdemo运行已停止”,闪退!直接懵逼了。看着那些红色的Logcat。我又陷入了“编程挫败”,老规矩,睡觉。但是我睡不着,我似乎感觉到了,我已经离入门不远了,必须学会调试。对于广大的新手来说,看到Logcat懵逼的大有人在。我用一句话总结这个技巧:“找到你认识的那几行,就是出错的地方”。简单不!

        终于,在这1,2,3,4步的反复循环中,我做好了第一个自认为很好的天气预报,朋友圈都被我炸爆了。此时,我收到了同学的警告:“能不能有点新鲜的,每天都是这个”。友谊的小船。。这种评论你能忍吗,然后我给他回了一个“哦”。显然,不能有点成就就发朋友圈了,来点高端的。

    用第三方SDK,铸就装B的城墙

        一次偶然的机会,我看到了我舍友手机的一个天气预报APP,然后我就打开了自己做的APP。卧槽我的太Low了,功能也简单,界面也丑。顿时明白了朋友圈的唾弃。没办法,自己又不会做。那怎么办?别忘记了,上面说过的"用别人的成就来满足自己"。机智如我,然后我就找到了百度地图的SDK,分享的SDK。你懂的,根据当前的定位获取天气信息。至于为什么要做分享,不要问我为什么,一切为了装B。方便发朋友圈啊。“大神,说一下集成的套路吧。“,朕!准了。

          1.到官网注册开发者,很简单,QQ登陆就好了。

          2.创建应用获取AppId,写代码的时候要用的。

          3.下载官方Demo,最好原封不动地拿过来。

    只要3步高大上的功能就实现了,暗爽。然后一条朋友圈底部还有个"来自XXX应用",瞬间觉得自己要上天了。

    用开源类库,拯救烂代码

          像我这么帅的人,必须给团队的小伙伴晒一下啊。然后我们开会了,这必须是一个装B的好时刻。在交流的过程中。

          IOS的同学问我:“你们Android是用什么库的,我们IOS的库很强大的。我在GitHub看到了很多,但是不会用”

          瞬间懵逼啊,什么库,什么GItHub,我都没听过。然后我是这么回答他的:“一开始初学,我想自己写,这样提高会快一点。”

          IOS的同学:”哦“。(程序猿~~)

          会议结束后,我问了度娘,GitHub是谁(不知道的可以去问问),也问了度娘,Android有什么库。我顿时觉得自己要上天了,我看到了另外一个不同的世界,开源社区!这里是一群前辈,一大波优秀代码,一堆类库。我好像看到了什么”20行代码实现Http get操作“。200和20的区别,我没忍住,直接就点进去了,折腾了一晚上。呵呵,我成功了。从这一刻起,我接受了一种新的思维——开源。

          相信这对于很多新手来说都是个疑惑,自己写还是用别人呢?我的看法是,如何你想提高,那就用别人的。我认为:“学习是从模仿开始的“。开源类库是必须会用的,它将会减少很多你写的烂代码。一下是一些常用而且简单暴力的类库,希望你喜欢。

    1.slidemenu--->侧滑

    2.android async http ---->网络加载库

    3.Universal_Image_Loader---->图片加载框架

    4.viewpager indicator---->页面切换指示器

    5.SwipeRefreshLayout--->下拉刷新控件

    6.fastjson---->json解析库

    用开源项目,让开发更简单

         3个月后,第一个天气预报的Demo做好了,功能还是很简单,因为用了第三方类库,代码也很少,看Apk的大小,根本拿不出手啊,于是我开始思考如何才能做功能更多,界面更炫的APP。Github,我自从认识了它,都是找他拿代码的。我找来了一堆的完整项目APP的源代码。开始从这些项目中拿更多的代码。当然了拿之前的工作也是困难的,因为导入项目也会遇到很多的问题。如何解决导入的问题,在后续的文章会说。下面说一下如何在更多的源项目中获取你想要的东西。 

          查:找一个大型的项目,例如微信的仿品(凡信),导入你的eclipes(一定要用这个)。然后运行。再看图片。

          删:把一个个界面的图片删掉,看哪里打叉。这样就找到了位置,顺藤摸瓜,了解整个项目。       改:在原来的项目改代码,看效果。

          移:把这个项目某一个模块移到你的项目中去,并让它正常运行。

          增:在这个新建项目上加上你的元素吧。

          这是奴才为皇上准备的菜。

         1.Android心情驿站源码(仿QQ空间)

         2.Android凡信源码(仿微信)

        3.Android仿今日头条源码

        4.https://github.com/android-cn/android-open-project-analysis

    用这些拿来的菜,做满汉全席

         很久没发朋友圈了,对啊2个月过去了,因为我已经觉得这些微不足道的成就已经不能让我获得成就感了,逼格上来了。我开始把一些开源项目的代码粘到了自己的项目,但是结果只有一个,乱,代码没有模块化,重复代码多,关键是没注释。那么如何去规整这些拿来的代码,让你的项目更加有活力呢?

          1.命名规范,这个是最关键的,整个项目必须有统一的命名规则。

          2.多用文件夹区分不同功能模块,也要有命名规范

          3.合理运用设计模式,Android的设计模式是MVC,但是有一种趋势是MVP,合理运行设计模式会让项目代码更加舒服,更加有规律。这是更高级的了。

    上线前的优化

         ”做了这么久的APP,过几天就上线了“,我的朋友圈- -。这种时刻必须来一发啊。App上线前其实是有很多工作要做的,下面列举一些必须做的。

           1.应用内存优化,具体怎么做,后续文章会更。

           2.Apk瘦身,对于我们引入的图片资源,可以适当压缩,甚至去掉,对于类库,可以找更加轻量的替代。

           3.Android多屏适配,这个东西没办法必须面对,不过有很多解决方案可以在网上找到。

           4.Android兼容性测试,可以用第三方的测试平台,例如Testin云测试。

           5.代码混淆(我自己都没做,不能告诉你)

    上线完成后的感受

         在一个软件开发不怎么活跃的学校(医学院),我始终感到无比的孤独,因为什么事情都是自己独立思考,独立解决。在这个过程是痛苦的,煎熬的。怎么样才能让自己在这个过程中感到快乐呢?分享,是最好的方法。说说你最近解决的问题。如果找不到人,那就写在纸上。面对面是最好的,因为你可以感到无比的成就感。我庆幸的是大学遇到几个好朋友一起交流。

          开发者总是追求完美的,开发者总是要经历过千万次人格分裂去思考用户那些蠢得不行的行为。甚至每天都在感慨,大兄弟你怎么这么笨。哎!其实这是非常正常的,开发者和用户只能相互协调,开发者永远都是向用户妥协的一方。当你决定你就是一名开发者的时候,请记住,需求分析你要比项目经理还要清楚,否则到时候测试的时候,你可能会想砍死帮你测试的人。

          当你想成为一名开发者的时候,请记住,程序并不是我们要开发的,我们要开发的是产品。产品无程序最大的区别在于产品面向的是宇宙最笨的人(客户),产品不是你一个人说了算。因此要成为开发者必须学会交流和沟通。不然闭门造车永远都是做不出让人满意的产品。

          当你觉得你似乎具有超强的开发能力的时候,兴致满满地想去做开发,找各种项目去做,去提高自己的开发能力。但是你觉得你开发能力强的时候,请去看看外面的世界,你实现的功能,人家是如何去实现的,人家的性能怎样。人家的架构怎样,人家的设计怎样。其实当你觉得你开发能力强的时候,只能说明你入门了,而此时你要去做的是提高,不是去做你熟悉的东西,而是一些非常酷炫的新鲜玩意,新技术,你从来没用到过的东西。IT行业就是这样的,开发者要去不断学习才能不被淘汰。对比其实也是一种很好的学习方法。

    这是一个装X的故事

           这是我的装X故事,希望能给大家启发,我没有看太多的书,这都是我自己的感悟,开发不是简简单单地看几本高级编程就能做好的,它是需要思考,总结,交流,沟通才能去做的。我怀着一颗赤诚的心去追求着我的目标,我享受着孤独的喜悦。

    这是我的首发啊,处女作啊,要不要鼓励一下的(*^__^*) 嘻嘻……

    相关文章

      网友评论

      • 你家鹏大大:不错不错。独自学习是挺痛苦的。但同时也是一个成长的过程。
      • 不欺少年穷:作者这是真的吗?小白也能学编码吗?
      • jiangbingo:共勉哒
      • lilyxs:师姐溜达一下,帅气小伙加油
      • 6c69c70c4cae:楼主厉害啊!求加下qq
      • 苏易川:哈哈,赞
      • WangChloe:每次说好的团队合作都是自己撑起一片天,孤独感。
        帅气小伙:@WangChloe 在大学的所谓的团队合作,只不过是谈一谈而已,一句实现不了,最后还是得你来做
      • a9084f71531b:楼主加好友一起装逼啊
        a9084f71531b:@日月歌 🤓加了
        帅气小伙: @日月歌 823894716 Q
      • cdf7be87930a:楼主6666让我自愧不如😂😂😂😂
      • _ming_ming:请问,怎么申请不了百度地图sdk
      • 向日葵的笑:看过最搞笑的技术性文章。不错哟
      • MeEcho:享受开源!维护开源!
      • 4588e4274830:亮了,竟然不知道github
        帅气小伙:@代码描绘人生 这样才能够吸引人评论啊,都是套路 :grin:
      • Sundial丶Dreams:从错别字中可以看出你激动地内心,加油,但是以后写完文章之后一定要雕琢下自己的写的东西。
        帅气小伙:@Sunshine丶 首发,而且不是专业语文不好,见谅,以后会注意的。
      • 饕餮潴:我也刚写完第一个app 哈哈 一会也开始动手写 :blush:
        饕餮潴:@帅气小伙 并没有偶那个文采 :blush:
        帅气小伙:@饕餮潴 希望你上头版 :grin:
      • hongjay:写的不错,很装逼。。
      • neolu:这X装的可以,给你99分,那1分怕你傲娇
      • 1ef8e6a45b9f:作为android老司机,推荐一本书,《Android从入门到转行》
      • Clamber:代码看累了,逛简书看到,还真是提神醒脑 :joy:
      • d43cee10d28c:好厉害(((o(*゚▽゚*)o)))加油!頑張れ!
      • 张琦琦:装×引领时尚,小师弟我会向着师哥学习的~ :blush:
        帅气小伙: @张琦琦 😭😭😭😭
        张琦琦:@帅气小伙 想女孩想疯了吧 - -# 都说了我是师弟了。还乱想 :disappointed_relieved:
        帅气小伙: @张琦琦 你是哪位师姐。。
      • 西兰花星:我觉得学习就是不断发现问题,思考如何解决问题,解决问题中成长的
      • 西兰花星:写得不错哟
      • CrazyYong:图片加载的话可以用一下Glide库,效果会更好点哦。
        帅气小伙: @奔跑的迷糊虫 猴,最近准备写一篇关于美女图片加载的文章
      • d010a1238c4b:说得好,深受鼓励,加油!
      • 05251f68802b:打赏就算了,给你点个赞
        帅气小伙:@上节课 开个玩笑啦,感谢你的支持
        05251f68802b:@上节课 翻就翻,〔白眼〕
        帅气小伙:@上节课 友谊的小船说翻就翻 :unamused:
      • 4f327c36f388:请问如何将github上的项目导入eclipse中。
        帅气小伙: @王少123 as现在比较主流了,傻瓜式编程,不懂android api也没关系,代码提示很全,插件很多,希望你满意。
        4f327c36f388: @帅气小伙 @帅气小伙 那一定要下载as吗
        帅气小伙:@王少123 分2种项目,有Android studio和eclipse的。如何你看到了gradle的文件那大概是Android studio的,用Android studio打开;如果没有直接就可以下载导入eclipse了。不过导入后可能会用很多错误。
      • 总感觉自己不是很认真:这两天也在看Android开发,感觉漫漫长征路啊~作者赞~
        帅气小伙:@总感觉自己不是很认真 像我一样从一个天气预报开始做,推荐你看一下 Api store,拿免费的API做练习 :grin:
      • 无言无痕:我也是学的c#,可是我学的很烂😢向你看齐
      • 字芽:赞
      • seay:我也是.NET开发的,虽然有JAVA基础,但是很久没用过了,也没学过Android,更没做过Android项目。去年的时候大胆的帮别人维护一段时间Android项目,感觉其实都不是事儿。
        seay:@帅气小伙 有编程基础,看看代码理解起来很快,所以很快就能上手了
        帅气小伙:@SeayXu Learn by doing。好样的大兄弟 :smile:
      • 7231cc3e0f80:跟我现在的状态差不多,共勉
      • 笨笨飞:厉害
      • _後知後觉_:让我感觉,有必要对着编程冲动一次了
      • 小生姓杨:受益良多
      • 9734fd8ebd07:毅力真的可以!
      • HelloNOW:必须赞。。。加油
      • 程序媛不可爱:最后不应该是app推广链接么····差评···不安套路出牌
        帅气小伙:@iphantom 那你要看看我另外一篇文章了《反编译看看简书长什么样》,我怎么敢放上来,我怕被攻击 :grin:
      • 042a0e1be73f:医生会提倡眼科病人玩手机?
      • Oct1a:兄弟,必须关注你下
      • 初九你好:有心赞扬 无从表达 :+1:
      • 新欣enjoy:继续努力。
      • 古古有灵:不错,有机会可以交流交流。
      • 全科:写的不错啊。。。老司机佩服
      • pro_cookies:是iOS不是IOS
        帅气小伙:@pro_cookies 我错了果粉。
      • 86392313a3d6:处女座居然有写错别字🙄
        86392313a3d6: @帅气小伙 会 宿舍的路上 回😂
        帅气小伙:@迷路的鹿 哪里啊,写得比较激动,没注意看 T T
      • JamesLiuquan:对我有一定的激励啊,必须顶一个
      • 死訫惪呐喊:够暴力
        死訫惪呐喊: @帅气小伙 看着的额
        帅气小伙:@死訫惪呐喊 以后还有更暴力的
      • funnyzhao:大兄弟,你这毅力不错嘛。
      • WeiJie_zZ:哈哈,棒棒哒,想不到啊
      • 蛋包饭加蛋黄酱:内心戏丰富のboy
      • 2349d1825e3b:哈哈哈棒!:heartbeat:

      本文标题:从一个安卓小白到第一个APP

      本文链接:https://www.haomeiwen.com/subject/wuhlrttx.html