客户端开发设计总结

【公告】关于开启用户注册及登录手机短信验证的通知       CSDN日报20170412 ——《程序员该如何定位?看这四大方向》       博客搬家,有礼相送
 

客户端开发设计总结

标签: 客户端开发架构设计
  1634人阅读  评论(0)  收藏  举报
  分类:
Android(18)    iOS(58) 

目录(?)[+]

1 基础设施

程序最基本的处理就是数据IO以及为了并行计算所做的操作,它们通常会作为程序的底层框架,供上层使用。

客户端开发设计总结_第1张图片

2 交互

从PC到现在的移动设备还有VR,人机交互中的输入设备在不断自然化,可是展示界面的元素仍然还是这几种:静态文本、按钮、列表、输入框、选择菜单、进度提示、滚动条、标签页。每种UI框架都提供这些基本组件,可以说掌握它们就等于对这个框架入门了。高级的交互会跨越窗口、跨越程序,并能更智能化地响应输入。

客户端开发设计总结_第2张图片

3 硬件设备

PC上的硬件大都需要通过统一的接口来操作,开发者需要做好繁复的参数设置才能正确使用。移动系统则对很多硬件做了封装,为开发者提供定制的简单API。有时候开发者并不需要直接操控硬件,但需要获取硬件的信息,根据可用的资源数来执行不同的策略。

客户端开发设计总结_第3张图片

4 程序设计

现在的程序流行快速迭代,没过几天就发布一个新版本。新的app还要越快上线越好,尽早占据制高点。如此匆忙的节奏,让传统软件的架构设计退居二线,程序往往都是技术债务多到影响开发速度或新功能才执行大的重构优化。不过我们至少可以提前根据功能分出一些模块,让后面的重构稍微轻松些。

客户端开发设计总结_第4张图片

5 后勤

如果说需求开发是前线,那么产品经理无暇关心的东西都算后勤了。这部分工作需要技术经理主导来开展。对程序员来说这部分工作可能没那么刺激,但却是深入学习系统和各种工具原理的好机会。

客户端开发设计总结_第5张图片

6 其它

关于编程语言、开发工具、操作系统的总结在这: 
http://blog.csdn.net/hursing/article/details/45603483

7 一些感想

客户端开发有界面,能图形化反馈编程结果,所以比服务器端开发更“刺激”一些。因为和操作系统紧密结合,知识具有针对性,所以即使是做UI也比做前端的难度大些。

现在做移动开发其实和当年做Windows程序没有差别,只是系统比较新且更新快,文档多数是英文的,又少有中文图书积累,所以门槛稍高。再过几年当供过于求,应该会回归编程平台这一基础属性,不再带有什么光环。

客户端开发的尽头就是熟悉了所有的API。然而API在演变,还得继续跟随。Windows的API多到没人能完全记住或用过,但三年前的iOS是可以的,现在也不行了,苹果在不断地添加。看Android,到现在已经演化了24个版本,很难去跟踪了。

无论哪种系统,不断有API被标记为Deprecated,也有部分在新操作系统上不可用,需要在代码里判断操作系统版本或SDK的版本。这些历史,对新手来说直接就是不知道。随着人员也跟着更新换代,更多人就忘了,于是文档成了这种混乱的救命稻草,会查文档真的非常重要。

如果让我编制一个学习路径,应该是这样的:

  1. 编程语言,代码规范,格式化工具
  2. IDE环境,快捷键
  3. UI框架,学会查SDK文档,掌握文档的整体结构
  4. 网络、磁盘等IO
  5. 更多系统SDK的模块
  6. 调试技巧
  7. 工程文件组织,命令行操作
  8. 流行的第三方库
  9. 打包,自动化
  10. 测试方法、工具、自动化
  11. 优化方法
  12. 学习系统原理
  13. 反编译,hack
  14. 发布渠道和流程 
    • 官方:Google Play、Apple Store
    • 厂商:小米、华为、魅族、vivo、oppo……
    • 第三方商店: 豌豆荚、PP助手、安卓市场……
    • 渠道:友盟+……
  15. 写博客总结。像这样 http://blog.csdn.net/hursing

