Jabby - 鸡脱壳

最近没怎么写博客, 长草啦, 来更新下. 这半个月在忙什么呢, 是这个: soasme/jabby

这是什么

iOS Gtalk 客户端. 准确来说, 是Hangout. Google 这货已经把它改名了. 但是情感上来说, 还是喜欢叫他 Gtalk.

为什么要写

一天从梦中醒来, 发现用了几年的 IMO 客户端不能登录 GTalk 了. 这让我觉得很愤怒. 因为此前并没有看到通知, 知道后觉得很震惊.

转而寻找替代App. 然而, 没有找到喜欢的. 有的Bug太多, 有的界面太糙, 官家的Hangout客户端要连VPN才能用, 很麻烦.

怒而自己写.

丰衣足食.

学到了什么

很基本的 iOS 的开发技巧/Debug, 会用上称心的第三方库. 当然, 很多Bug不会调, 这个很丢人啊. 最近一直在用这个客户端, 界面满意.

拿去卖?

不会操作…随手看了篇 拿去卖怎么这么麻烦啊. 而且, 图标什么的太糙, 不好意思拿出去卖. 也有一些逻辑调不好, 特别龊.

项目手记

  • 3.6 第一次写iOS app, 心里还有些小期待. 用了下cocoapods, 将XMPPFramework设为了依赖, 随手拖拖故事板, 熟悉了下Xcode. 虽然不会object-c语法, 但是看起来还挺(hen)简(duo)单(keng)的样子.
  • 3.7 第一次接触delegate的概念, 加载出了在线的好友.
  • 3.8 调出了聊天界面, 可以收发信息了.
  • 3.9 意外断开网络可以重连, 重构代码抽象出聊天中心的概念, 将逻辑与View分离.
  • 3.10 第一次用CoreData, 看起来很不好用的样子, 勉强把聊天记录保存下来, 每次打开与某人聊天界面时可以看到之前的聊天记录. 暂定20条.
  • 3.11 收到消息时可以推倒系统提醒上.
  • 3.12 Apple developer enroll! 部署到真机上. 刚好升级了7.1, 所以Xcode也必须升级到5.1才能部署, 下载等了很久. Anyway, 晚上回家时已经可以使用 Jabby 与 @ainesmile 聊天了.
  • 3.13 App 变为 inactive 时也能收到提醒.
  • 3.14 App 在初始时/验证账号失败时可以弹出登录页进行登录操作. 但是注销账号及账号安全尚未考虑到. 使用花名册(Roster)加载出了所有好友.
  • 3.15 清理了这几天的垃圾. 代码数量骤减. 好友列表想分为online与offline
  • 3.16 好友列表分为Online与Offline, 上下线可以实时看到, 刷新状态会发生在刚进入应用/上下线/回到列表页时. 试图加强重连的强度. 实际用起来总觉得会被杀掉.
  • 3.17 开始调UI, 使用FlatUIKit & FlatUI. 一些细节值得关注, 比如改顶部电池信号的颜色什么的. 早晨上班前调好了登录, 晚上 @ainesmile 在旁边玩 threes 不亦乐乎, 很辛苦终于调出来稍微满意一些的好友列表页, 回家加了默认头像, 码完收工. 明天想做一个自己的聊天界面, 现在用的这个风格不搭, 臭虫也多.
  • 3.18 调研重连的原理, iOS 常用的设计模式.
  • 3.19 重构 Model & View 的消息交互, 通过Notification实现.
  • 3.20 终于把登录移到AppDelegate了.
  • 3.21 将JSMessagesViewController设为Pod依赖, 混合FlatUI适配下聊天界面. 终于抽空看了下property, protocol, interface, delegate都是些啥东西 - -#
  • 3.22 调好聊天界面了. 所有的信息统一到一个类. 整合了抽屉目录(MMDrawerController).
  • 3.23 将左侧抽屉目录用作当前活跃的会话, 可以在任意界面呼出抽屉并切换到与此人的聊天界面; 增加了注销功能; 找到下拉刷新的库(EGOTableViewPullRefresh) , 不过用起来有点不顺手, 高度有问题.
  • 3.24 调好下拉刷新了(还是有点小Bug, 加载完最后一格消息超出边界了
  • 3.25 将TSMessage Reachability 设为Pod依赖, 调了下网络变更/连接成功失败时的提醒.
  • 3.26 调整注销逻辑
  • 3.27 设计App Icon原型

上班前下班后写的, 每天时间大概能投入1-2小时. 周六能写很多, 周日不能写多少.

ps. 感谢小鬼, 用它头像暂时当了一阵子默认头像, 心情好的时候设计下这个APP的UI部分.

Screenshot2 Screenshot1 LaunchIcon

接下来干什么

嗯, 暂时可能会有一些小改动, 但是已经够用, 满足了我的初衷. 打个65分.

但是干啥呢, 还没想好. 书堆又堆起来了, 有几本还没看掉.