客户端开发知识体系

  今天在家里吃饭时,思考到一个结论:其实不论是android app开发,ios app开发,还是mac 应用开发,pc应用开发,等等的一切,都属于c/s模式的c端。他们的开发其实需要的知识体系是一模一样的,知识是可以迁移的。如果你认为自己是一位中级的android开发工程师,我觉得你只需要2个月就可以成为一位还不错的ios工程师。

以我对android的理解,android开发需要:

1.界面呈现相关

例如view的绘制等等,支持的布局方式,动画等等。

以开发一个app为例,你要考虑这个app的页面呈现,到底使用哪种布局,用哪些控件来组织这个布局。布局的展示是否要加上动画,是从下面往上进来还是怎样的,是渐变还是移动等等。

2.用户交互

例如:事件和手势的处理、传感器、通知、事件监听

以开发一个app为例,你要考虑这个app对用户点击的响应,多层布局叠加,你要考虑到底哪个布局哪个控件响应这个点击。

3.网络调用

网络管理、推送、数据传输格式等等。作为c/s模式的client端,如果没有网络调用,这个app基本上已经没有啥意义了,作为c端,其实它主要做的事情就是去获取服务端的数据,然后展示到c端上来,或者收集c端的用户数据传递给服务端存起来。

以开发一个app为例,这个app的底层必然的都会支持网络请求,我们一般和服务端约定的数据格式是json数据交互形式。

推送对一个app来说也是必不可少的,无论你是使用第三方的推送还是自己写长连接来维持推送,都不可不说推送非常重要。即时通讯最核心的就是推送。如果你用过android手机,你肯定经常为通知栏里大量的提送通知而烦恼。如果你用过mac版的网易云音乐,你肯定会经常看到红点指示的空间更新提示。

4.存储

数据库存储、文件存储、缓存系统等

缓存对c端来说是非常重要的方式,为何有c端,b端多方便呀,我只需要做一个b端,就可以在多个平台上访问,ios、android、pc、mac都可以直接在浏览器中访问我的b端页面,而做c端,就要给每个平台都做一个客户端,耗时耗力,那为什么商业公司还是要做c端呢,就是因为c端的用户体验好,除了UI上更流畅之外,一个重要的原因就是缓存,c端如果使用了缓存,就不会受网络的影响,并且体验上还相对比较好。你就知道对于c端来说缓存的重要性了吧。

5.进程、线程

也不是c端独特的地方,c端,s端的开发可能都需要这个知识。

6.多媒体相关

多媒体的播放、录制相关
以开发一个app为例,如果你用到了一些多媒体相关的功能,比如视频播放、语音播放等等,你就需要考虑这块,其实这块对客户端并不具备独特性,你做web开发也是需要这块知识的。

以上以android为例,其实客户端开发无非都是这几块知识。去提升自己的思考层次,对知识理解的深度会改变你的大脑回路。

你可能感兴趣的:(客户端开发知识体系)