面壁者语

勤反思 戒执迷

designTest

分类:iOS

工作中遇到的需求,我在随着兴趣动手做一个给设计用的傻瓜化工具,面向人群是非geek、用Windows设计iOS界面的童鞋。

虽然我买的有Skala preview这种可以直接监视局域网内Photoshop画布的iOS设计稿预览神器,但是扛不住设计妹子拧巴着不愿升级PS,非要QQ传设计稿到我电脑上,我拖到Skala里然后还要把手机给她预览。一天被打断几十次啊有木有,摔!

不过Skala有个缺陷,似乎不能预览超出标准屏比例的设计稿,这在预览一些带有scrollView的设计稿时很不方便。自己想动手做的很大一部分原因也是因为这个。

半年没摸iOS开发,前面一天一直纠结不同View之间传值的问题,今天翻了几篇博文——比如这里——才豁然开朗。这破问题本该早早明了,在ViewController中访问和传递数据,而不是丢在View中⋯⋯去年的几个月竟然没弄明白这种基础问题。

借这个项目,在试用basecamp和testflightapp,相当好用。对basecamp长草中,一个月20刀略纠结了,相当我linode的vps的价格了。

demo写出心情大好,下一步要解决的是图片更新时的刷新问题。

20120401

分类:其他

1.我想,每一个优秀交互方式的出现,都是为了解决特定的问题。无视问题本质而直接套用,很容易画虎不成。

2.有时候责任心不是万能的,尤其是身处团队中却产生孤军奋战的感觉的时候。

3.不可抑制的想自己把自己喜欢的东西做出来。哪怕没有人用,最起码对我自己有用。最起码可以检查一下执行力,最近一两年这方面真是太差了。

4.并不是做任何项目的出发点都仅仅是为了商业价值,否则会被“商业”干扰项目使用价值。

5.需求控制/过度设计真是个大问题。

2012todo

分类:其他

按照惯例本该在元旦总结展望,但是当时还是懒了下没记下来。现在补上,为了个奔头。

  1. 学会Axure,包括素材库整理,高保真原型制作手法,以及杜绝一开始就掉进细节的老毛病;
  2. PhotoShop操作,比如画个可以入得了自己法眼的按钮什么的;
  3. 学一门后端语言;
  4. 把iUIKit做出来;
  5. 学会合理的拒绝;
  6. 入手iMac or MBP15;
  7. 头发扎起来;
  8. 偏瘦30斤变成偏瘦20斤~;
  9. 找个妹子;

UIWebView内嵌带重力感应特性的HTML5网页

分类:iOS, 前端制作

很绕的标题。这几天接到的需求,本次客户希望广告的形式有重力感应特性,具体需求其实就和指南针一个样,设备转动图片会对应偏转。由于每次的广告形式都可能不同,所以直接在iOS中用Object-C写不大现实,总不能上个广告就递交一次App审核。最终团队定下来用HTML5做成网页嵌进UIWebView方便一点。

慢慢总结,这一个月内肯定会碰到许多问题。HTML5除了新表单元素外我也没实际接触过这些新特性,这时候必须要高呼Google万岁。

10月17日

DeviceOrientationEvent,iPhone 4支持iPad 1代不支持;DeviceMotionEvent则是两种都支持。问了下对这块比较熟悉的大城小胖,说iPad 1代没有陀螺仪。这会略有些麻烦,DeviceOrientationEvent本身获取到的就是偏转角度值,直接赋值给webkitTransform的rotate即可。而DeviceMotionEvent返回的则是带有重力系数的百分数,需要做处理转化成角度,比如var alpha = Math.round(((eventData.accelerationIncludingGravity.x) / 9.81) *-90);

http://www.html5rocks.com/en/tutorials/device/orientation/devicemotionsample.html 源代码中有注释。

有个问题是,竖屏左右旋转设备对应的角度来源是alpha参数,如果不设置iPad缩屏,由竖屏转到横屏,角度来源变成了beta参数

10月18日

深深的感觉到瘸腿前端诸多不便。前几年做前端时大部分时间写CSS,为赶进度JS需求基本用JQuery插件调参数实现,原生JS没去碰,然后这半年更是没做前端了,发现现在连window绑定多个事件都要翻书了。OOP更是无从谈起。

本打算写个小App调用HTML文件,这样屏幕翻转及是否缩屏直接在系统级控制方便些。没想客户给了张样图希望明天就出个Demo,纯网页就行,只好先放弃App。开了PS一量表盘竟然不是同心圆啊我去⋯⋯算旋转中心点很是纠结了下。

开始和团队成员讨论和App端的接口问题:

  1. 判断是否禁止屏幕翻转
  2. 如果不禁止的话,四个方向对应的变量名,纯粹为了扩展考虑,比如四个方向展示四张不同的网页?
  3. 四方向是否需要单独写四个JS文件模块化操作
  4. JS和图片是放服务器上由App下载内部传递给HTML,还是直接写进HTML
