CN107133042A - 一种基于IFML的iOS开发建模方法 - Google Patents
一种基于IFML的iOS开发建模方法 Download PDFInfo
- Publication number
- CN107133042A CN107133042A CN201710307279.1A CN201710307279A CN107133042A CN 107133042 A CN107133042 A CN 107133042A CN 201710307279 A CN201710307279 A CN 201710307279A CN 107133042 A CN107133042 A CN 107133042A
- Authority
- CN
- China
- Prior art keywords
- ios
- ifml
- interface
- event
- viewcontroller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 230000002452 interceptive effect Effects 0.000 claims abstract description 25
- 238000011161 development Methods 0.000 claims abstract description 20
- 230000003993 interaction Effects 0.000 claims abstract description 18
- 230000010354 integration Effects 0.000 claims abstract description 3
- 230000009471 action Effects 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 4
- 238000009434 installation Methods 0.000 claims 1
- 238000000605 extraction Methods 0.000 abstract description 2
- 230000018109 developmental process Effects 0.000 description 20
- 230000006870 function Effects 0.000 description 6
- 238000007792 addition Methods 0.000 description 5
- 238000010276 construction Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000011435 rock Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明基于IFML的iOS开发建模方法,步骤一、IFML基于移动平台的拓展进一步针对iOS平台进行拓展,确定并抽象出iOS平台应用的整体运行流程;步骤二、使用交互流建模语言IFML针对移动平台的扩展,对步骤一中iOS应用整体运行流程进行初步交互流建模;步骤三、在IFML针对移动平台拓展的基础上,针对iOS应用平台进行进一步拓展,使用针对iOS应用平台拓展的IFML,进行面向实现的交互流建模;步骤四、对步骤三中的iOS应用平台的交互流模型,结合项目需求和iOS版本信息,完成应用开发。本发明基于模型驱动方式,对iOS移动应用进行抽象提取交互流模型,并使用针对iOS平台扩展的IFML对其进行建模。
Description
技术领域
本发明属于软件工程,模型驱动工程领域。本发明涉及一种基于模型驱动方式,对iOS移动应用进行抽象提取交互流模型,并使用针对iOS平台扩展的IFML对其进行建模。
背景技术
近年来,移动应用市场蓬勃发展,移动app彻底改变了人们的生活方式,给人们的生活带来了许多便利。然而,日渐丰富的交互方式和越来越复杂的功能使手机应用的开发越来越复杂。移动应用本身呈现出多平台、多版本的态势,具有平台多,版本演化快的特点,如何更好并高效地支持多平台、多版本的开发是一个备受关注的问题。iOS是由苹果公司开发的移动操作***,短短几年间iOS***便从iPhone OS 1.2(iOS在更名前被称作iPhoneOS)版本发展到目前(2017年4月)的iOS10.3版本,随着市场需求增长和智能终端市场的快速成长,iOS***的更新迭代速度也会相应加快以更好地适应市场需求。
此外,苹果公司在2014年发布新的开发语言Swift,相较于Objective-C,Swift的语法更加简单高效、灵活易懂,将来很有可能取代Objective-C成为iOS的主流开发语言,然而目前大多数的iOS应用仍然使用Objective-C开发,因此两种语言间的迁移也将成为一种需求。模型是对具体实现的一种抽象,能够有效地屏蔽各***版本以及各平台语言间的差异性,对一个移动应用抽象出模型并使用适当的建模语言刻画描述,从而帮助开发人员完成iOS移动应用从一个版本向另外一个版本,一种语言向另一种语言的迁移。
模型驱动开发技术使用模型从较高层次对应用进行抽象表示,将软件的复杂性分配到开发各个阶段,结合一些自动化模型转换和代码生成技术,能够大大降低移动应用开发的复杂性,缩短开发周期,能够很好地满足移动应用开发的要求。
现有技术中,已有公开的申请文本:《一种基于IFML的Android开发建模方》,申请公布号:CN106126213A。该现有技术公开了一种基于IFML的Android开发建模方法,首先Android开发人员确定将要开发的Android应用由多少界面组成以及界面间的跳转关系,确定每个界面中包括了哪些Android控件,哪些控件需要绑定事件并且进行事件处理,事件处理完后是否进行界面间的跳转。对Android应用的整体运行流程确定后,开发人员可以初步地使用标准IFML对Android应用的整体运行流程中各种元素建立交互流模型,这个模型是粗粒度并且是高度抽象的。然后,该工作针对移动平台对标准IFML进行扩展,使用扩展后的IFML再对模型进行细化,这样得到的模型便具有了移动平台的概念,体现出移动平台的特点。然而,这个模型中包含的元素信息仍不足够支撑Android开发,因此该工作进一步针对Android平台进行IFML的扩展,扩展后对Android应用运行流程进行描述刻画,这一步得到的模型信息能够帮助Android开发人员进行应用的开发。
IFML(交互流建模语言)使用交互流的方式对应用进行建模,得到的模型简洁直观,相比其他建模语言,更能体现出移动应用事件驱动的特点,符合移动应用的建模需求。但是,在面向iOS应用的建模方面IFML仍有不足。当前的IFML只能构建平台无关模型,模型与iOS平台代码间的跨度很大,很难直接根据模型进行原生应用的开发。因此,有必要在现有IFML基础上进行扩展,使其更好地支持iOS原生应用的开发。扩展完成后开发人员基于屏蔽了版本差异以及开发语言的iOS平台相关模型,再结合开发时iOS版本和开发语言,完成iOS应用的开发,后期随着版本演化,基于模型可以完成从一个版本到另外一个版本的迁移,也可以实现从一种iOS开发语言向另一种iOS开发语言的迁移。
发明内容
发明目的,iOS平台经过几年的迭代演化,平台架构的复杂性不断增加;新型硬件的发展给手机带来了更丰富的交互方式,也提升了iOS应用的开发的难度。传统的开发方式已经渐渐不能满足手机应用快速开发以占据市场的需求。
同时,iOS***版本演化较快,演化的深度会体现到API层次,甚至造成新老版本之间的API无法兼容的情况,这给程序员的开发带来了巨大的挑战。如何应用新技术适应平台版本的演化成为学术和工业界共同关注的问题。
此外,iOS开发目前有两种较主流语言——Objective-C和Swift。Swift作为一种较新的语言具有许多优点,将来很有可能替代Objective-C成为iOS的主流开发语言,而目前的大多数应用使用的都是Objective-C语言进行开发,因此由Objective-C向Swift的迁移也会成为一种趋势。
同时,我们发现模型驱动开发技术使用模型从较高层次对应用进行抽象表示,能够大大降低移动应用开发的复杂性,缩短开发周期,能够很好地满足移动应用开发的要求。IFML(交互流建模语言)使用交互流的方式对应用进行抽象表示,能够很好地体现移动应用时间驱动的特点,适合移动应用的模型构建。但是,目前的IFML不能体现出iOS平台的架构特点,构建出的模型是平台无关模型,模型与代码间跨度很大,很难支持原生应用的开发。
本发明的目的正是面向以上四点问题,基于模型驱动,针对iOS平台的框架特点扩展了IFML建模规范,并基于该扩展提出一种用于iOS移动开发进行建模的方法。开发过程中先基于扩展的IFML对iOS应用进行抽象建立交互流模型,屏蔽各iOS***不同版本及不同开发语言的复杂差异性,描述iOS移动应用的整体运行控制流程,再基于建立的交互流模型,结合实际开发需求、程序开发语言及iOS具体版本信息,完成iOS应用开发。
技术方案:为完成上述目的,本发明采用的方案如下:
一种基于IFML的iOS开发建模方法,其特征是包括如下步骤:
1)IFML已针对移动平台进行拓展,这里基于移动平台的拓展进一步针对iOS平台进行拓展,确定并抽象出iOS平台应用的整体运行流程;
11)确定iOS应用中整体运行流程界面数量,界面间跳转关系;
12)确定构成整体运行流程每个界面的控件类型;
13)确定所述控件是否绑定事件,并确定事件类型;
14)确定所述界面间跳转由哪些控件触发事件来完成;
2)使用交互流建模语言IFML针对移动平台的扩展,对步骤1)中iOS应用整体运行流程进行初步交互流建模;
21)对iOS应用中整体运行流程的界面,使用扩展了IFML中ViewContainer得到的Screen表示;
22)对整体运行流程界面中的控件,使用拓展了IFML中ViewComponent得到的MobileComponent表示;
23)对表示整体运行流程界面中的控件MobileComponent,如果控件上绑定了事件,拓展IFML中Event得到MobileSystemEvent,进一步对MobileSystemEvent拓展得到具体事件类型,比如Click,使用具体事件类型放在MobileComponent元素边界上;
24)从整体运行流程界面中的控件MobileComponent上绑定的事件引出一跳Navigation Flow,指向IFML中的Action元素,表示事件触发后进行的业务逻辑,再从Action元素继续引出Navigation Flow,指向目的界面Screen,表示处理完业务逻辑后跳转到那个界面;
3)在IFML针对移动平台拓展的基础上,针对iOS应用平台进行进一步拓展,使用针对iOS应用平台拓展的IFML,进行面向实现的交互流建模;
31)对iOS应用平台中的界面,使用拓展Screen得到的ViewController元素表示;
32)对界面ViewController中的控件,使用针对iOS应用平台的基于MobileComponent元素扩展得到的各具体iOS控件来表示,包括UIButton,UITextField;
33)所述控件上绑定了事件的,使用针对iOS的基于MobileSystemEvent元素拓展得到的各具体iOS事件来表示,包括Click,Touch,LongPress;
34)从所述控件上绑定的事件引出一条Navigation Flow,指向表示事件处理业务逻辑的Action元素,从Aciton元素引出Navigation Flow指向目的ViewController;
35)界面ViewController元素间跳转关系已经使用扩展了的IFML表示出来,ViewController间进行跳转时如果需要对涉及了跳转的源ViewController和目的ViewController进行生命周期方法的编码,在源ViewController和目的ViewController的Navigation Flow间添加表示源ViewController和目的ViewController的UML类图;
4)对步骤3)中的iOS应用平台的交互流模型,结合项目需求和iOS版本信息,完成应用开发;
41)对模型中界面ViewController,在项目中添加一个类,继承自iOS中界面UIViewController类;
42)对界面中的iOS控件,在storyboard中添加iOS控件;
43)配置storyboard中界面与UIViewController类的绑定关系;
44)步骤41)中的iOS类,在生命周期方法viewDidLoad()中完成界面加载和初始化设置等编码工作。在ViewController类中编写代码获取控件,为控件绑定事件,完成事件处理业务逻辑,添加界面跳转代码。
有益效果:
基于本发明中的IFML扩展模型,结合不同iOS平台版本信息以及具体的程序开发语言,可以清晰直观地完成iOS应用的开发,也很容易能够完成从一个iOS版本向另外一个版本,一种iOS开发语言向另一种iOS开发语言的演化迁移。
本发明通过对移动应用进行抽象模型建立的方法,不仅可以用来屏蔽iOS***不同版本间的差异性,同样能够用来屏蔽不同移动平台间的差异性,从而帮助完成从一个移动平台模型向另外一个移动平台模型进行转换,再根据模型进行代码生成。
附图说明
图1所示为针对iOS平台扩展的IFML元模型。
图2所示为一个iOS应用实例使用IFML建立的模型。
图3所示为同一个iOS应用实例使用针对移动平台扩展的IFML建立的模型。
图4所示为针对iOS平台扩展的IFML为iOS应用实例建立的交互流模型。
具体实施方式
下面结合附图和具体实施例对本发明做进一步详细说明。
本实施例的基于IFML的iOS开发建模方法,首先iOS开发人员确定将要开发的iOS应用由多少界面组成以及界面间的跳转关系,确定每个界面中包括了哪些iOS控件,哪些控件需要绑定事件并且进行事件处理,事件处理完后是否进行界面间的跳转。对iOS应用的整体运行流程确定后,初步地使用标准IFML对iOS应用的整体运行流程中各种元素建立交互流模型,这个模型是粗粒度并且是高度抽象的,对标准IFML针对移动平台进行扩展,使用扩展后的IFML再对模型进行细化,这样得到的模型便具有了移动平台的概念,体现出移动平台的特点。这个模型中包含的元素信息不足够支撑iOS开发,因此要进一步针对iOS平台进行IFML的扩展,扩展后对iOS应用运行流程进行描述刻画,这一步得到的模型信息能够帮助iOS开发人员进行应用的开发。
步骤1)确定并抽象出iOS应用的整体运行流程。
iOS应用是UI和事件驱动的,iOS开发人员在开发一个iOS应用时,首先要确定应用的整体运行流程,对iOS应用进行抽象理解可以得知iOS应用以界面为单位,在各界面间进行跳转完成应用的运行流程,每个界面中放置合适的可视化控件元素呈现给用户,用户可以与界面中控件元素进行交互,应用会处理用户的交互操作完成功能、实现效果,交互过程中可能会触发界面的跳转。
iOS开发人员都知道iOS应用是使用面向对象语言Objective-C或者Swift进行开发,基于模型-控制器-视图的MVC架构模式进行设计,应用中的任何对象,归根结底都属于模型对象、视图对象以及控制器对象中的一种。视图对象用于呈现可视化内容给用户,并且和用户进行交互,响应用户的输入,但是视图对象不能够处理用户交互引发的事件,必须将视图对象触发的各类事件信息发送给控制器对象,委托控制器对象去处理各类事件。
iOS中的控制器层是由ViewController负责完成,每一个ViewController都对应一个swift或者.m文件。ViewController的功能主要是:1.加载其关联的视图并且呈现给用户;2.获取其关联的视图中每个控件,并负责处理控件响应用户与控件交互的操作。应用中每个页面都有相关联的ViewController,iOS***为其提供了生命周期方法,应用的状态发生变化时,iOS***会自动调用ViewController相应的生命周期方法,开发人员可以在各个生命周期方法体中完成业务逻辑编码,这样就可以在生命周期方法被***调用时实现预期的功能或效果。
移动应用中视图和控制器密不可分,ViewController负责加载与其关联的视图,如果应用需要控件和用户进行交互,便会在ViewController中对该控件设置事件处理方法,View Controller对事件的处理机制都是相同的:监听事件源,为事件源绑定一个事件处理方法,事件发生则相应的事件处理方法完成事件处理。此外,事件可能会引起界面间的跳转。iOS应用是UI和事件驱动的,开发人员将为提供给用户进行交互的可视化控件绑定事件,***会捕获用户交互产生的事件并对其进行处理。
iOS应用的所有界面,界面中的控件,控件绑定事件及事件处理,界面间跳转关系,这些信息就能够清晰地表达出iOS应用的整体运行流程,这个步骤得到的运行控制流程和具体iOS版本是无关的,屏蔽了各版本以及不同开发语言的复杂差异性。
步骤2)使用IFML针对移动平台的扩展,对步骤1中iOS应用整体运行流程进行初步交互流建模。
IFML是通用的交互流建模语言,使用标准没有经过扩展的IFML可以对步骤1中的运行控制流程进行建模,但该模型仅停留在最原始抽象的交互流层级,无法体现出移动平台的特点,也不能详细描述应用的信息,对开发人员的帮助不大。标准的IFML主要使用了以下元素进行交互流建模:ViewContainer表示一个视图容器,可用来容纳可视化元素;ViewComponent表示可以存放于ViewContainer中的可视化元素,对用户可见并且用户可以与其进行交互;Event表示交互流中的事件,通常附着在ViewComponent上表示该ViewComponent会产生事件,与Event紧密联系在一起的是Action和Navigation Flow,Action表示事件产生后会进行的业务逻辑,Navigation Flow表示了交互流的跳转方向。当使用标准IFML对iOS应用整体运行流程进行交互流建模时,IFML中ViewContainer表示iOS应用中的界面,界面中的iOS控件使用ViewComponent表示,控件如果需要绑定事件,则在ViewComponent上添加Event,从Event引出Navigation Flow,如果事件处理方法需要完成业务逻辑,则Navigation Flow和一个Action进行关联,否则指向目的ViewContainer。图1所示为一个iOS应用实例使用IFML建立的模型,该模型比较抽象而且粗粒度地描述了iOS应用的界面间跳转关系,界面中有多少构成元素,部分构成元素绑定了事件,事件或者触发了界面的跳转,或者完成一部分业务逻辑。
对IFML进行针对移动平台的扩展,使得IFML能够进行与移动平台相关的建模,扩展重点主要在具有移动平台显著特点的控件和事件类型方面,移动平台的事件类型主要分为了三大类:1.移动终端所特有的传感器引发的事件,比如晃动,加速器等;2.用户使用移动终端的外设引发的事件,比如摄像头拍照,麦克风等;3.用户直接操作界面上控件引发的事件,比如点击,滑动等,可以基于Event扩展出MobileSystemEvent,基于ViewContainer扩展了Screen,这样表述比较有移动平台特点,Screen表示移动应用的界面,ViewComponent扩展为具有移动平台相关概念的控件MobileComponent,表示这是移动平台的控件。使用针对移动平台进行扩展的IFML对iOS应用进行交互流建模时,iOS应用的界面使用Screen表示,界面中的iOS控件使用MobileComponent表示,控件上绑定的事件则根据具体事件类型来表示,比如单击Click。图2所示为同一个iOS应用实例使用针对移动平台扩展的IFML建立的模型,这部分的扩展能够描述有移动平台概念的信息。
步骤3)针对IFML的移动平台扩展进一步针对iOS平台进行扩展,使用针对iOS扩展的IFML进行面向实现的交互流建模。
步骤2)中的交互流模型能够描述出移动应用相关的运行交互流过程,我们进一步扩展针对移动平台的IFML使得能够建立iOS平台相关的交互流模型。对比iOS各版本中的控件类型和事件类型,发现控件和事件类型基本上没有改变,因此我们可以扩展IFML中的MobileComponent,在IFML中扩充iOS的控件,比如UIButton,UITextField等。MobileComponent和iOS控件的关系类似于面向对象语言中父类和子类的关系,当开发人员不确定某个界面中需要使用哪个控件时,完全可以先使用MobileComponent来代替,等最终开发确定时再用具体iOS控件替换MobileComponent。扩展MobileSystemEvent添加iOS中的事件类型比如Click,Touch等。iOS中ViewController和视图层是紧密联系的,视图层的业务逻辑都交由控制器ViewController处理,因此我们将Screen扩展为ViewController。在步骤1)中我们提到,当ViewController进行切换,应用状态发生改变时,iOS***会自动调用提供给ViewController的生命周期方法,开发人员可以在生命周期方法体中完成业务逻辑编码便能够在生命周期方法被***调用时实现预期功能。步骤2中的模型无法描述这部分与iOS平台紧密相关的信息,为此我们需要添加新元素刻画这部分信息。IFML是可以结合UML(Unified Modeling Language)建模语言完成应用中不能直接通过界面或交互流来表述的部分。我们选择使用UML中的类图和协作图作为新元素,步骤1中提到ViewController对应Swift或.m文件,完全可以使用UML类图和协作图来在IFML中表示ViewController中的生命周期方法。同样地,由于iOS控件绑定的事件引起的事件处理方法,也可以使用UML类图和协作图的新元素表述。
经过针对iOS平台的IFML扩展后,我们可以这样来描述iOS应用的整体运行控制流程:使用ViewController表示应用中的界面,在ViewController中添加iOS控件,给控件绑定iOS事件,事件通过Navigation Flow和Action联系起来,Action部分由开发人员具体去实现,完成Action后,Navigation Flow要么指向原来的界面表示实现了功能、完成效果,要么指向其他的ViewController,如果指向其他的ViewController,则需要添加ViewController生命周期方法,生命周期方法体中的内容交由开发人员决定是否添加。通过这些步骤,iOS应用的整体交互运行流程便建模完成。图3所示为针对iOS平台扩展的IFML为iOS应用实例建立的交互流模型。
步骤4)基于步骤3)中的iOS交互流模型,结合iOS具体版本和具体编程开发语言,如有需要只需对iOS控件类型进行调整,开发人员对照模型可以直接在iOS项目源代码中完成应用的所有界面,界面中控件,界面对应的ViewController,控件绑定的事件,界面如何跳转及跳转关系。iOS开发人员看到模型中的ViewController,为此ViewController在项目中添加一个ViewController类,看到模型中ViewController里的控件可以在ViewController关联的界面中进行添加,模型中控件上绑定了事件及进行了事件处理,直接可以在ViewController中捕获控件并对控件进行事件绑定。
图4所示为针对iOS平台扩展的IFML为iOS应用实例建立的交互流模型。
术语对照表
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (4)
1.一种基于IFML的iOS开发建模方法,其特征是,包括如下步骤:
步骤一、IFML已针对移动平台进行拓展,这里基于移动平台的拓展进一步针对iOS平台进行拓展,确定并抽象出iOS平台应用的整体运行流程;
11)确定iOS应用中整体运行流程界面数量,界面间跳转关系;
12)确定构成整体运行流程每个界面的控件类型;
13)确定所述控件是否绑定事件,并确定事件类型;
14)确定所述界面间跳转由哪些控件触发事件来完成;
步骤二、使用交互流建模语言IFML针对移动平台的扩展,对步骤一中iOS应用整体运行流程进行初步交互流建模;
21)对iOS应用中整体运行流程的界面,使用扩展了IFML中ViewContainer得到的Screen表示;
22)对整体运行流程界面中的控件,使用拓展了IFML中ViewComponent得到的MobileComponent表示;
23)对表示整体运行流程界面中的控件MobileComponent,如果控件上绑定了事件,拓展IFML中Event得到MobileSystemEvent,进一步对MobileSystemEvent拓展得到具体事件类型,比如Click,使用具体事件类型放在MobileComponent元素边界上;
24)从整体运行流程界面中的控件MobileComponent上绑定的事件引出一跳Navigation Flow,指向IFML中的Action元素,表示事件触发后进行的业务逻辑,再从Action元素继续引出Navigation Flow,指向目的界面Screen,表示处理完业务逻辑后跳转到那个界面;
步骤三、在IFML针对移动平台拓展的基础上,针对iOS应用平台进行进一步拓展,使用针对iOS应用平台拓展的IFML,进行面向实现的交互流建模;
31)对iOS应用平台中的界面,使用拓展Screen得到的ViewController元素表示;
32)对界面ViewController中的控件,使用针对iOS应用平台的基于MobileComponent元素扩展得到的各具体iOS控件来表示,包括UIButton,UITextField;
33)所述控件上绑定了事件的,使用针对iOS的基于MobileSystemEvent元素拓展得到的各具体iOS事件来表示,包括Click,Touch,LongPress;
34)从所述控件上绑定的事件引出一条Navigation Flow,指向表示事件处理业务逻辑的Action元素,从Aciton元素引出Navigation Flow指向目的ViewController;
35)界面ViewController元素间跳转关系已经使用扩展了的IFML表示出来,ViewController间进行跳转时如果需要对涉及了跳转的源ViewController和目的ViewController进行生命周期方法的编码,在源ViewController和目的ViewController的Navigation Flow间添加表示源ViewController和目的ViewController的UML类图;
步骤四、对步骤三中的iOS应用平台的交互流模型,结合项目需求和iOS版本信息,完成应用开发;
41)对模型中界面ViewController,在项目中添加一个类,继承自iOS中界面UIViewController类;
42)对界面中的iOS控件,在storyboard中添加iOS控件;
43)配置storyboard中界面与UIViewController类的绑定关系;
44)步骤41)中的iOS类,在生命周期方法viewDidLoad()中完成界面加载和初始化设置等编码工作。在ViewController类中编写代码获取控件,为控件绑定事件,完成事件处理业务逻辑,添加界面跳转代码。
2.根据权利要求1所述的基于IFML的iOS开发建模方法,其特征是:首先iOS开发人员确定待开发iOS应用的界面数量以及界面间的跳转关系,确定每个界面中包括了哪些iOS控件,哪些控件需要绑定事件并且进行事件处理,事件处理完后是否进行界面间的跳转。
3.根据权利要求2所述的基于IFML的iOS开发建模方法,其特征是:对iOS应用的整体运行流程确定后,初步地使用标准IFML对iOS应用的整体运行流程中各种元素建立交互流模型,这个模型是粗粒度并且是高度抽象的,对标准IFML针对移动平台进行扩展,使用扩展后的IFML再对模型进行细化,这样得到的模型便具有了移动平台的概念,体现出移动平台的特点。
4.根据权利要求31所述的基于IFML的iOS开发建模方法,其特征是:针对iOS平台进行进一步IFML的扩展,扩展后对iOS应用运行流程进行描述刻画,得到的模型信息能够帮助iOS开发人员进行应用的开发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710307279.1A CN107133042A (zh) | 2017-05-04 | 2017-05-04 | 一种基于IFML的iOS开发建模方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710307279.1A CN107133042A (zh) | 2017-05-04 | 2017-05-04 | 一种基于IFML的iOS开发建模方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107133042A true CN107133042A (zh) | 2017-09-05 |
Family
ID=59716195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710307279.1A Pending CN107133042A (zh) | 2017-05-04 | 2017-05-04 | 一种基于IFML的iOS开发建模方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107133042A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110837358A (zh) * | 2019-10-28 | 2020-02-25 | 杭州衣科信息技术有限公司 | 一种基于iOS平台的事件引擎和数据引擎的运作方法 |
CN111475140A (zh) * | 2020-03-20 | 2020-07-31 | 湖南快乐阳光互动娱乐传媒有限公司 | 基于事件驱动架构的App组件化方法及事件驱动架构 |
CN112463142A (zh) * | 2020-11-25 | 2021-03-09 | 昆明理工大学 | 基于MDA的Android移动用户界面建模与转换方法 |
CN113010741A (zh) * | 2021-03-30 | 2021-06-22 | 南京大学 | 基于草图的移动应用模型查询方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120315972A1 (en) * | 2011-06-12 | 2012-12-13 | Discovery Bay Games, Inc. | Gaming accessory and interface apparatus for multifunctional gaming platform |
CN106162872A (zh) * | 2016-08-22 | 2016-11-23 | 京信通信技术(广州)有限公司 | 一种室内定位***、方法和基于其的信息推送***、方法 |
CN106445539A (zh) * | 2016-09-30 | 2017-02-22 | 南京大学 | 一种基于IFML的Android开发建模方法 |
CN106548008A (zh) * | 2016-10-11 | 2017-03-29 | 上海大学 | 基于智能搜索的ar中医治疗演示方法 |
-
2017
- 2017-05-04 CN CN201710307279.1A patent/CN107133042A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120315972A1 (en) * | 2011-06-12 | 2012-12-13 | Discovery Bay Games, Inc. | Gaming accessory and interface apparatus for multifunctional gaming platform |
CN106162872A (zh) * | 2016-08-22 | 2016-11-23 | 京信通信技术(广州)有限公司 | 一种室内定位***、方法和基于其的信息推送***、方法 |
CN106445539A (zh) * | 2016-09-30 | 2017-02-22 | 南京大学 | 一种基于IFML的Android开发建模方法 |
CN106548008A (zh) * | 2016-10-11 | 2017-03-29 | 上海大学 | 基于智能搜索的ar中医治疗演示方法 |
Non-Patent Citations (3)
Title |
---|
孙克红: ""基于ios***平台的采空区三维可视化应用研究"", 《中国优秀硕士学位论文全文数据库工程科技辑》 * |
网友:HAO_QI: "谷歌J2ObjC:打破Android应用与iOS应用之间的语言障碍", 《CSDN论坛》 * |
网友:WEIXIN_30872789: "IOS与ANDROID框架及应用开发模式对比一", 《CSDN论坛》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110837358A (zh) * | 2019-10-28 | 2020-02-25 | 杭州衣科信息技术有限公司 | 一种基于iOS平台的事件引擎和数据引擎的运作方法 |
CN110837358B (zh) * | 2019-10-28 | 2021-11-02 | 杭州衣科信息技术股份有限公司 | 一种基于iOS平台的事件引擎和数据引擎的运作方法 |
CN111475140A (zh) * | 2020-03-20 | 2020-07-31 | 湖南快乐阳光互动娱乐传媒有限公司 | 基于事件驱动架构的App组件化方法及事件驱动架构 |
CN111475140B (zh) * | 2020-03-20 | 2023-09-22 | 湖南快乐阳光互动娱乐传媒有限公司 | 基于事件驱动架构的App组件化方法及事件驱动架构 |
CN112463142A (zh) * | 2020-11-25 | 2021-03-09 | 昆明理工大学 | 基于MDA的Android移动用户界面建模与转换方法 |
CN113010741A (zh) * | 2021-03-30 | 2021-06-22 | 南京大学 | 基于草图的移动应用模型查询方法 |
CN113010741B (zh) * | 2021-03-30 | 2023-09-05 | 南京大学 | 基于草图的移动应用模型查询方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107133042A (zh) | 一种基于IFML的iOS开发建模方法 | |
US20090313004A1 (en) | Platform-Independent Application Development Framework | |
Zukowski | The definitive guide to Java Swing | |
JPH10177467A (ja) | マルチタスク・データ処理システム及び方法 | |
Popp et al. | Tool support for automated multi-device GUI generation from discourse-based communication models | |
CN101374213A (zh) | 电视人机界面自定义的实现方法 | |
CN103472743A (zh) | 可视化步骤编程法 | |
CN113610984A (zh) | 一种基于Hololens2全息眼镜的增强现实方法 | |
CN106126213B (zh) | 一种基于IFML的Android开发建模方法 | |
CN106445539A (zh) | 一种基于IFML的Android开发建模方法 | |
Lewis et al. | Native mobile development: a cross-reference for iOS and Android | |
CN102662662A (zh) | 嵌入式图形界面生成***及方法 | |
CN113010168A (zh) | 一种基于场景树的用户界面生成方法 | |
Smyth | Android Studio 4.1 Development Essentials-Kotlin Edition | |
Magni | Delphi GUI Programming with FireMonkey: Unleash the full potential of the FMX framework to build exciting cross-platform apps with Embarcadero Delphi | |
Cohen et al. | GUI design for Android apps | |
Cornez | Android Programming Concepts | |
CN103902274A (zh) | 智能电视ui开发的平台 | |
Zdziarski | iPhone SDK application development: Building applications for the AppStore | |
Taeumel et al. | Applying data-driven tool development to context-oriented languages | |
JP4925514B2 (ja) | 内外イベントドリブン方式によるプログラム実行制御方法、プログラム、実行制御装置および記録媒体 | |
Smyth | Android Studio 3.5 Development Essentials-Kotlin Edition: Developing Android 10 (Q) Apps Using Android Studio 3.5, Kotlin and Android Jetpack | |
CN109062554A (zh) | 一种面向多操作对象的编程方法 | |
Tissoires et al. | Hayaku: designing and optimizing finely tuned and portable interactive graphics with a graphical compiler | |
Smyth | Android Studio 3.6 Development Essentials-Kotlin Edition: Developing Android 10 (Q) Apps Using Android Studio 3.6, Kotlin and Android Jetpack |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170905 |