有空再写写调试和优化总结吧。

2
0
 
 

我的同类文章

Android(18)  iOS(58)
  • ViewPager实现Recycle机制和响应notifyDataSetChanged2017-01-10阅读178
  • boost::asio的http client应用笔记2015-07-09阅读5877
  • boost全平台编译方法2015-06-11阅读21170
  • Windows SublimeText内使用NDK编译Android so(不用cygwin)2014-11-19阅读3173
  • 在Android上玩google-breakpad(崩溃日志收集)2014-07-03阅读13659
  • HTTP(S)网络框架的设计2016-08-15阅读1896
  • 跨平台客户端开发经验总结2015-09-22阅读3869
  • libevent2笔记(linux、windows、android的编译)2015-02-26阅读4178
  • Android4.4系统浏览器Chromium实现的加载模块与流程2014-08-21阅读6454
  • Android程序内存占用检测2014-05-24阅读5449
更多文章

我的更多文章
跨平台客户端开发经验总结 (2015-09-22 16:25:21)

参考知识库

Android知识库

12872关注|1500收录

大型网站架构知识库

1949关注|532收录

Swift知识库

1904关注|393收录

微信开发知识库

6512关注|500收录

猜你在找
老郭全套iOS开发课程【UI技术】 Struts2架构设计之路 自主编写Web开发框架 微信公众平台架构设计及微信开发样式库 智能硬件开发环境的搭建-《智能硬件开发系列课程第1部分》 IoT硬件开发公开课:从开发板到无人机之实践之道
CMPP20 SP 端开发设计思路 Windows2000 服务器端应用程序开发设计指南-事件记录 Windows2000 服务器端应用程序开发设计指南-附录A Microsoft Windows 2000 服务器端应用程序开发设计指南 王立平--android项目的开发设计思路自己总结的仅供参考
查看评论

  暂无评论

发表评论
  • 用 户 名:
  • zhouhangzooo
  • 评论内容:
  •   
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
核心技术类目
全部主题  Hadoop  AWS  移动游戏  Java  Android  iOS  Swift  智能硬件  Docker  OpenStack VPN  Spark  ERP  IE10  Eclipse  CRM  JavaScript  数据库  Ubuntu  NFC  WAP  jQuery BI  HTML5  Spring  Apache  .NET  API  HTML  SDK  IIS  Fedora  XML  LBS  Unity Splashtop  UML  components  Windows Mobile  Rails  QEMU  KDE  Cassandra  CloudStack FTC  coremail  OPhone  CouchBase  云计算  iOS6  Rackspace  Web App  SpringSide  Maemo Compuware  大数据  aptech  Perl  Tornado  Ruby  Hibernate  ThinkPHP  HBase  Pure  Solr Angular  Cloud Foundry  Redis  Scala  Django  Bootstrap
  • 个人资料
客户端开发设计总结_第6张图片 
hursing
 
4
  • 访问:847873次
  • 积分:8665
  • 等级: 
  • 排名:第1869名
  • 原创:123篇
  • 转载:0篇
  • 译文:0篇
  • 评论:399条
  • 联系方式
  • email: 
[email protected]
weibo: @hursing
微信:hursing
  • 博客专栏
客户端开发设计总结_第7张图片 WebKit on iOS

文章:32篇

阅读:226121
IDA反汇编/反编译静态分析iOS模拟器程序

文章:12篇

阅读:110895
xcode反汇编调试iOS模拟器程序

文章:10篇

阅读:61024
  • 文章分类
  • iOS(59)
  • WebKit/Chromium(41)
  • 反汇编/反编译(18)
  • 管理(15)
  • 读书笔记(7)
  • Android(19)
  • Linux/Shell(18)
  • 测试(3)
  • 文章存档
