iOS APP开发的一些小心得

 

        作为一名java开发,就因为我有mac本,我们老大就让我去开发一个库,说好的不难,半个月的工作量,年前提到的,让有时间看一下swift语言,我的目标特别高远,想以后做架构师,而架构师的知识面要宽,所以我觉得我熟悉一下这个语言也还行,所以就接了。我们公司都是java,我是单独开发,所以自己踩了很多坑,也是很宝贵的经验。和大家分享一下。

        项目要做的是IM,仿照微信的聊天功能和界面,后端连公司自己的服务端。

        首先做的就是从年前就着手准备的学习资料,我找了最新的swift开发的书籍,关东升写的《iOS开发指南》,这本书比较新,当时在网上买不到,专门去书店原价买的。在慕课网上下载了最新的视频,当时是swift2.0。由于swift2.0的资料比较多,和老大商量了一下,他也支持用2.0。然后我就开始了视频学习,利用每天上下班在路上的时间看的。年后回来,上一个项目结束,有几天空闲时间,就开始安装XCode,对着开发指南敲代码。老大提前给指了几点,界面部分不用自己写,去GitHub上下载现成的用,很多库使用Object-c写的,要学会swift和Object-c之间的调用。

       中间又穿插了做了其他的java工作。空余时间就开始iOS 的开发。现在主要讲目前遇到的两个坑。

       一、建立通信,公司后端规定用websocket,数据用json。我上网百度了websocket的swift的经验贴(http://blog.csdn.net/q849340003/article/details/44651029),就照着写下去了。websokcet用的StarScream库,json用的SwiftyJson库。使用CocoaPod导入到现有程序中。但是当写完之后,发现我的能建立链接,不能收发消息。后来用websocket在线测试(参考)试了一下,发现可以和在线测试正常通信收发消息。写这个在线测试的大牛很热心,在网页上留了联系方式,就加了qq问了一下,提供了websocket的通信的头的设置参数。然后我这边设置好了之后,果然可以用了,但是iOS app发送到公司后台的信息,后台能接收并正确解析,后台发过来的消息iOS app不能解析,报异常就断开连接了。对于这个问题,我试了换iOS的websocket库,连其他人的服务端,都没起作用,StarScream等库的官方文档也没有对这种现象的解释。后来翻墙到国外网站,用google到了答案,原因是这个库的版本低,我用的版本不能支持通信协议头中一项设置。具体解决办法:http://blog.csdn.net/gghh2015/article/details/72636629

       二、json格式解析。通信的消息要抽象成模型,规范不容易出错,用起来方便。但是这个模型的数据结构,我想到了三种,类、结构体、字典。字典用起来每次都要写key的值,很容易出错。类和结构体就看哪种更容易转为json了,iOS的基础知识太薄,查起来比较乱,就去QQ开发群问,热心网友们告诉我要用结构体。然后我报了自己的swift版本,大家纷纷表示我用3.0版本。

       结合之前通讯遇到的问题,觉得版本低带来的坑确实很坑,在加上现在写的代码还不多。就决定用swift3.0了。现在准备升级Xcode版本,在学一下swift3.0和2.0的区别。然而现在又有了新的java工作。这个iOS库的开发就用空闲时间做了。

       感悟很深的几点:像Swift这种新生语言,要用新版本,新版本意味着修复了很多老版本中的问题。有问题要查,要去国外的网站,国内的资料少,而且更新慢。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值