# 为iPhone设计个完美的快推客户端

- 作者：李楠
- 发布时间：2009-08-16 09:00
- 分类：公司
- 原文：https://www.ifanr.com/3834

[by newkhonsou@twitter](http://twitter.com/newkhonsou)

App Store上的Twitter客户端恐怕要有上百款，而我需要的，其实只有两款：全功能的，和快速发推用的。

全功能的Twitter客户端[以前已经分析过了](http://www.ifanr.com/2960)。我最终的选择是Tweetie（推送通知还需要用IM+解决）。

快速发推用的，有著名的qTweeter，很酷，可惜实现机制不容于App Store，而且要常驻内存。App Store现有的快推客户端也有不少，免费的有Tweetfire,iTweetSong等，收费的有Post等，不过总是有一些令人遗憾的问题。

最后选择了iTweetSong，但还心有不甘。索性，设计一个完美的快推客户端，如果有开发者感兴趣，不妨拿去实现。既然要做成最好的，买1.99美金问题不大吧？设计包括QA对应都免费，注明设计者为KKK@[www.ifanr.com](mailto:KKK@www.ifanr.com)即可。:)

**需求分析**

作为全功能twitter客户端的补充，功能不需要全面强大，只专注于最基本的功能：发推。**只做一件事，做到最好。**

1 快速启动

快速启动是这种软件的立身之本。如果比Fon之类的全功能Twitter客户端启动慢就失去存在的意义了。

2 简洁

发推这么简单一件事，用户肯定不希望看到层层窗口。像Tweetfire的用户选择窗口不是好例子，宁可放弃这个功能。

3 字数统计

发推的最基本功能之一。

4 图推

这也是发推的最基本功能之一。

5 歌推

拿到iPod正在播放的乐曲的歌手和歌曲名并发推。对我来说很实用的功能。而且似乎也比较流行。很多全功能Twitter客户端不具备这个功能，所以是快推客户端的一个卖点（比如免费的iTweetSong，收费的TuneTweet）。

6 网页推，并缩短网址

Twitterrific和Fon有通过书签调用并发推的功能。这也是很实用的功能。在Safari上看到什么有趣的文章，如果有启动快速发推软件的机会，用户一定不会考虑更重型，更慢的Twitterrific和Fon。既然可推网页那么缩短网址功能就是必须的。

7 可离线发推

手机不会总有信号，但是用户不会在离线时就不思考。这似乎也是目前AppStore上没有软件支持的功能。大卖点！

8 发推后自动退出

Send之后，还需要按一下Home显得多余，很贴心的功能(Post已经实现)。连续发推的场合应该比较少，大不了再启动一回。当然，也可以考虑像Post那样在Setting里面加上是否自动退出的开关。

9 自动保存

打了7，80个字，然后按了Home，这些内容一定要保存住，否则用户再进来发现又要打一次，肯定很恼火。

其中高速启动（当然要真的够快），离线推都应该是独一无二的特性。通过书签发推虽然有Twitter客户端实现了，但是在快推软件中似乎还没有。这三个特性足够让AppStore上所有的快推软件甘拜下风了。

**UI**  
最主要的窗口如下图。改自Twitterrific的发推窗口。

还有一些窗口没有画，比如第一次至少蹦出个窗口让用户输入用户名和密码。选择图片什么的也需要另外的窗口。不过不需要特别设计，系统自带的UI就可以了应该。

另外配色比较单调，这个可以适当调整。（配色可以参考Twinkle的发推窗口。）

[![FastestTweeterUI](https://s3.ifanr.com/wp-content/uploads/2009/08/FastestTweeterUI_thumb.jpg "FastestTweeterUI")](https://s3.ifanr.com/wp-content/uploads/2009/08/FastestTweeterUI.jpg)

**功能**

为了讲解加了数字标记。大概功能其实应该以看就能猜出来吧。那个乐谱符号是我手画的，比较难看还请包含。:)

[![FastestTweeterUI2](https://s3.ifanr.com/wp-content/uploads/2009/08/FastestTweeterUI2_thumb.jpg "FastestTweeterUI2")](https://s3.ifanr.com/wp-content/uploads/2009/08/FastestTweeterUI2.jpg)

标记1为剩余自数表示。随输入变化而变化。

标记2显示用户名，让用户知道到底谁在发推。

标记3为状态信息显示，让用户知道软件现在的工作状态。“sending(5)”表示正在发推，队列里一共有5个推。图片添加成功等消息也可以这里表示。

标记4是输入框，不用多说。

标记5用来选择图片。

标记6用来得到当前iPod播放的音乐的名称和歌手，并自动输入在输入框中。

标记7用来缩短输入框中的网址。

标记8用来加上自己当前的地点信息。

标记9是发送并清空输入框。在线既时发送，离线则把当前推排入队列。

标记10为系统自带键盘。

不需触摸的部分(剩余自数，当前用户，和状态表示)放到了画面最上面。这样是为了腾出键盘上面的黄金位置，放那些常用的功能按钮。5个功能按钮，都安排在了整个屏幕中最好按的位置上。

唯一令我有些担心的是“Send”，他应该最常用，所以安排到了最右边。但是因为离键盘很近，所以可能有误按的问题。如果担心，可以考虑给“Send”加确认。

或者，把上面的状态栏，挪到功能按钮和键盘中间。:)

[![FastestTweeterUI3](https://s3.ifanr.com/wp-content/uploads/2009/08/FastestTweeterUI3_thumb.jpg "FastestTweeterUI3")](https://s3.ifanr.com/wp-content/uploads/2009/08/FastestTweeterUI3.jpg)

**设置**

用户名，密码，是否打开发送并推出。。。这三项足够了吧？（xpoint提醒说，这里还需要一个选项来设置API。:)）

**实现要点**

速度！！！

启动软件之后，建立网络连接，登陆Twitter都先**不要做**。先弹出输入框和键盘，让用户达到可输入的状态。

在用户打字的时候，再做连接网络，登陆Twitter等动作。(iPhone的软件是可以多线程动作的，内置的短信可以在发送时输入，Byline也可以在同步时浏览。)

同样道理，“取得当前播放歌曲信息”，“缩短网址”，还有“加入当前位置信息”这几个功能，也都不做成自动的。用户去点那些同能按钮才执行。虽然缩短网址这种东西做成自动的会显得贴心，但是为了速度还是宁可让用户多点一下吧。

发送也是，直接把当前内容排入发送队列，然后清空输入框，达到可输入的状态。（如果发送并退出被用户设置成Off的话）

**将来可追加的功能**

其实实现了以上的功能已经相当到位了。当然下面的功能也可以考虑实现，但是最好保持克制。不要忘了，这个软件的宗旨是，只做一件事，做到最好。

1 多账户

在设置里加个增加用户的选项，并且可设置当前用户。主窗口的“iFanr Tweeting”相应点击，每点一次切换一个用户。

2 mentions提示

D或者@后面如果输入字母的话，追加个列表显示并过滤Following和Follower的用户。不过技术上似乎有难度。可能必须追加窗口了。

3 离线推发送管理

可能也需要追加窗口。可以删掉未发出但是排在发送队列中的推。

4 视频推

5 Push和启动全功能Twitter功能

等等。

最后，别忘了做个好看的图标，起个一目了然的名字。。。比如：

> **FastestTweeter**。

**ps 关于离线推的补充：**

多谢@lawrencelry 和 @nAODI，他们推荐了一个可离线推的软件birdhouse。

用了一下发现，他的离线推是通过草稿实现的。如果你选择公布，没有网络仍然会报错。下次连接到网络时，你仍然需要**再次**指示birdhouse一次。

这和我所说的离线推还有不同。

我的设想是有个发推队列，只要按send，无论成功与否，先进入队列再说。离线的话队列不断增加，如果在线就一个一个发。那么send只需要指示一次就够了。

**是否在线不需要用户考虑，指示也完全没有必要多次。**用户只需要告诉软件一次，我要发这个推就够了。在网络连接正常的情况下把它发出去是软件的任务。

这里有个问题是队列中的发送出错的处理。连接超时过后重试就好了，140字已经检查过了。如果有错，应是用户名密码不正确等等，应该比较少见。所以不想为此追加发送一览和管理窗口。可以弹出个Popup对话框，说以下内容发送失败，用户可以选择“再试”或者“删除并拷贝到剪贴版”。

这个级别的实现应该仍然是独家特性吧？：）
