总结使人进步,可视化界面GUI应用开发总结:Android、iOS、Web、Swing、Windows开发等

可视化界面的软件,是21世纪最主流的应用类型了,黑屏控制台的不适合普通用户。

2004年左右的时候,作为普通网民,接触的自然是可视化,准确是Windows那一套。

那个时候,Microsoft Windows 98,红警,QQ是3个印象深刻的软件。

大学之后,入了行,先后学习了Windows程序设计(C语言API开发)、MFC、Java Swing,Html Web,Android和iOS。

总的来说,现在Html web和Java Swing要熟悉一些,Android和iOS的界面在深入学习中,Windows和MFC基本废弃了。

学习了这么多可视化界面的应用程序开发,回头来看,很多地方,都是一样的。因此,特意总结下。

我的观念是,总结使人进步。

  总的流程:

 1.入口,应用程序的起点

Java Swing、Windows、iOS,是main函数。

Android,AndroidManifest.xml指定Activity,可以认为程序入口被“Android”隐藏了。

Web,入口是域名,对应到某个URL。后端是,比如Java,就是web.xml。

 2.启动流程封装和接口

应用有了入口,就可以开始执行。

执行的过程,通常都是先执行初始化逻辑。

初始化逻辑,通常比较复杂。

应用开发平台,会把整个的流程,清晰低定义出来,然后给开发者留出很多扩展接口。

一部分接口是可选的,一部分是必须实现的。

Java Swing这种main函数的,相对简单一点,按照咱们写的代码,一步步来就可以了。开发平台封装的会比较少。

Java Web这种,web.xml各种配置,Tomcat等服务器,按照web.xml配置,初始化基本环境,servlet,listener等,

留给开发者的初始化,是通过配置servlet等方式。我的理解是,Web开发这种,初始化会比较多。

Android,和Java Swing类似,留给开发者的初始化不是很多。执行的过程中,需要资源,再初始化。

iOS,学得不久,和Android基本一致。

因此,主要分为3类:

Java Swing应用,按照main一步步来,初始化很少。

Java Web,初始化繁多,各种配置文件。

Android和iOS,初始化也很少,可以按需要来。

(个人感觉不够准确啊,仅供参考)

3.初始化,开发者扩展接口

应用初始化的过程,会给开发者留很多“扩展的接口”,从而把自己的程序和逻辑加入进来。

Java Web中,比如用了SpringMVC框架,DispatchServlet就拦截了所有的URL,再分配到我们自己写的各个Controller中。

Android中,配置Service和Activity等。

4.绘制界面。

Java Swing,用各种UI组件、API和布局,构造界面。

Android、iOS、Windows,也差不多。

Web Html,则是用Html和CSS比较多。

5.绑定事件。

Web前端中,JavaScript绑定click等,也可以把超链接的点击,理解成标准的自带的事件。

Android、Java等,都差不多。

绑定、移除等操作。

 6.事件响应。

可以说,事件响应,才是程序的重点,开发者介入最多的地方。

每一个事件,都需要响应,响应逻辑,就是处理界面资源、动画效果、业务逻辑的地方。

比如,用户点击按钮,提交了一个表单。捕捉到这个事件,把表单存到数据库,再给用户一个反馈,或者跳转到其它界面。

三种机制:

1.为1个界面组件,绑定到1个明确的函数代码上。1对1

