从小白到独立开发Android和IOS两种平台app过程与总结

16年上半年在帮老师,帮外面随便做点东西以便得到些生活费养活自己。下半年去外面公司待了一段时间,然后选择回来帮自己做个东西,历时三个月,独自完成安卓及IOS版本app的开发部分。

开发过程与问题

我之前没了解过安卓和IOS开发,一开始对整个项目也没什么概念,脑袋中只知道要做个电商app,中间就是遇到各种问题,后来一步一步的做下去解决掉。我做的是电商app。整个过程学习占了大部分时间,修复Bug,还有重构代码。三个月大多数时间都只做这三件事。

学习安卓,看郭霖的《第一行代码》,再看点极客学院的安卓视频,这是快速做东西的号搭配。《第一行代码》我看了好几遍,我买了好几本安卓书,这本写的最好,我看的最多。极客学院的安卓视频,教的很浅,但是时间短,所以可以在短时间内知道一些安卓技术,然后结合第一行代码,不同就翻阅,google就可以做东西了。
学习IOS,看小码哥的ios视频,不懂就看。ios开发的我没遇到好书,关于Objective-C的,买本Objective-C的参考书就好了。

Android开发知识点

想要做一个完整的Android app,必须要会的东西。

  • Gradle 用来对安卓项目打包编译,项目的依赖,签名配置等。一个自动构建工具 (必须)
  • Activity,Fragment,ViewPager,ToolBar,BottomBar,Recyclerview。(必须) 这些要会用,理解的越深越好 (不同的App需要的组件可能不一样,我觉得这几个大部分的app都会用到吧)
  • Android的事件机制,事件的传递拦截等。
  • 布局控件,RelativeLayout,LineerLayout。一些布局的属性都要掌握 (必须)
  • 网络通信(我用的是Volley)(必须,一般app都要和后台通信吧)
  • 自定义简单的控件 (有些内置的控件,可能无法满足需求,需要自己定制简单的控件)

个人感觉会了上面的这些东西,做出一个App一般是足够的。

Android可能遇到的问题

  • ViewGroup和View的关系,经常出现childView alredy have a parent.you need to remove it's parent first.
  • Fragment的生命周期要理解的很深才行,不要以为看了google的官方文档上面的Fragment生命周期就以为懂了,后来不断的遇到问题,专门研究下会好点。
  • 布局过程也要深入了解下, 各种wrap_content,match_parent里面是怎么回事,布局文件里面的属性到底是怎么回事,要明白。

// 额外的工具库,让app变得更加强大

  • ButterKnife,这个很好用,用于绑定视图,可以少写不少代码
  • GSON 将JSON数据转换为JAVA的模型,或将模型转换为JSON数据传输给服务器
  • EventBus 这个库说的是可以更方便的进行android组件之间的通信,可是我基本没怎么用到
  • SmartTabLayout 这个可以自己换成其他的库,用于页面滑动,增强版的ViewPager。
  • 推送通知用的阿里的云推送
  • 分享用的 ShareSDK

两个多月,知识点学到了这些。这是做出一个完整的app需要的知识点。

IOS知识点

做完了Android开发之后,学习IOS,我的建议是先不要入门直接用Swift,当初我也是新手,徘徊要选Objective-C还是Swift得时候,听说Swift是更加现代化的工业级标准语言,吸收了Python还有现代流行语言特性,学起来更简单,我就首先学习的Swift,但是新手直接用Swift会出问题的。

  • Swift2.x和Swift3.x的版本不同,虽然是小的不同,但对刚学的新手,会让新手产生迷惑
  • Xcode的版本一直在变,我按照苹果官网给出的实例敲代码都无法运行,因为苹果官网给的实例程序是基于Swfit2.x好Xcode7.2的。 仅仅是一些小的版本差异,在Xcode8上就不能用。这对新手都比较致命,直接打击自信心。
  • Swfit的库并不多,资料也不是很多,在我搜很多资料的时候,大部分都是Objective-C的,而且从书店买的书大部分都是Objective-C的,基于Swift3.x版本的书几乎没有。
  • 我在用Swift的时候无法使用阿里百川的电商SDK接口,因为百川电商SDK用的是Objective-C开发的,大公司的IOS产品都是基于Objective-C开发的。
    ...

基于以上几条,如果新手学习IOS开发,现在我的建议是先学Objective-C,虽然会多写几行代码,但是资料多,有头绪,Swift3.x的碰到了问题,资料就很少。