第四点牵涉到离线缓存。目前的App下载的图片会保存到设备中做离线读取,但是HTML5本身有mainfest机制并且据说很快,而广告需求一般并不是动态网页,可以不考虑刷新问题。尚不明确的是UIWebView中内嵌的网页是否可以用manifest。另外mainfest需要运维同学帮忙配置MIME TYPE。
发现sofish的博客上HTML5和CSS3的有用的内容不少。
另,HTML5中判断屏幕翻转的是body的onorientationchange属性。

10月24日

瞎折腾了几天。纪录一些tips,慢慢整理

  1. iOS里的safari,也需要写CSS Reset,下午的实际经历是至少body标签有默认边距
  2. onorientationchange事件,在纯粹的HTML网页里通过iOS上的Safari浏览没问题,内嵌到App中会失效!
  3. 在viewController里的shouldAutorotateToInterfaceOrientation中设置NO,这时候通过[[UIApplication sharedApplication] statusBarOrientation]是否等于UIInterfaceOrientation已经不能正确判断方向,或者说,这时候需要判断的是设备的物理朝向,而不是屏幕方向。

10月26日

不知道是不是有过度OOP的说法,总之感觉有些方法被封装的过度了。对于Object-C这种链式import文件的代码,如果一个功能从头到尾串联的文件太多,同时各级文件里的方法都用到子级文件的实例变量做参数,那么分析代码及修改是件很头疼的事情。
基本雏形写的差不多了,事实上做到现在已经已经偏离了最初的目标,纯粹的HTML5网页做重力感应很早就实现,但是由于那些JS的问题,始终考虑是不是要用iOS内置的UIAcceleremoter来获得重力加速度参数,网页端只需要获取参数执行对应DOM动画就好。

LiveReload介绍及使用说明

分类:MAC, 工具

前几天购买TotalFinder时发现作者还是FireQuery、FireRainbow、FireLogger和XRefresh这几个Firebug插件的作者。经常写CSS的同学可能熟悉XRefresh,这个插件可以监视CSS文件,发生变动后直接刷新浏览器,从而省去手动F5刷新的步骤。这个功能相当提升效率,尤其是在双屏开发的情况下。

XRefresh的作者现在已经在官方主页上推荐使用者转用LiveReload,并声称由于TotalFinder的成功,将转型Mac软件开发,XRefresh也将停止后续开发。

LiveReload的官网上可以看到目前已经进入2.0的分支,并且暂时仅支持Mac平台,Windows版会在Mac版完工后开发。在此之前,PC用户只能继续使用1.x版

下载安装之后,进入设置界面

LiveReload设置第一步截图

LiveReload自带了Chrome和Safari上配合的插件,并且提供了无需插件的解决方案,页面中调用一段JS即可。设置好后进入下一步,添加或删除要监视的目录。添加第一个文件夹后会自动跳出详细设置:

LiveReload设置步骤三截图

可以看到LiveReload集成了一些语言支持,比如SASS这种写CSS的好物。如果用不到这些,直接默认设置全忽略即可,软件本身对CSS的监视无需设置。至此,软件部分设置全部完成,剩下的是浏览器插件的配置。

浏览器插件部分,目前软件自带的没有Firefox插件,需要自行下载。有个问题是0.6.2版本的插件并不支持Firefox 6.0.1,需要下0.6.3,在写这篇文章的时候,0.6.3还是未审核状态,但是不影响使用。

Chrome和Firefox的插件设置都只需要设置监听的IP和端口,软件默认监听端口是35729,但是并没有写进插件里面,这个需要注意设置一下,我在这个步骤卡了蛮久。

设置完成后在浏览器中点亮图标即可开始监听。目前为止对Mac平台下常用的编辑器均有支持,TextMate无需设置,Coda和Sublime Text 2会略有要求,具体可以查看官网Wiki的List of supported editors页。即使编辑器不被支持,也提供了自定义脚本的方法。

忘记F5吧,Enjoy it!

获取设备device token相关

分类:iOS

配合同事测试Push Notification,需要获得几台设备的Device Token。参照Programming Apple Push Notification Services尝试了下,陷阱无数,整理之。

一。设备第一次真机调试时,通过xcode的Add To Portal可以自动生成个叫做iOS Team Provisioning Profile: *的Profile,但是这个并不能拿来做Push Notification测试,因为不能使用任何包含通配符的Profile,需要在dev center中自建App ID,并配置开启Development Push SSL Certificate。

二、配置Development Push SSL Certificate时需要使用钥匙串工具,这时候要注意填写常用名称必须使用小写字母,因为要和xcode生成的保持一致,否则会报重复证书错误,我在这里卡了蛮久。

三、App ID删除一个就少一个啊⋯⋯⋯⋯

我的Mac软件列表

分类:MAC, 工具

#2012年4月25日更新

我会优先使用软件的官方网站作为链接,也可以到macupdate之类的地方;大多为免费软件,需购买的会注明;我的操作系统已经升级到了10.7,也就是说这些软件都支持Lion。

基础应用

sogou输入法  PC平台用谷歌拼音,MAC选很久还是用了搜狗。不爽的是内置了个皮肤切换器竟然还是单独APP,对我来说纯鸡肋的功能。

DBox (收费)下载软件,不过使用最多的是迅雷离线+浏览器自带下载。曾经用过迅雷Mac,但是很久没什么更新,不够好用。

