开发杂谈#
---
创建日期: 2014-12-13
---
有一些小点,总是想抽出时间完善然后独立成文,可是看来总悬着不是事,而且内容也都不多,还是来个大杂烩,收了吧。为什么不用Hashare?呵呵( ̄▽ ̄)"
Multi-UI/Lang/Platform……#
|
创建: 2014-12-13
想要做跨平台的APP,为了新的Hashare能被更多人用到。 C#/WP/VS也算是接触了,现在要开发安卓和iOS的应用吗,Java/Android/Android Studio和Swift/iOS/Xcode,且不说用的起不,也不说各平台间的API如何,光是新语言和新编程环境,就够我折腾一段的了。
搜索到了Xamarin,说是使用C#开发原生的Android&iOS应用,心动是心动,最后没装上。先来看看一些可能性。
其实语言应该是互通的,有库与编译器(我不是太懂), C/PHP/Javascript/Perl(选了几个奇特的语言啊)都是可以开发程序的,只要有SDK, 当然比如C#的Lamda支持貌似不是很随便。
可是现在用C#开发Android,命名空间还是和WP一样? 如何映射?最后生成的是Java的字节码?还是MSIL,那么就要有个虚拟机来解释程序,而且虚拟机的效果还得和原虚拟机的相同。
创建: 2014-12-14
UI就没什么行不行的了,理论上,只要够灵活开放,Android也可以有MetroUI (吐槽,Android的不是很多iOS的界面嘛)。 只是说官方有些默认的控件,推荐统一的风格。
平台,应该指的是接口吧,我也忘了要说什么。 或者是能够在平板与手机通用的界面?
我们想要的: C#可以开发WP,也可以使用相同接口(代码完全不变,虽然是不可能的)开发iOS的应用; 可以在不变代码的情况下,是原生的iOS风格,或者是WP风格。
其实就是想,用已知的东西,不变的代码,开发不同平台的,或相同或不同的UI,应用。
以前对于编程语言也是有这种想法: 用A语言,调用B语言写的库; 用A的语法,写B的程序,最后生成的代码和原生B编写的一样。 之类的吧,现在也忘了当时的分类。
创建: 2014-12-30
其实上面是我一直没弄清楚的地方。 比如PHP,调用PHP写的函数库,是PEAR,而调用C写的扩展,是PECL。 那么如果用PHP语法,编译成C代码,成为Native程序。或者反过来。
用.NET编写的Python解释器IronPython,用Python的语法,能够调用.NET的库。 那么CPython要怎么调用IronPython生成的程序呢? IronPython怎么调用CPython的库? C#调用IronPython的程序?
创建: 2014-12-19
VS 2015,传闻是要能跨平台开发Android应用,不过又说是借助Xamarin,到底怎样不知道。 而且.NET之前已经开源了,这个的深远意义不知,对于跨平台开发会不会有帮助? 但愿吧,事情总是越来越好,能不能把握就看自己了。
创建: 2014-12-27
也曾希望一次编写,到处运行。 这也是当初Java的理念,我没开发过,个人感觉不太现实,只是有些设备功能不具备。 另外呢,布局也会是个问题,这个还算小。
微软的策略感觉上是一次编写,到处编译,至少感觉不需要改动太多。 Universal App,我也不太清楚,有些功能手机就是没有怎么办? 而且安装包是只有一个吗?不会很大吗?不会浪费空间吗?
我一直没明白为什么C是跨平台的语言,标准接口的意思? 也是一次编写,到处编译? 倒是脚本类的语言跨平台,Javascript,呃,越来越好吧。
HTML与APP#
|
创建: 2014-12-16
早在几年前,乔帮主就曾……抱歉,那是和Flash,不关APP的事……
什么历史的就算了,我不熟。 HTML最大的优势,跨平台,这也是标准的优势,只要是浏览器就要遵循的标准。 但是又有个标准版本的问题,一些网页在低端的浏览器上就显示有问题,所以也不是万能的。
而APP就不同了,低功能,抱歉,根本就安装不了,自然……当然,就也跨不了啦。 抱歉,胡说八道了。
现在的网页,做得越来越像应用,至少说明这是一个完善的结构,从简单到复杂都能实现。
问题是,在我的手机上,真的不是很快,那种卡顿的感觉,不太好。
我以前很讨厌这种应用类的网页,觉得网页像文本一样就行,我更多在乎信息的表现结构层次。 当然界面还是要稍微好看点,就是那种“3G”网页。 (感觉上就是顺序而下的,像文章的浏览方式,美化下界面,不要标签切换/隐藏……你在说什么?)
又跑题了,网页的兼容性也是需要通过各种手段掩盖。
回到正题上,网页本身需要浏览器解释,速度自然不会比应用快,不同于应用将一些资源存储在本地,网页也需要加载更多内容(不过现在有缓存)。
之前说了,很多网页做得像应用一样,加入很多Bar(顶部、底部), 本身浏览器的导航就有(我喜欢留着), 再加上手机按钮,那种3层结构也是够有趣的。(有的应用也是不按照官方设计规范,参考iOS导致双层结构)
在使用习惯上,手机会喜欢用后退键 (好吧,都是iOS的坏头,什么后退按左上角,没有返回键,顺便,Android有的按钮在上面,有的在下面), 网页设计的都是考虑iOS用户,我后退就回到之前的网页了。
网页与浏览器之间“键位冲突”的比较多,很多应用上的手势(缩放、滑动、长按),浏览器有自己的命令,可能就覆盖了网页的效果,或者反之。 桌面网页的这些问题较少,因为桌面通常不会去按后退键。 有些开发者不知道怎么想的,桌面网站也做成移动的风格,大屏幕,结果就一列。
随着标准被更多支持,HTML能做的事更多,性能上的问题会被硬件弥补(不是我的硬件)。 对于跨平台来说,吸引力很大(这也是我,想做个WP应用却没人能用的苦恼)。 更新是随时的。能够满足轻量级的使用需求,有些应用用网页完全可以,他们也是闲的。
当然,我这里指的更多是移动网页,桌面上,看着那些Web Office,WTF!
附加吐槽,有些网页做Metro风格,以为上个方块就是了吗?
创建: 2014-12-21
今天遇到了,想起要说什么。
网页想要复制应用的体验,很多手势操作(在屏幕上滑来滑去), 在网页中就碰到了滚动条,相对运动嘛,结果就渣了。
我也不知道其它手机浏览器是怎么情况,谁知道iOS上是不是效果不赖。 这也是前面提到的“键位冲突”问题。
其它#
|
标题: WAI
创建: 2014-12-21
我用的是WP,也挺喜欢的,感觉更像手机。 Windows的触摸手势都挺好的,就是没市场,我也挺好奇。
Android,像是移动端的XP吧,功能丰富,权限开放(其实我没开发过,不知道)。 移动的操作系统个人觉得不同于桌面的,简单,安全比较好。 Android我是感觉驾驭不了,那为什么有信心驾驭桌面系统呢?我也不清楚。
感觉如果我要了解Android,一定想把它用在控制上,可惜不会。 Android有官方应用市场,可是在国内嘛。我还是比较喜欢官方的,所以在移动端更喜欢iOS、WP这种。
iOS“反人类”已经吐槽了,没后退。 Android,我也不知道现在的UI是怎样的,印象中各种可能的命令(上头、下方、长按、滑动),这个不太喜欢。
应用的沙箱机制iOS和WP类似吧,感觉也更适合移动的系统。
WP总是推动态磁贴,其实也是坑,信息没看全就过了,还不如点进去。 而且点进去也不会跳转到点击时的内容。 只是这种呼吸效果挺好。
标题: 信息显示
创建: 2014-12-21
我只是说信息,人的脑袋是怎么存储的呢?信息只是很自然就出来啦,有布局存在吗?
书籍的排版,是不能更改的,不能更改的东西,类似官方,我都能接受。 手机的屏幕小,显示效果能正常阅读,文本加图片,就好了。
其实有时候就当纯的文本,足够把信息传递。 但是有的时候没有结构层次,如果使用适当的标记,倒也是个不错的选择(不要用空格当标记,鬼知道有几个)。 看看GITHUB貌似MD就算一种,不知道是不是已经成标准了,我的Blog就存为标记的文本。
其实上面都是希望能够在多个简单设备上显示,比如低端手机浏览、Kindle浏览。 另外,有的时候也希望打印在纸张上的效果不是简单的页面缩放,纸张上的时候,交互没有,需要信息。
HTML最初也是很简单的信息显示,有很多的语义标签。 很多时候,大可不使用语义标签,而通过修改格式达到同样的排版,但这总是不好的。 可能对于眼睛,文本格式会起到语义的作用,而有些发音软件却无法识别,对于不能用眼睛看信息的人,就很不好。
所以怎样才是一个好的网页,很简单,在不同设备上都能良好显示信息。 桌面大屏浏览器布局优雅,小屏移动设备上简洁明了,低端设备、电子书上、任意大小的纸张上信息完整不混乱、又能考虑到语义帮助发音软件。
Blog的文章都是顺序的,没有其它因素好干扰。有的时候想更关注文字信息,就选择把多媒体信息隐藏。 顺便说一个,在书本上,经常有引用哪个公式,总要翻到前面去,而HTML可以跳转,却要离开原来的内容, 所以Blog开始的时候把所有资源都隐藏,在需要的时候选择显示,结果却更添麻烦。
说到书籍,其实文档该怎么标记呢? 除去多媒体不说,最终内容,修改历史,甚至有些地方是多人共同编辑的,如何保留这些信息? 都很是问题。哟,GITHUB。
没人会喜欢白纸黑字,排版的存在也会方便阅读,只是有些地方,更喜欢文字,能够自适应调节,信息才是最终的目的。
标题: 不同大小分辨率
创建: 2014-12-23
先是分辨率吧,电脑程序貌似以前没什么这种问题,都会根据窗口大小调整布局。 网页可能从以前小分辨率到宽屏,严格控制像素,导致显示的时候就剩中间窄窄的。
而往小分辨率走呢?到了手机上,移动设备尺寸小,仍然使用桌面的方案,看不清, 也不适合桌面那种布局(很多内容布满窗口,移动则偏靠滚动和导航,我乱说的)。
Win8中的侧边栏也是一种窄视。 窄视以内容为主,简单直观。 我也挺好奇竖直的多于横版。 如果尺寸不够大,也不一定是窄视,使用平面布局,在7吋平板上用Pad版的QQ,觉得不好,不如手机版。
之后是DPI,普通的显示器,小分辨率到大分辨率,可能显示内容比较少,但是每个部分(比如文字大小、按钮)显示都正常。 而到了高DPI,比如Surface,仍然按照分辨率呈现,就会变得很小,简单的放大吗?可能会有很强的像素点效果。
现在手机的DPI也比普通显示器高,如果以像素判断是否窄视,貌似就不好了。 在WP开发的时候,即使是高分辨率,操作的像素也是480*800左右,不过有小数点了。
尺寸、像素和DPI,有可以作为判断的标准吗? 其实我也不知道怎么回事,为什么WPF是分辨率无关的。
如果DPI一般,尺寸大,72吋,分辨率也大,这个时候,程序应该是按照正常大小显示,还是铺满整个屏幕?还跟视距有关吧?
逻辑上, $DPI=K分辨率/尺寸$ 。如果要一个元素显示的像素个数,应该 $=K视距*分辨率/尺寸$ 吧。 文本估计还好吧,标量图怎么办?
标题: 手机发展方向
创建: 2014-12-21
我一直认为移动设备会越来越小,可是大屏手机倒是越来越多,那样真的好打电话吗? 在科幻般的全息投影出来前,大屏可能还是很受欢迎。
从通讯到播放音乐到摄像再到现在无线、地图、云存储,还有无线支付,系统的基础功能越来越多,哪些功能才能算作基础服务?
现在倒不是非要手机如何如何,操作系统使得很多事可以扩展。 而是把操作系统延伸到其它平台,手表啊什么的。
标题: 好的软件
创建: 2014-12-27
其实我没做过桌面软件,顶多算个程序。
首先,要卸载的时候能卸载全了。 好多信息,注册表、系统盘、AppData、用户目录、软件下目录……想着就不爽。
之后是模块化安装,*nix的配置编译安装,让用户有选择的权利。 其实我也怕少选了出事(问题是我根本就不知道那些选项有什么用),倒是Windows的安装用默认算了。 当模块多的时候,能够自己选择,发现需要了,还可以添加上去,有没有一些模块不影响其余的使用。
资源能够共享,好的函数库之类的啊。还有接口进行扩展,或者用户自定义功能。 很多功能隐藏了,帮助,快捷键,命令补全……就是我以前想要的WDM。
现在App这么多,功能文件都不知道在哪,甭说共享。卸载倒是方便了,但是总觉得功能不那么全(好吧,我不会)。 还是App简单些。