做出一个IOSapp需要掌握的知识点:

  • 掌握UIViewController。
  • 掌握常见的视图,几乎所有的视图都是以UI开头的,UIView,UILabel,UIButton,UIImageView,UITable,UIScrollView等等。
  • 掌握几种常见的视图创建于加载的方式。从代码创建会麻烦,可以从XIB文件创建视图,从Xib初始化视图和从代码初始化视图调用的初始化方法不同。
  • 掌握Foundation框架,几乎绝大部分代码都要用到这个框架里的东西,里面的东西就是在我们熟悉的类型前面加上NS,代表NextStep公司的意思,了解了这,记住NSString,NSArray,NSNumber等等就容易了。
  • 掌握自动布局,这个很重要,会自动布局才能在不同的手机屏幕下做适配。
  • Objective-C的语法知识,刚开始会用起来比较怪,后来就好了。

//额外的库

  • MJRefresh 表视图的增强工具
  • MJExtension 类似于Java的GSON,数据转模型的。
  • Masonry 很好用的代码自动布局库
  • AFNetworking 网络通信用的库
  • YPTabBarController 页面滑动效果用到的
  • Toast 类似于安卓的Toast,在屏幕的某个地方提示一条消息,类似于AlertView。

如果你曾先学习的是Objective-C,那么两个星期应该可以做出一个IOS app。一个星期用来学习Objective-C,一个星期用来动手写代码。

后台

我后台使用的是Laravel框架,优雅,简单。主要用了Laravel的以下几个功能

  • 掌握Request
  • 掌握Route,在路由文件里定义各种路由,由控制器处理
  • 数据库的控制部分,Laravel有ORM还有普通的数据库操作,我觉得普通的数据库操作就够了。
  • 中间件
  • Laravel的View部分,这个给非技术人员写一些页面以便非技术人员增删改查数据。这个要涉及前端了,好在我之前做过一段时间的前端。

Laravel是一个简单的优雅的后台框架,很好用,很好学。如果你的服务器用的是Nginx的话,那么还要做一些额外的配置。

整个App基本上就这么多东西,历时三个月从小白到一个人写后台,android ,ios端。创业团队……

Android与IOS对比

Android的官方文档非常全,语言只有好用的Java。IOS的缺点是Objective-C用起来很奇怪,Swift的资料又不多,苹果的官方文档又是过时的。

Android要适配多个版本的机型,刚开始app就不兼容低版本的Android app,后来7.0版本的App又有些不兼容……,而IOS的不管几s基本上没问题,除了IOS的操作系统版本变化,我只用了IOS 10的系统,其它的没用。

Android的控件很多,用起来有些麻烦,刚开始会经常崩溃,IOS的控件只有几个,但是每个控件都封装的很好,每个控件都提供了很多功能。

我觉得IOS学起来,开发起来更容易。
但Android用起来会更广泛,Java也比较通用,Android开始开源的,我觉得android做精的话,会更有趣一些。

总结

迫不得已,未毕业之际,加入一个创业团队,自己又不是科班出身,认识的搞IT的又少,只能扯开膀子自己干,学了三个月的时间,自己知识面上宽了不少,解决问题的能力强了不少,同时也意识到了一些问题。

做IT这一行,知识是学不完的,绝大部分问题都是类似的,你愿意去找总能找到问题的解决方案,但是因为绝大部分问题解决方式都类似,Google,StackOverFlow,所以自身的进步只在知识点上,解决问题就那几种方法。
知识是学不完的,知识也都是类似的,但知识的深度也是无止境的。 有句话说过:知识的广度和深度是相辅相成的,知识的广度促进你往更深的方向挖掘,知识的深度又可以让你融汇贯通到更广的领域。

现在知识点不够精是我的不足,但我不是那种蜻蜓点水到处学一点的人,我所学的东西都有做出成品出来。而且我是短时间内边学边做的。

路漫漫,东西做的不够精致,等于没做,在一个创业公司,东西做的不好,对自己也是致命的,不完完善优化……

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,519评论 25 707
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,029评论 4 62
  • 本小说讲述了一个普通少年为父报仇,而报名参加最大宗门考核只为待学成归来之日报仇雪恨。
    天天小说阅读 178评论 0 1
  • (东北行) 文/菊 松花江上花湖岸, 鱼跃花溪河畔。 鸟儿戏水 随波逐浪, 烟云浩瀚。 雁荡江天, 波涛潋滟, 浪...
    斌之志阅读 538评论 10 17
  • 感谢台风妮坦带给大家一个奉旨旷工的机会,"窃"听风雨,葛优躺的残废装在家呆了一天,完成了这本比较特别的小说。不但止...
    陳陳小鱼阅读 237评论 0 0