热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微软官方Windows8设计

说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略一.C语言简史

说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略

一.C语言简史

  • C语言于1972年发明,首次使用是用于重写UINX操作系统(UNIX以前是用汇编写的)
  • 随着UNIX操作系统的成功,C语言也得到了大幅度地推广,至今还是世界上最流行、使用最广泛的高级程序设计语言之一
  • C语言是一门面向过程的语言,非面向对象的语言

下面是2013年3月份的编程语言热门排行榜

从C语言诞生至今,它的热度一点也没减过,前两名基本上都是Java和C

 

二.C语言的特点

1.丰富的运算符

计算机的基本功能就是计算,因此一门程序设计语言的计算能力是非常重要的。C语言提供了34种运算符,计算类型及其丰富,其中包括了最基本的加减乘除运算。

2.丰富的数据类型

C语言之所以生命力如何强大,很大一部分是因为它拥有丰富的数据类型。C语言的数据类型有:整型(int)、实型(float)、字符型(char)、数组类型(int [])、指针类型(void *)、结构体类型(struct)、共用体类型(union)等,括号中的英文称为类型标识符。众多数据类型中,最强大的是指针,通过指针我们可以直接访问内存地址。指针使用得当的话,不仅可以节省代码量,还可以优化内存、提高性能。因此,指针是一个非常重要的概念,必须重视。如果你说C语言中除了指针,其他都学得挺好的,那你干脆说你没学过C语言。正因为C语言数据类型丰富,运算能力极强,因此很多数据库都是用C语言编写的,比如DB2、Oracle等。

3.允许直接访问物理地址,对硬件进行操作

由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位(bit)、字节和地址进行操作,而这三者是计算机最基本的工作单元。

4.高效率的目标代码

对比汇编语言,C语言可读性好,易于调试、修改和移植,代码质量与汇编语言相当。

5.可移植性好

在一个环境上用C语言编写的程序,不改动或稍加改动,就可移植到另一个完全不同的环境中运行。

 

上面说的都算是C语言的优点,不过它肯定是有缺点的:

  • 由于C语言是面向过程的,因此它的数据封装性差、安全性低,这就是C语言和其他面向对象语言的区别之一。面向对象语言的特性之一就是数据的封装性
  • 语法限制不严格,对变量的类型约束不严格,对数组下标越界不作检查

 

三、C语言能做什么?

  • 由于C语言具有强大的数据处理能力,而且允许直接访问物理地址,直接对硬件操作,因此它适于编写系统软件、图形处理、单片机程序、嵌入式系统开发甚至是用于科研
  • 很多操作系统的底层都是用C语言写的,比如android
  •   iOS开发中的核心语言是Objective-C(简称OC),OC是在C语言的基础上加了一层面向对象语法

 

四、C语言的版本问题

从UNIX操作系统的成功后,C语言得到了广泛地应用,从大型主机到小型微机,都有C语言活跃的身影,也衍生了很多个版本的C语言。长期以往,C语言将可能成为一门有多个变种、松散的语言。一门正式的语言,肯定要有个标准才行,不然就乱套了。为了改变这种局面,1983年美国国家标准局(American National Standards Institute,简称ANSI)成立了一个委员会,开始制定C语言标准的工作。1989年C语言标准被批准,这个版本的C语言标准通常被称为ANSI C。

 
 
分类:  iOS开发前奏1-C语言
标签:  ios,  编程,  软件,  iphone

花了两天时间,对微软开发中心的《Windows 8 应用商店应用的设计指南》进行相关整理。本文归纳提取了相关要点,并在某些部分加入了自己的理解。 中文原文地址 英文原文地址

--------------------------------------------------------------------

导航

分层系统

 

中心页-部分页-详细信息页

平面系统

 

 

顶部应用栏-切换

导航剖析

 

①页眉和后退按钮:页眉可标记当前页,便于查找;

②中心页:类似首屏,将应用程序不同区域的信息显示在第一个屏幕;

③内容部分;

④语义缩放:当视图为很长的平移列表时,方便快速浏览信息和移动视图;

⑤顶部菜单栏:导航控件;

⑥页眉菜单:导航菜单,方便用户切换到不同页面;

⑦主页链接:用于快速返回根目录;

⑧底部应用栏:各种特殊视图命令;

⑨查看、排序、筛选

⑩边缘

使用标题菜单和部分标签进行导航

 

使用filters, pivots, sorts and views进行导航

 

filters:筛选。例如"人脉"应用里面,切换来自Facebook或者是Twitter的信息源;

pivots:最顶端那个导航条;Windows Phone 和 Windows 8 的特色;

sorts:排序;

views:视图,如"日历"应用的"今天"、"月"、"周"视图;

 

命令模式

 

使用画布

 

对于某些应用来说,可以直接在画布上提供内容的直接操作,而不是添加一个进入到下一层级的命令。

 

使用超级按钮

 

这块没啥好说的,微软定义的几大块功能:搜索、分享、设备、设置。

 

使用应用栏

 

这边的命令多与视图有关。

 

使用上下文菜单

 

比如说复制粘贴文本,复制或打开超链接。

 

命令放置

 

组织命令

 

首先,需要考虑应用需要用到哪些命令,把他们列出来。

     

 

创建命令集

 

其次,把上面的命令归类。

View commands

Filter commands

Sort commands

   

Selection commands

Map view commands

New Item commands

 

 

创建菜单

 

接着,我们需要考虑上面的分组结果能否简化。比如,筛选有四个按钮,能否把它们整合到一起。

 

将命令添加到应用栏

 

1.如果数量不多,把所有命令都放到App Bar的右边去。

 

2.当数量较多时,可以利用App Bar的两边边缘进行放置。

 

3.对于某些不应该在某种场景下出现的命令按钮,应该在相关环境下隐藏起来。

 

4.当出现新的语义菜单时,新增的命令按钮永远在原按钮的左边。

 

为常用命令提供标准位置

 

选择命令永远在左边

 

 

对于"新建项目"命令,需要考虑两点:不是所有情景之下都需要新建按钮,适时隐藏;与新建对应的按钮有几种,根据不同情景进行选择。

 

            

 

 

触控模式

 

触控原则

 

使用语义缩放实现快速导航

 

提供视觉反馈

 

互动应该可逆

 

不限制手指的个数,提供统一的操作体验

 

 

触控语言

 

长按以查看详细信息或可视化引导性内容

 

滑动以平移

 

轻扫以选定,进行后续操作(For Windows 8)

 

收缩和拉伸以缩放

 

旋转以转动

 

从边缘处轻扫使用系统命令或应用命令(For Windows 8)

 

触摸手势

 

互动区域: 由于人们通常持握平板电脑的边侧和底部边角,因此,边侧是放置所有可互动内容的理想位置。

阅读区域: 屏幕上半部分的内容比下半部分的内容更容易看到,下半部分的内容常常被手遮住或忽略。

四种常见平板握法

一只手持握,另一只手进行少量到中度的互动

  • 在右边缘和底边缘处实现快速互动。
  • 右下角可能被手腕挡住。
  • 限制有效触控范围可提高触控的准确性。
  • 阅读、浏览、发送电子邮件和简单键入。

两只手持握,拇指进行少量到中度的互动

  • 在左下角和右下角处实现快速互动。
  • 固定的大拇指可提高触控的准确性。
  • 屏幕中央的项目难以触及。
  • 对屏幕中央进行触控时需要更换姿势。
  • 阅读、浏览、简单键入、游戏。

设备位于桌面或腿上,两只手进行少量到大量互动

  • 在屏幕底部实现快速互动。
  • 下边角可能被手腕挡住。
  • 缩小有效触控范围可提高触控的准确性。
  • 阅读、浏览、发送电子邮件和复杂键入。

将设备置于桌面或搁架上,使用互动或不使用互动

  • 在屏幕底部实现快速互动。
  • 在屏幕顶部进行触控操作会遮挡住内容。
  • 在屏幕顶部进行触控操作时可能会使处于连接的设备失去物理平衡。
  • 隔一定距离处进行互动会降低可读性和准确性。
  • 加大目标对象的大小可以提高可读性和准确性。
  • 观看影片、听音乐。

 

有关目标大小的准则:

7x7 mm:建议的最小值

如果对错误目标的触控可通过一两个手势或在 5 秒内更正,则 7x7 mm 是合适的最小值。目标之间的间距与目标大小同样重要。

当准确性非常重要时

关闭、删除和其他具有严重后果的操作无法承受意外的点击。 如果对错误目标的触控需要超过 2 个手势、5 秒或主要的上下文更改才能更正,则可以使用 9x9 mm 的目标。

当屏幕难以容纳下时

如果你发现很难在屏幕中装下想要的内容,也可以使用 5x5 mm 的目标,只要对错误目标的触控可通过一个手势更正。在这种情况下,在目标之间使用 2 mm 的间距非常重要。 

 

品牌植入

 

可视元素

描述

颜色

颜色是展现品牌的关键属性。通过告知人们此应用来自你的企业的方式,应用与你的品牌关联的主要颜色

图形

通过将字符添加到内容的演示中,使用图形来增强你的品牌。但是过多的图形可妨碍你的内容的流畅性,并且看上去仅仅起到装饰效果或者可能会分散注意力。

图像

插图和摄影也可反映你的品牌。重复使用来自你的公司的其他沟通方式或网站中的相同影像和风格。

网格

Windows 应用商店应用网格系统帮助统一你的应用演示的视觉元素。该网格将调整你的品牌化应用的 UI 以使用 Windows 的其余部分。

布局

所有页面的视觉元素的布局安排都应与你的品牌相关。你还应尽力在页面和内容类型间实现一致性。

徽标

使用你的徽标以帮助人们快速识别你的应用和你的品牌。

版式

字样是 Windows 应用商店应用的一个关键部分。正确的选择可以像颜色、徽标或布局一样对你的品牌具有影响力,因此请考虑你要使用的版式。 

 

几个例子:

 

 

 

----------------------------- THE END ----------------------------

 
 
 
标签:  交互设计,  设计规范,  Windows 8

推荐阅读
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了一种划分和计数油田地块的方法。根据给定的条件,通过遍历和DFS算法,将符合条件的地块标记为不符合条件的地块,并进行计数。同时,还介绍了如何判断点是否在给定范围内的方法。 ... [详细]
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 本文介绍了解决二叉树层序创建问题的方法。通过使用队列结构体和二叉树结构体,实现了入队和出队操作,并提供了判断队列是否为空的函数。详细介绍了解决该问题的步骤和流程。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
author-avatar
TT0852_235
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有