比如,JavaScript中,$("#submitBtn").on("click,function(){});

这种方式,比较明确,非常常见。

2.为1类界面组件,绑定1个事件。1对多。

比如,JavaScript中,$(".action").on("click,function(){});

这种方式,代码写起来简洁,适合同一类的事件。在Web端比较多。

Android移动端、Java Swing等,用的比较少,没有怎么见过。

3.不明确绑定到某个函数,使用纯粹的消息机制。

印象中,Windows程序设计中,事件是真正的机遇“消息”的。

点击一个按钮,这个事件,是当作一个消息的。

代码中,有专门的处理消息的地方。

我们经常看到的,把一个事件绑定到某个函数,是Android等框架简化的结果。

从Windows程序设计中,我们可以看出,监听事件,通常都是“循环”或者“处于等待”状态的。

也因此,UI通常都有一个“主线程”。

事件响应,有可能会开启新的线程。

要不然,点击了第1个按钮,再点击第2个,就不响应了。

小结

总的流程:入口-系统初始化-开发者初始化-界面-绑定事件-响应事件或捕捉消息-处理业务逻辑-返回结果。

限于经验和表达能力,只能这么大概写一下。

细一点,就需要具体到某种技术,比如Android,需要专业的大神来解释了。

最后

从以上,我们可以看出,在不同编程语言和GUI平台框架中,整个流程是类似的。

2000年以前,就建立了这样的模型,后面就算是新出来的,也大致是按照这个思路的。

我们似乎可以称之为“GUI设计模式”。

此外,在不同语言中,数据结构、算法、业务模型、语法,等很多地方都存在着很多的共性。

理解了这些共性,再找出差一点,学习新的编程语言等技术技能,就快很多。

  一个人的学习能力,和总结,找规律,有很大的关系。

  重复学习相同的相似的内容,花了很多无用功,理解还不够深刻。
  现在再回头,理解初中高中的“触类旁通”等学习境界,说的应该就是这个道理。
  现在,再回头想想咱们早期的学习方法和知识,很多还是有价值的。 
  知识,还是要活学活用。 

希望通过本篇,能够给相关友人带来一些启发。

小雷FansUnion-专注互联网技术和金融投资

2015年12月6日

在之前的文章中,说的是在12月7日之前,今天总算是没有拖延~

时间: 2024-10-24 10:12:31

总结使人进步,可视化界面GUI应用开发总结:Android、iOS、Web、Swing、Windows开发等的相关文章

痞子衡嵌入式:超级好用的可视化PyQt GUI构建工具(Qt Designer)

大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是PyQt GUI构建工具Qt Designer. 痞子衡开博客至今已有好几年,一直以嵌入式开发相关主题的文章为主线,偶尔穿插一些其他技术或工具的介绍,前段时间因为要做一个跟恩智浦MCU启动相关的上位机工具 NXP-MCUBootUtility,网上搜索对比了几个Python下的GUI框架,最终选择了wxPython这个成熟稳定的GUI库,从而接触到wxFormBuilder这个配套wxPython使用的GUI构建工具.苦于网上关于该

dui框架开发系列:基于控件组合或继承实现 可视化界面编辑工具 的优劣

大家好,我要介绍的所有知识点都是WINCE/windows触摸屏DUI开源框架constvar(点击下载代码)开发过程中遇到的比较有讨论价值的问题. 本文要讨论的是可视化界面编辑工具与控件实现方式的一些关系. 可视化界面编辑工具是DIRECTUI界面框架不可少的工具,它应当是整个框架的比较重要的一部分.VS中的可视化开发工具很强大,比如用MFC拖出来的界面,接近所见即所得,而且消息事件方法属性的增删改查都很便利,接口也很统一,可以说已经做得非常好了.说实话,平常如果做工具软件对界面没要求的那种,

SwaggerUI+SpringMVC——构建RestFul API的可视化界面

今天给大家介绍一款工具,这个工具目前可预见的好处是:自动维护最新的接口文档. 我们都知道,接口文档是非常重要的,但是随着代码的不断更新,文档却很难持续跟着更新,今天要介绍的工具,完美的解决了这个问题.而且,对于要使用我们接口的人来说,不需要在给他提供文档,告诉他地址,一目了然. 最近项目中一直有跟接口打交道,恰好又接触到了一个新的接口工具,拿出来跟大家分享一下. 关于REST接口,我在上篇文章中已经有介绍,这里来说一下如何配合SwaggerUI搭建RestFul API 的可视化界面.最终要达到

GDB-Dashboard-GDB可视化界面

项目地址 https://github.com/cyrus-and/gdb-dashboard 项目介绍 gdb-dashboard是一个gdb的可视化界面,可以通过web或者终端来现实可视化信息,支持自定义配置的仪表盘来显示程序执行期间相关的信息.它的主要目标是降低GDB使用难度,可以通过界面来进行控制,而不是GDB命令的数量. 安装方法 需要GDB>=7.7 wget -P ~ git.io/.gdbinit mv ~/.gdbinit ~/.gdb-dashboard source ~/.

Stroyboard(可视化界面)与纯代码

Stroyboard是苹果在 iOS 5 中引入的新技术,让纯代码变成了一个可视化的界面,让nib.xib有一种更加直观的展现,几十行甚至几百行的代码搞定的一个控件,现在只要动动手指就能完成一个控件了,初学者学到的绝大部分都是教你怎么使用StoryBoard的而不是怎么用纯代码,但是我自己更加喜欢纯代码,总觉得自己敲出来的代码更加能信任,修改起来也会更加简单. 一开始我以为纯代码跟可视化界面其实是一样的,看个人喜好选择用什么方法,后来查了资料发现,如果是一个大的项目,用可视化界面,那么团队就不能

Ubuntu mysql安装,还有可视化界面

安装mysql sudo apt-get install mysql-server sudo apt-get install mysql-client sudo apt-get install libmysqlclient-dev 安装mysql的可视化界面(mysql workbench) sudo apt-get install mysql-workbench

Android 使控件位于界面底部

Android 如何使控件位于界面底部 使控件位于界面底部有很多种办法,下面我就分情况说一下: 一.LinearLayout布局中: 把握三个原则即可轻松使控件位于界面底部: 1.最外层父容器LinearLayout设置高度  layout_height="match_parent" 2. 内层LinearLayout设置    layout_weight="1" 并且 layout_height="0dp" 3.内层LinearLayout 设

awt可视化界面上传数据到mysql,jsp通过jdbc方式查询数据库,并将结果打印在网页上

今天尝试写一个小demo实现下之前看过的代码,目的了解不同文件的数据访问,掌握如何获取前台数据,如何将数据库的数据在前端页面展示. awt可视化界面可已实现提交数据到数据库,也可查询数据在控制台打印. web工程:主要是web前台输入并提交数据,然后在另一页面展示数据库内容 源码:http://download.csdn.net/detail/xiejun1026/8038489

Docker可视化界面(Consul+Shipyard+Swarm+Service Discover)部署记录

前面一篇说到了Docker管理工具-Swarm部署记录,基于这个环境,下面记录下Docker可视化界面部署过程: 1)下载相关惊喜 manager-node节点(182.48.115.237) [[email protected] ~]# docker pull progrium/consul [[email protected] ~]# docker pull rethinkdb [[email protected] ~]# docker pull shipyard/shipyard [[em