滚动条(scrollbars)是窗口中常用的一种控制窗口内容的用户界面。这种滚动条有两个作用,其一是告诉用户目前所看内容的的位置,其二是提供一个界面,可以让用户控制位置。通常,第二个功能是通过鼠标来进行的。
在苹果以iOS操作系统的移动设备中,鼠标无法使用,手触为主要控制的方式;另外一方面,由于移动设备的界面比较小,苹果的操作系统设计师将滚动条变为一种动态的显示:仅在最初窗口出现和手触滑动的情况下,滚动条才会出现。因为用手触滑动的方式可以非常方便地改变内容位置,滚动条的第二个功能就基本上没有存在的意义了。这种改变,即滚动条的自动消失,可以增加窗口显示内容的最大面积。
苹果从操作系统上作出的这种改变,在iOS设备上取得了非常好的效果,用户界面更为简洁。在此成功的基础之上,苹果进一步将这种简洁的界面移植到苹果电脑之上,苹果推出的新的鼠标和触板都可以用来很方便地控制窗口的内容。
但是,这毕竟是一种新的改变,对于许多习惯传统窗口方式的用户来说,最初看到苹果的窗口,由于滚动条迅速消失,如果不留意,并不意识到窗口所显示的内容也许仅仅只是一个局部,还以为所看的内容就是全部的内容。由于滚动条的消失,用户即使点击边上的滚动条位置,也无法激活滚动条。因此,对于苹果的用户来说,这需要有一个学习新功能的过程,好在这个学习过程只需要片刻就可以迅速掌握:在窗口的内部用双指触滑动就可以看到滚动条和内容的移动。
苹果从操作系统改变这种滚动条的功能,对于采用苹果平台编写的软件来说,编写程序员不需编写特殊的编码,苹果的用户窗口元自动支持这种功能。
但是,我最近遇到一些特殊的应用软件,由于我看不到滚动条,也无法通过苹果新的触板来激活滚动条,我最初不知该如何改变窗口内容的位置。比如说,我经常采用网络浏览器上以Java为基础的RDC(Remote Desktop Connection)来连接到远程微软的窗口进行一些工作,这些Java的用户界面是以传统窗口为基础设计的,目前还不支持双指触滑动的功能。这是一个典型不同操作系统界面的困境。比如下面的窗口,我很清除地知道窗口后面的最下面有启动(Start)的菜单,但是我无法滑动动到最下面。
不过我很快发现了解决的方法。第一种方式是利用山狮操作操作的改变窗口大小的功能,在任何一边拽动一点点,动态的滚动条就会出现片刻。利用这一间隙,可以用鼠标来拉动出现的滚动条,从而改变内容的位置。
但是,如果窗口的大小不能够改变,这种方法就不行了。第二种方式是改变滚动条的显示方式。山狮的系统设置增加了一种可以让滚动条总是显示的设置,采用这种设置,这样就可以改变窗口内容的位置了。
不过,让动态滚动条总是出现在窗口界面,采用这种传统的方式,就好像回到恐龙的原始时代,窗口真是有些不雅呀!因此我改变这种的设置都是暂时的使用。
Saturday, August 25, 2012
Sunday, August 12, 2012
苹果操作系统的更新:山狮
上个周末,我将我的苹果电脑都更新到最新的操作系统:Mountain Lion(中文为山狮)。山狮正式推出的时间是2012年7月25日,我等了一段时间,根据网络上许多用户的消息,了解到基本上没有负面的消息,并收集了许多用户和专家的推荐经验,于是我利用一周末的时间开始了更新。现在我的苹果山狮更新运行了一个多礼拜,运行起来十分稳定,我验证了过去所使用的软件和功能都没有受到影响,我对山狮的一些新的功能进行了探索和使用,目前的经历十分满意。
在此,我记录我这次更新的要点,供我的朋友和苹果爱好者们参考。
安装之前,应该做好充分地准备:
- 查询和进行所有的更新,确认系统没有任何问题。这可以通过Disk Utility来进行,但采用Disk Utility检查系统硬盘时,最好是按住Option键重新启动,启动之后从系统的菜单中使用Disk Utility来检查。
- 清除不必要的东西,如垃圾桶的内容,还有许多系统和软件的Cache。我采用Onyx软件对系统进行彻底地清洁。
- 备份系统。我采用的是苹果的Time Machine。有人建议再加另外备份的方式,我冒险没有这样做。
山狮的更新软件是通过苹果店下载进行的,软件空间占用大小为4.3GB。我有数台电脑需要更新,但我不希望每次更新都通过网上下载,一是下载的速度毕竟比当地拷贝慢,而且浪费网络资源。再者,如果将来需要,可以用安装的软件装一个USB紧急启动盘,因此我在下载之后并没有急于安装。根据许多用户经验,如果下载之后继续完成安装过程,山狮的安装软件将会自动被删除。
这是下载之后的第一个安装屏幕:
然后从Finder中找到山狮的安装软件,将此软件作一拷贝备份。
下面是安装过程的步骤,非常简单,这里不必进行说明:
输入系统用户名和密码:
准备重新启动
启动之后,我无法用截屏方式,因此用我的手机照相:
安装过程大约需要半个小时。之后山狮的更新完毕。登陆之后,系统要求输入iCloud的帐户名和密码,这是山狮的一个重要的可选项:云服务功能。
我的第一台电脑安装成功之后,经过一天测试,我认为没有任何问题。于是我又对另外一台电脑进行了更新。这次我不必再次下载软件,我通过我的局部网络和苹果的“空降”功能,将我备份的软件拷贝到另一台电脑。
首先在另一台电脑的Finder,打开AirDrop。然后回到我的新山狮电脑,也从Finder打开AirDrop,这时我可以看见另外的电脑。将山狮的安装备份拉至另外的电脑AirDrop中,点击Send按钮:
转到接收端电脑,点击接受存盘文件按钮:
接着重复进行上面的安装过程。这样我的两台电脑都更新为最新的山狮操作系统了。
根据苹果的购买政策,一次$19.99购买的软件可以多次安装到多台电脑上。
其它博文
Friday, August 3, 2012
WWDC2012的学习笔记(3)
今天完成了所有WWDC 2012视频讲座,一共111集,相当于一百一十一个小时的视频。在过去的一个半月的时间里,我是利用工作之余的午间休息,晚上和周末的时间学习了这些技术讲座。其中有许多非常精彩的内容,虽然很少部分的内容很深,我并不是完全明白,但是还是非常值得了解。通过学习,可以说在技术方面了解了苹果的最新技术,这对于我来说是十分重要的。
下面的博文是我前一段时间写的学习笔记。我目前所写的笔记只是前面的两个序列,400和700序列,700序列还没有写完。后面还有200序列Essentials(42集),500序列Graphics, Media, and Games(24集),300序列App Services(11集),600序列Safari and Web(6集)。估计我的笔记只能止步于700系列。
WWDC 2012视频的第700系列主要是介绍核心的操作系统:Core OS,我现在已经进入200系列,但是我尽量补上我看完这些技术讲座之后的大概内容笔记和我的心得体会。通过这些技术内容可以为软件开发人员提供最新的技术,并且由此可以从更深的层次窥视苹果操作系统的发展。
从2010年以来,我学习了所有的WWDC视频,这对于我了解苹果软件开发技术有十分重大的帮助作用,通过这些学习,我可以了解什么是苹果推荐的最新技术和编写软件的技巧,这些视频为我在学习苹果软件开发技术方面提供了一种规范大纲的作用,从中我也十分高兴地看到苹果在核心技术和软件开发支持方面提供范围更为广泛和编码更为便利的支持。
705 Advanced Core Bluetooth
本讲座介绍苹果核心蓝牙技术的高级内容。苹果对蓝牙技术的支持起始于iOS 5和OS X(10.7),在iOS 6又提供了许多新的支持。
本讲座重点是app方面的设计。蓝牙是一种server<-->client的结构。根据蓝牙的规范,苹果在支持的api方面提供许多新的支持,讲座介绍了iOS 5和iOS 6相应的classes:server & client的classes, 数据classes, 已经helper classes。
蓝牙设备是server,这也包括了苹果设备(电脑和iPhone),client一般是app。从client角度,苹果工程师介绍了三个简单步骤:
- Discover:接受server发出的Ad信号,软件可以由选择性对某些clients感兴趣
- Explorer:探索server的内容,比如有关健康的软件可能只对有心脏跳动信息感兴趣
- Interact:互动,如果发现到自己知道的client,开始进行数据交流
讲座介绍了三种再连接方式,浏览发现和连接;采用UUID连接;已经连接。其中采用UUID的方式最为迅速、平稳和连续,不需用户介入。
从操作系统iOS方面来说,iOS提供许多底层的背后服务(backgrounded app),这次介绍了苹果提供新的支持服务。
从server角度,讲座介绍了三个基本步骤或要做的工作:
- Build Tree:建立自己的树数据结构和内容
- Publish and Advertise:公开发出广告信息
- Handle Requests:处理请求
最后介绍了有关使用蓝牙技术技巧。在示例中,演示了一个相互交流用户数据的例子,两个手机在近距离内,迅速交流了名字,就像给对方递交了一张名片。这个例子正好说明利用蓝牙技术传输小量数据的范例。示范软件在server一端通过点击屏幕显示名片的方式开始发出Ad信号,另一手机立刻在接受状态下得到信息,结果显示同样的名片,真酷!
蓝牙低能技术最适合近距离于传输小量数据,不适用于传输文件或图像。
706 Netwoking Best Practices
本讲座介绍有关网络技术的编程技巧。
首先大概介绍了网络通讯的基本概念:影响网络通讯的两大因素为宽带(bandwidth)和迟缓性(Latency);网络通讯协议:TCP, HTTP;苹果提供网络通讯的基本平台和API。
CFSocketStream用于TCP通讯;在iOS 6增加了手机通讯功能,如在Wifi没有的情况下自动转为手机通讯,在Wifi出现情况下自动取消手机通讯,以及迅速发现手机信号。
NSInputStream & NSOutputStream是高一层api支持。
NSURLConnection用于HTTP & HTTPS支持。
WebKit是网络支持的最好API。
接着介绍了移动设备的通讯特点,通讯方式会随时变化,采用不同方式保持通讯会影响到电池和用户的时间(使用成本)。因此在写软件时要考虑这些因素,采用cache数据的技术,请求数据时考虑到数据大小和内容,避免请求不必要的数据。
最后介绍了debug的一些技巧:OS X和iOS设备上如何debug的技巧。
707 Simplify Networking with Bonjour
本讲座介绍了苹果的Bonjour网络通讯技术。在过去WWDC,苹果工程师都有该内容的介绍,这次讲座也不例外。从这些讲座内容上,可以看到苹果十几年前推出的这一技术,开始在各个方面得到越来越多的广泛应用。
Bonjour是苹果在2002年推出的一套局部网络零设置技术。这种技术通过动态自动设置网络交流地址的方式,免除了需要用户设置各种网络连接参数的困扰(如地址和接口号等)。
讲座介绍了这一技术基本概念,如名字的三个基本部分:用户可以看见的名字,服务类型协议名,域名。服务类型协议名长度为15个字符,服务类型可以通过IANA(Internet Assigned Numbers Authority互联网网号码分配局)管理。
苹果推出这一技术的考量是解决网络通讯的许多技术难题,提高网络通讯的效率、可靠性、省能源性和方便性。
讲座介绍了苹果为Bonjour提供的API和设计结构,这种结构是建立在server与client的基础之上。
- Server流程:通过NSNetService或CFSockeRef注册,然后publish;
- Client流程:通过NSNetServiceBrowser浏览搜索,这些服务搜索到之后,让用户选择一种服务,连接之后通过NSInputStream & NSOutputStream发出请求。
- Server流程:通过NSInputSteam & NSOutputStream接受请求
- Server & Client通讯交流:通过NSInputSream & NSOutputSteam交流数据。
讲座就以上内容进行了讲解和说明,并有编码示例。
在技巧方面,推荐使用GCD进行网络之间的搜索和通讯交流,以及如何存储Services。由于Bonjour是建立在动态连接技术之上,即使最基本的连接仍然是TCP方式,但是不要储存IP和Port,储存{Name, Type, Domain}信息。
708 The Accelerate Framework
本讲座是由苹果矩阵与数据组的工程师Luke Chang介绍苹果的Accelerate Framework,即加速计算平台,这是一个数学计算库的软件包,这一平台的最大特点是高速和省能源。对于iOS来说,这是非常重要的,通过这一平台,可以进行非常复杂的数据计算和处理,如:
- 数据信号处理
- 图像处理
- 线性代数计算
- 模糊数学计算等
由于苹果产品是硬件和软件全部设计,因此这些数据库可以充分利用硬件的特殊功能和快速宽道传输,从而大大提高计算的速度。Chang举例一些基本的数学计算,采用AF库function比用C语言写的计算可以提高近十倍,而能源只是1/8。
使用AF的优点:
- 拥有2000APIs
- 这些库都是经过测试验证,非常精确
- 这些库都是采用最优化的硬件编码,速度快,省能源
- OS X & iOS都有支持,编写的程序可以在两种平台上使用
- 数据库可以解决免除写陈沉长复杂的C程序困扰
Chang说,在苹果店中,最受欢迎的软件十中有九都采用了AF。Chang说AF的秘密是苹果的工程师充分利用硬件的各种优势,并且在汇编语言上进行了大量的优化,还有采用了GCD的技术,并充分利用多计算芯片计算能力。
在举出例子中,Chang解释了省能源的道理,虽然AF的实际计算所用的能源比C程序略高一点,但是运行的速度非常快,而C程序运行的时间长,因此从总的耗电情况来说,AF具有省能源的明显优点。
讲座介绍了如何在Xcode中使用AF:在project中选择和加入Accelerate.framework,然后在使用的程序文件中加入
#include <Accelerate/Accelerate.h>
讲演中介绍了几个数据库的使用,虽然十分简练,但是这些还是比较专业人员使用的数学计算内容。讲演还介绍了图像处理数学库的使用和示范。其中图像处理的速度是一般C程序的150倍以上。
参考
- 苹果开发者视频网站:Watch and Learn from Apple Engineers
- iTunes的链接:Developer on iTunes (with HD and SD vedios)
- WWDC 2012的学习笔记(2)
- WWDC 2012的学习笔记(4)
其它博文
Subscribe to:
Posts (Atom)