工作经历

来源:互联网 发布:c语言函数的递归调用 编辑:程序博客网 时间:2024/03/29 21:35
我的移动开发之路
     我的移动开发,简单说就是手持设备的软件开发,更简单的说就是手机方面的软件的开发。    
   
     从毕业到现在,做过的事情很多,截止今年2月份前,虽然多,但是确不杂,大体上都在嵌入式上开发,过了2月份,本身所涉及的技术点忽然也到了春天,开始到处发芽(发芽这个比较形象,就是不知道等到结果又是何时~)。

     嵌入式开发最大的难点就是平台的限制,所以细微至每个函数,每个50B的内存都要考虑清楚。
     期间享受了二进制的乐趣,各种内存crash的乐趣,socket的限制,所以要做一个socket manager
     底层UI的经验,现在基本上很少有人去写底层UI的代码了,从code UI framework到使用,到fix各种bug,C++技术得到了成长
     最大的成就就是用C写了个高速缓存(很多列表数据的时候使用),把内存数据直接写入文件,在从文件读取数据直接强制转成你需要的数据结构的内存,然后可以直接使用,很是爽,所以对C,我还是打心底的喜欢。

     功能机市场crash掉后:
     首先是和同事一时兴起弄了2个多月的Android,从产品需求,到原型设计,到搭建SVN,再到coding。后来由于同事工作性质变动,又去大概看了下服务器的知识点。后来这个项目不了了之,变成了公司关系好的人学android的一个demo。@林延春@张西
    android的开发过程中,先是学习了java,再了解了android相关控件,LiteSQL,HTTP,然后了解了OAuth2.0(第三方账户接入标准),做的demo基本上囊括了以上所说所有知识点。

    然后工作性质忽然变动到AIR/IOS,android就被不了了之。
    首先介绍下AIR:Adobe Integrated Runtime,可以大概理解为Adobe公司出的一个智能机的跨平台的解决方案(黑莓 + Android + IOS),当然了,AIR也可以在PC端跨平台(Windows + MacOs + TV),Runtime就是他的跨平台的运行时。Adobe公司大家可能不熟悉,但是flash大家肯定很熟悉,flash就是大家看的网页上的一些视频和网页游戏。
    花了一个星期时间学习ActionScript语言(AIR语言),学习shareObject(可以理解成聊天相关协议),学习Adobe的音视频协议rtmp/rtmfp(做视频直播以及摄像头安全监控都是很不错的选择),用adobe的标准和软件自行搭建音视频服务器,写客户端demo。期间参加了上海Adobe开发者论坛,对flash方面收获了一些,认识了Adobe AIR的中国平台技术经理James Li,后来再Air的开发中多次得到他的帮助,真的是一个很热心的人。

    再后来开始学习IOS,先是熟悉Mac Os和IOS,这个系统不错,就是娱乐性少了些,IOS平台的app/game质量远不是android可比。Mac OS + AIR的一些开发环境以及开发者配置着实让我很烦,N多乱七八糟的证书,吐槽下。
    一直到现在都专注于IOS的开发,熟悉各个控件,熟悉http,熟悉数据部分,个人还是喜欢纯代码的开发模式,xib和storeboard虽然方便,但是理解不深容易出问题,在IOS的学习中多次获得SUNX的帮助,很是谢谢他。
    一直对多线程很感兴趣,总算在IOS上用了一把。IOS core data不得不说很方便使用。kvo kvc也很不错。

    再一直以来的学习中,酷壳这个网站(CoolShell.cn)给我的知识面和眼界给予了很大的帮助,推荐各位喜欢学习的人RSS这个网站。

    至今为止,嵌入式的一些技术还大概记得,Android的也记得大概,AIR的AS语言忘记的差不多,更多的是关注于IOS开发了。移动开发的应用方面的即使积累以及平台积累逐渐开始。逐渐喜欢苹果的设计,逐渐讨厌不懂IOS app的设计原则的设计师。

我觉得:(轻拍)
一般移动开发入门的时候分以下几点:
1.对平台的掌握(大概架构的了解)
2.对平台API的掌握(界面控件 + 网络 + 数据处理/存储 + 平台特性API(nitify等) + 地图API/google/baidu(这个比较专业))
3.对网络协议的了解:目前移动开发80%都使用 http请求(GET/POST),网络数据使用json格式
4.其他:目前最通用的就是 第三方账户登录(OAuth2.0)/支付(??),第三方数据的获取(微博等)等
原创粉丝点击