2017年01月 (1) 2016年09月 (3) 2016年08月 (2) 2015年12月 (1) 2015年09月 (1)
展开
  • 阅读排行
  • 网页在Safari快速滚动和回弹的原理: -webkit-overflow-scrolling : touch;的实现(62398)
  • Android Canvas drawText实现中文垂直居中(45735)
  • SPDY、HTTP/2、QUIC协议(43124)
  • IDA反汇编/反编译静态分析iOS模拟器程序(八)IDA for Mac(22229)
  • boost全平台编译方法(21252)
  • Ubuntu+Nginx+PHP的最简搭建方法(18742)
  • Xcode4.6创建和使用iOS的dylib动态库(18397)
  • Linux配置Apache2的经验总结(18259)
  • 非计算机类专业毕业生五年程序员职业生涯的回顾和思考(16105)
  • 利用Objective-C运行时hook函数的三种方法(14645)
  • 评论排行
  • 非计算机类专业毕业生五年程序员职业生涯的回顾和思考(56)
  • 利用javascript和canvas获取UIWebView网页里的图片(不用再下载)(40)
  • Xcode4.6创建和使用iOS的dylib动态库(28)
  • boost全平台编译方法(21)
  • IDA反汇编/反编译静态分析iOS模拟器程序(八)IDA for Mac(17)
  • iOS的QuickTime Plugin(16)
  • Xcode3创建和使用iOS的dylib动态库(14)
  • IDA反汇编/反编译静态分析iOS模拟器程序(五)F5反编译(12)
  • 如何优化程序员的内部培训(11)
  • Android Canvas drawText实现中文垂直居中(11)
  • 最新评论
  • Mac上命令行获取iPhone/iPad的Identifier(UUID) 的方法

    zzl4511: Ipad 如何查看uuidhttp://www.51ask.org/question/203

  • 跨平台客户端开发经验总结

    hinong: 身体被掏空

  • xcode反汇编调试iOS模拟器程序(五)调试objc_msgSend函数

    hursing: @sinat_33368284:现在都用反汇编手段研究系统了。调试是用来解崩溃的,但现在的app崩溃...

  • xcode反汇编调试iOS模拟器程序(五)调试objc_msgSend函数

    arderbud: @hursing: 感谢回复,很期待你关于调试方面的文章,网上关于调试方面的资料确实少

  • xcode反汇编调试iOS模拟器程序(五)调试objc_msgSend函数

    hursing: @sinat_33368284:64位化后我还没反汇编调试过,工作内容和以前不同了。近期在用swif...

  • xcode反汇编调试iOS模拟器程序(五)调试objc_msgSend函数

    arderbud: (2假如对象不为nil 从开始会进入到: 0x~...

  • xcode反汇编调试iOS模拟器程序(五)调试objc_msgSend函数

    arderbud: 你好: 关于ojbc_msgSend的实现 由于不会调试现在64位的Xcode,只能...

  • 如何优化程序员的内部培训

    gaoyuqiang30: 文章写的真好!受教了!

  • 超简单的短网址php实现

    qita2009: 这个不错

  • 非计算机类专业毕业生五年程序员职业生涯的回顾和思考

    innovatethinking: @JAVA2010CZP:高中大学也都是文科的路过。。。一个对技术很痴迷即将毕业处于找工作迷茫期的法...

  • 推荐文章
    • * 【《Real-Time Rendering 3rd》 提炼总结】(一) 全书知识点总览
    • * CSDN日报20170409 ——《扯蛋的密码规则》
    • * Shader2D: 一些2D效果的Shader实现
    • * 一个屌丝程序猿的人生(六十一)
    • * 自定义控件三部曲视图篇(三)——瀑布流容器WaterFallLayout实现
    • * 面向服务的体系架构(SOA)—架构篇

你可能感兴趣的:(【Android_设计图】)