Keka  解压缩工具,图标略重口,昆虫恐惧者绕道。

TrashMe (收费) 软件卸载工具。虽说Mac没有注册表,号称卸载程序直接删除就OK,但是还是会留下一些诸如配置文件、崩溃报告之类的垃圾文件。TrashMe就是为系统洁癖强迫症准备的。

TotalFinder(收费)换到MAC第一件觉得坑爹的事情就是没有剪切功能,TotalFinder可以实现,并且这只是诸多实用功能之一,Tab式浏览、左右分屏、快捷键显示系统隐藏文件、右键集成复制当前文件路径等等等等,非常贴心,我的Mac必备软件。
单份许可售价18$,另有3人爱心包卖36$,人均12$。一份许可允许单人多电脑使用或者多人单电脑使用,12刀买这个软件个人认为很值。
友情提醒,3人爱心包的购买流程相当反人类,入手时需留神说明。

MPlayerX  开源视频播放器,MAC下的暴风影音

Skim  PDF阅读器,可以做笔记什么的。更新异常勤快⋯⋯

iCHM CHM阅读工具

VirtualBox  虚拟机,装Windows开Fiddler、网银、IE。虽说VMware的无缝技术看上去很拉风,但是有合适替代品的情况下,尽量不用破解。

Adium  IM,集成Gtalk和MSN;如果只是用Gtalk的话,系统自带iChat不错。当然,还有人民群众喜闻乐见的QQ for Mac,也可以从App Store下载。

Cyberduck  开源FTP、SFTP客户端,内置各大云平台接口,不过对于普通用户来说大多用不到就是了。
在官方网站上可以免费下载,而Mac Store中则需要购买,区别仅仅是免费版上有一个获取捐赠码的按钮。

iSSH  你懂得。我用Chrome+switchysharp及Firefox+autoproxy的组合。

Gas Mask  图形界面修改hosts文件,可以多套配置。不过大多时候还是习惯开终端vi /etc/hosts…

Sparrow (收费) Mac下口碑巨好的Email客户端。

Reeder  (收费) Mac下巨好用的RSS阅读器。其实我相当希望作者写邮件客户端。

Divvy (收费)大屏好帮手,很轻松的改变程序窗口的大小。在公司iMac下我经常用,自己13寸的MBP出镜率则不高。

Growl  (收费) Mac的提醒软件,可以集成im软件上下线或者新消息提醒、Dropbox同步完毕等。

Dropbox,多电脑文件同步。

Favs(收费) 满足的需求很简单:把各个平台上自己账号的收藏夹的内容整理在一起。

音频没什么好推荐的,我没找到很中意的软件,目前还在用iTunes。

开发工具

iTerm2  强悍的终端扩展软件,我用的最多的特性是自定义快捷键切换呼出隐藏。

Macvim  编辑器。

TextMate (收费)编辑器。试用十分钟忍不住买了⋯⋯

TextExpander (收费)系统级的代码片段,功能很贴心,略贵。习惯用带有snippet功能的编辑器的话可以省掉这玩意

LiveReload  (收费)XRefresh替代品,改样式文件自动刷新无需F5,以及内建SCSS、LESS自动编译成CSS、自动压缩CSS等功能。Mac下前端好物

iConify 拖进去原始图片,自动生成iOS界面的不同尺寸图片。比如 abc.jpg和abc@2x.jpg。

Skala Preview (收费)iOS设计辅助神器,需要同时在iOS设备上安装对应App。在Mac上把设计稿拖到软件中,移动端可以实时预览。最逆天的是可以实时监控Photoshop里对图片的编辑操作。唯一的缺憾,目前只有标准屏预览,长设计稿不行,搞得我动手写工具了。

Sequel Pro 查看数据库的程序。it is free!还有社区力量贡献插件。

Mac内置Apache和php支持,我参照秦歌的文章自行安装了mysql和phpmyadmin,当然也有MAMP之类一键安装包备选。

Git我习惯在终端里命令行操作,查看log的话还是GUI比较直观,Github官方出的有客户端

其他

Lion 恢复磁盘助理  通过App store升级到Lion后,如需重装系统,再从10.6开始太麻烦了。Apple官方发布的这个软件可以提前制作系统恢复磁盘。

GuitarPro 6 (收费)吉他爱好者的好物,我购入的第一份超过50美刀的软件。一份许可一年内可以装在五台不同CPU的电脑上。

AppyDays  Mac、iPhone、iPad上限免和打折软件搜集。

PDF Image Extract(收费) 提取PDF中的图片,编辑同事需求很大,原价29.9美刀,通过AppyDays看到折扣价2.9刀时购入

Office for Mac不得不装,因为发现Pages对Word的兼容不是很好,而我显然不能要求BOSS或者HR换Mac⋯⋯安装的时候竟然还没有可选项,Outlook、MSN、Silver什么的都塞了进去,毕竟一般人需要的只是Word、PowerPoint、Excel。顺便说一句,PowerPoint比起Keynote弱爆了。

Adobe的东西也不得不装,只不过,和M$的Office一样,需要各显神通了。