SailfishOS SDK那点事儿……

最近有个基友提到因为手机拍摄效果太差所以要任性换一台,结果最后买了台数码相机……

我其实不是条那么任性的蜥蜴(头一次用这自称感觉这么别扭呢),但是看他这种每次任性的结果除了不买就是抛开我们所有的意见买别的这种恼人的行为,心情突然就变得激动起来了。反正手里这台三星也太老了,虽然我很喜欢翻盖,干脆顺便换一台。

由于某些外在原因,我急需一台支持WCDMA最好有FDD的机器,但是看了一下,除了三棒子和鬼畜水果(这么一说真是好久没听Bad♂Apple了呢)、各种耍猴的国产机、不怎么耍猴的四下巴、没落的贵族Lumia之外,好像真的没什么可选项了。

我是条向来不跟随的蜥蜴(也许习惯了就好了),而且对于手机没什么特殊要求:有QQ、支持SOCKS5即可。所以I AM 1%倒是可以考虑一下的。

但是,转念一想,可以考虑一台We are UNLIKE的Jolla然后就I AM LESS THAN 1‰了呢。这多好,拿出去没人认识,还能时不时嘲讽一下:

“哟,你这机器不是极简设计么,怎么正面还那么大一个物理按键?好丑哦。”

“哟,你这机器怎么这么多虚拟按键,还这么多下巴,好丑哦。”

“哟,你每天早餐煎蛋都用它吧?”

“不服换个电池啊?”

“不服换个背壳啊?”

So far so good,果断去下单一台带Aloe蓝The Other Half的。这种比BlackBerry还小众的机器我猜都没人会去造假,所以老放(shang)心了。


然后发现Sailfish OS的App用Qt开发……想起曾经年少轻狂装了Qt打算开发.sisx结果半途而废了。

一股诺记的回忆扑面而来,感觉眼角有一台5230划过,掉在地上砸穿了两层楼板……

SDK只有七百多兆,其实就是Mer的SDK加Sailfish OS的虚拟机。至于Mer,就是Meego被抛弃之后的开源项目,Meego的一个fork,似乎也吸取了Tizen的一些技术,纯种Linux,比某个纯种Linux的Java虚拟机应该强多了?

开发简单的Sailfish OS App只需要QML+Javascript,就像WPF里直接用XAML+你熟悉的.net语言似的。Sailfish OS的界面SDK称作Sailfish Silica,制作界面非常简单,就跟写XAML差不多,而且更为通俗易懂。而简单的程序逻辑用纯JS可以搞定,所以说市面上随便抓一个程序猿看看Documentation都可以写旗鱼的app……更何况还可以用C++呢。


纠结的事儿就在此时发生了:SDK比较新,Silica的文档很旧……

而Sailfish OS网站改版,Wiki也不翼而飞了,谷歌一下真的是什么都没有

这就真的叫什么都没有了。

所以说,关于旗鱼的Application Cover,一点有用的信息都找不到,总之就是:Cover组件已经不能用了,考虑直接在Coverpage.qml里用CoverBackground里面套CoverPlaceholder吧。

还有就是,想读取一下本地存储简直麻烦到爆:大家都知道C++读个文件有多麻烦,而这时候和QML交互又得connect……而直接可用的JS又没有什么文件I/O的本事。所以最简单的方式就变成了用xhr(XML HTTP request)以HTTP请求的方式读取。这时候问题就出现了,虽说QML里各种教程都说直接用相对路径就搞定读取了,但这个xhr里一定要用Qt.resolvedUrl(“相对路径”)这种形式……

根本就没人说过啊!我调试到快砸键盘的时候居然猜出来了……(然后用JS来parse一个JSON真是行云流水一样啊)

我这种菜鸟程序猿(程序蜥蜴?)就做了个Hello World级别的简单app就碰到这么蛋疼的问题,可想而知专业程序猿每天一定都是在痛苦中度过的吧……


接下来就是实机测试了,估计签合同之前机器能到手,倒是不用着急。我都闲到把Ambiance Wallpaper画好了。

这两天在模拟器里用鼠标划来划去感觉特过瘾,结合之前玩N9的经验,Jolla应该不会让我失望的吧。

而且装个Dalvik就能跑apk了,应用也不是事儿。

有一点有趣的地方就是Jolla的网站扔在亚马逊云的西雅图机房,所以我猜系统更新也是扔在那儿的,然后吧,西海岸这么个黄金地段,外加亚马逊有首年免费试用这种情况,你们都应该懂一般情况下这个机房都被某些人拿来做什么了。所以时不时丢包或者connection reset都很常见,所以各种地方都说用电信和移动的网络很难更新系统。

当然我是不在意这事情的。

毕竟LOTC的页面顶端就有一些奇怪的链接不是吗

嘿嘿。

 

 

 

分享到: