漫谈GUI开发—各种平台UI开发概况
前言:
在看这边文章前,可以建议看下:图形界面操作系统发展史——计算机界面发展历史回顾
从CS到BS,现在的前端开发,其实也是GUI开发范畴。现今
各平台的UI开发概况
HTML&CSS,Winform&WPF,Universal Windows APP,JAVA GUI, Android,iOS……
不一而足,先让我们看看
JAVA GUI
我觉得java是最好学的语言。也是像我这种非科班出生的,踏入码农行业的敲门砖(看C c++ 学了一年,也就hello word,会写几个demo界面)。
做java开发,从AWT/Swing、SWT/JFace,这个有IBM的大佬总结,传送门:https://www.ibm.com/developerworks/cn/java/j-gui/
我觉得,无论是c还是java,还是 后面的hmlt ,UI开发 总可以借鉴基本的 Swing Class 树
- Object
- *Component
- Container
- *JComponent
- *AbstractButton
- JButton
- JMenuItem
- JCheckBonMenuItem
- JMenu
- JRadioButonMenuItem
- *JToggleButton
- JCheckBox
- JRadioButton
- Box
- Filler
- JColorChooser
- JComboBox
- JDesktopIcon
- JFileChooser
- JInternalFrame
- JLabel
- JLayeredPane
- JDesktopPane
- JList
- JMenuBar
- JOptionPane
- JPanel
- JPopupMenu
- JProgressBar
- JRootPane
- JScrollBar
- JScrollPane
- JSeparator
- JSlider
- JSplitPane
- JTabbedPane
- JTable
- JTableHeader
- *JTextComponent
- JEditorPane
- FrameEditorPane
- JTextPane
- JTextArea
- JtextField
- JPasswordField
- JToolBar
- JToolTip
- JTree
- JViewport
- ScrollableTabViewport
- Panel
- Applet
- JApplet
- Window
- Dialog
- JDialog
- Frame
- JFrame
- JWindow
Windows桌面应用程序开发Winform&WPF
Winform是XP时代的Windows 桌面程序开发技术。
采用C#语言开发UI和逻辑,没有使用标签语言写UI。
采用事件驱动方法。
Winform现在基本被淘汰了。
Winform是上一代的主流桌面应用程序开发开发技术,这个我从来没有用过,现在也基本不再使用了。
WPF是新一代微软图形界面开发技术。它是随着Windows Vista推出的。.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。
采用XAML标签式语言开发UI,可以在Expression Blend可视化设计开发。美工也可以轻易上手。XAML支持DataBind, Data(Item)Template, Style, Storyboard, Rescoure,自定义控件等技术,开发速度快。
支持事件驱动(Code behind)或者数据驱动(MVVM)开发模式
使用GC回收垃圾,XMAL和C#将编译成CLR中间运行语言,效率比较低,占用内存大
WPF的技术理念非常先进,开发过程也非常友好,也可以做出极为绚丽的界面,可是开发出来的应用体积较大,运行效率比较低,占用内存大,所以没有普及开来。(大部分我们常见的桌面应用都是C&C++开发)但是因为开发效率高,所以很多企业内部经常使用该技术。
Windows 10上的通用应用Universal WIndows APP(UWP)
Universal Windows App(UWP)也就是通用Window App 是微软最新的图形应用开发技术,它是基于WPF技术演进而来的。
UWP继承了所有WPF的优点,还可以使用C++和HTML&Javascript来开发,和WPF编译成中间代码不同,UWP直接将代码编译成机器码直接运行,极大的提高了效率。一次开发编译,可以同时在Windows 10,Windows 10 Mobile, XBOX,物联网IoT设备等其他Windows平台上运行
采用和iOS APP一样的沙盒机制,一样也有电话本,传感器,地图,推送等API。
采用响应式布局,可以适配任何分辨率等。
大量使用异步API,保证界面响应为最高级别。
我开发UWP并不多,但是我接触WPF的时间够长,所以UWP上手毫无压力。相比WPF运行在.NET运行时里,UWP是可以编译成Native Code运行,所以UWP运行效率更高,UI更为流畅。它是目前微软最为主推的开以技术。
Android
android开发,主要一xml来做界面(当然蛋疼手工写也可以。
一个界面xml对于一个active,active与active 桥接intent ,
但是,我更加喜欢iOS的界面开发模式(storybord,所以这里略过。
不过我觉得会ios开发的,上手android开发业不难
iOS
iOS应用是基于Cocoa框架上的,早期的Cocoa是用来开发Mac 应用的,后来加入了Cocoa touch层API用于iOS。
采用XIB或者Storyboard可视化搭建UI,也可以使用手写纯代码来开发UI。
采用Objective C 或者 Swift语言开发逻辑。
在Iphone5 加入多种分辨率后,苹果引入了Autolayout自动布局,它是一种基于约束的,描述性的布局系统。
默认严格遵守MVC设计模式,现以也可以使用MVVM开发框架。
采用ARC实现了自动内存管理。
iOS开发技术还有许多要点,这里就省略了,相信看到这篇文章的人都比较熟悉。
各平台UI开发小结
从上面可以看出,对于UI构建,都是采用类HTML语言。一个HTML标签表示一个View元素。它即可以当其他View的容器,也可以当内容或者数据的容器。可以用独立的Style文件来表示样式,也可以直接放在标签的属性里面。每个标签都可以有Name或者id属性来让js或者其他语言直接操作。
iOS其实也和上面的UI开发范式差不多,Storyboard内部其实也是一个XML文件,只不过我们不能直接编辑,只能可视化设计和通过代码操作。
Web界面的开发HTML&CSS
Web界面是以HTML标签的形式构建UI,它是HTML语言的最基本的单位。
用尖括号包围的关键词如
来表示UI元素,通常是成对出现。
如果需要在容器标签里放其他HTML单位,需要放在标签对里面。
一些HTML元素属性,放在第一个HTML标签里。以键值对的形式存在,比如type = 'text'。
使用Form来提交表单,Http(HTTPS)协议和服务器通讯。
通常通过CSS来控制HTML元素的外观。
通常通过Javescript来控制HTML元素。采用Ajax技术异步通信,实现局部刷新等。
这里就不给示例了,总是来说前端Web开发博大精深,新的技术框架层出不穷,当一个前端工程师也不容易。
从backbone,angular,到现在react+redux ,层出不穷,疲于奔命。你学了ie,还有firefox,还有chrome,……
一如前端深似海。
但是,前端的好处就是,统一GUI开发。我并不喜欢RN的开发模式,觉得还是
html+css+js 自己定制webkit壳,然后,你想怎么玩就怎么玩。(俗话中webapp……
吃饭去了,不扯了……
漫谈GUI开发—各种平台UI开发概况的更多相关文章
- U9单据UI开发--单据类型UI开发
1.在解决方案下新建UI界面项目,命名以UI作为后缀 2.先删除系统默认新建的UI界面数据模型,并新建界面数据 3.新建单据类型UIModel(界面数据),以model作为界面数据后缀名 4.修改单据 ...
- [置顶] Kendo UI开发教程: Kendo UI 示例及总结
前面基本介绍完Kendo UI开发的基本概念和开发步骤,Kendo UI的示例网站为http://demos.kendoui.com/ ,包含了三个部分 Web DemoMobile DemoData ...
- django开发自动化测试平台简介
Django的优点 1:功能完善.要素齐全:自带大量常用工具和框架(比如分页,auth,权限管理), 适合快速开发企业级网站. 2:完善的文档:经过十多年的发展和完善,Django有广泛的实践案例和完 ...
- 使用 PySide2 开发 Maya 插件系列一:QT Designer 设计GUI, pyside-uic 把 .ui 文件转为 .py 文件
使用 PySide2 开发 Maya 插件系列一:QT Designer 设计GUI, pyside-uic 把 .ui 文件转为 .py 文件 前期准备: 安装 python:https://www ...
- Bootstrap:UI开发平台 sdk
Bootstrap:UI开发平台 Bootstrap是一个易用.优雅.灵活.可扩展的前端工具包,里面包含了丰富的Web组件,包括布局.栅格.表格.表单.导航.按钮.进度条.媒体对象等,基于这些组件,可 ...
- 老司机学新平台 - Xamarin开发环境及开发框架初探
随着被微软收购,最近一年间,Xamarin的火爆程度与日俱增.免费.更好的VS2015集成.更好的模拟器,甚至,在windows上运行和调试iOS平台程序,让我这样接触了十几年.NET平台的老司机,即 ...
- 全新的跨平台app软件开发工具——Lae软件开发平台
Lae是一款运行于windows的界面开发工具,具有所见即所得.开发跨平台.UI布局自由.机制简单.维护容易等诸多优点,可以开发同时运行在windows.Linux.MacOX.iOS.Android ...
- 微信公众平台开发:Web App开发入门
WebApp与Native App有何区别呢?Native App:1.开发成本非常大.一般使用的开发语言为JAVA.C++.Objective-C.2.更新体验较差.同时也比较麻烦.每一次发布新的版 ...
- 十二、Android UI开发专题(转)
http://dev.10086.cn/cmdn/bbs/viewthread.php?tid=18736&page=1#pid89255Android UI开发专题(一) 之界面设计 近期很 ...
随机推荐
- 通过ViewPager 实现图片轮播
通过ViewPager 实现图片轮播 首先来个效果图 布局文件: LinearLayout 用来存放下方的几个小白点. <?xml version="1.0" encodin ...
- flash上传头像,截取图像 组件演示
效果图如下: HTML页面代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http:// ...
- JS功能函数
1.整数每三位增加一个, function toThousands(num) { return (num || 0).toString().replace(/(\d)(?=(?:\d{3}) ...
- Linux安装nginx详细步骤
安装依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel 在/usr/local/下创建一个nginx的文件夹 ...
- window iis重启
WINDOWS server 任务计划实现定时自动重启IIS编写批处理文件IIS.bat@echo offnet stop iisadmin /yesnet start iisadminnet sta ...
- Linux:ftp服务本地用户,虚拟用户配置
本地用户 1. 修改ftp配置文件, anonymous_enable=NO 默认为YES,修改为NO,禁止匿名访问, 监听端口,可以根据自己的需求修改,为了安全起见自定义为好 2. /etc/ ...
- ol图层支持的数据源
ol.source.BingMaps,必应地图的数据: ol.source.Cluster,聚族矢量数据: ol.source.ImageCanvas,数据来源是一个canvas元素,其中数据是图片: ...
- foreach next 操作数组指针移动问题
2018年10月20日10:39:40 先说结论,foreach 维护的是一套属于自己的数组指针 会在操作数据的时候,分裂一套变量地址,即使你强制使用 & 取地址一样会分裂,不会引用同一套指针 ...
- Jmeter设置默认中文页面
方法一(从网上看到的) 启动Jmeter找到 options >choose language >chinese(简体繁体自己选). 这样设置后界面就变成了中文,但是当我们下次打开时又恢复 ...
- bootstrap-treeview树形图参数详解
哈哈 找了半天找到了,需要的可以去看看! 直接放上博客链接:https://blog.csdn.net/hailangtuteng/article/details/80842730