CN105556468A - 从应用本身内初始化和引导的应用定制 - Google Patents

从应用本身内初始化和引导的应用定制 Download PDF

Info

Publication number
CN105556468A
CN105556468A CN201480048998.0A CN201480048998A CN105556468A CN 105556468 A CN105556468 A CN 105556468A CN 201480048998 A CN201480048998 A CN 201480048998A CN 105556468 A CN105556468 A CN 105556468A
Authority
CN
China
Prior art keywords
application
user
template
customization
amendment
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.)
Granted
Application number
CN201480048998.0A
Other languages
English (en)
Other versions
CN105556468B (zh
Inventor
D·A·斯劳森
D·巴尔-卡斯皮
G·S·林霍斯特
I·阿齐滋
N·C·维顿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105556468A publication Critical patent/CN105556468A/zh
Application granted granted Critical
Publication of CN105556468B publication Critical patent/CN105556468B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

提供了从原始应用内初始化和引导的应用定制,其中,用户能够既使用应用又定制应用。在由原作者开发的应用的图形用户接口内,能够接收来自应用的定制器用户的交互以根据原作者没有为应用创建的一组可用修改对应用做出修改。能够利用可通过开发者程序服务或应用商店或市场得到的功能来执行修改。

Description

从应用本身内初始化和引导的应用定制
背景技术
软件应用普遍用于提供娱乐,辅助用户执行任务,以及执行各种任务。一些应用可以包含大量的功能,例如通过诸如Office和Office365TM、ApacheOpenOfficeTMOfficeSuite、AppleGoogleDriveTMAdobe以及甚至Amazon阅读器之类的办公套件(OfficeSuites)可得到的大量的功能。其它应用提供用于处理某些任务的特定的或有限的功能,例如专注于Facebook的消息收发组件的FacebookMessenger以及由Accuweather,Inc提供的天气应用。这些功能更有限的应用(以及甚至是全功能的应用)常用在移动设备上。用于移动设备(包括电话、平板设备、平板手机、膝上型设备以及可佩戴设备)的应用以及用于台式设备(包括Mac和PC)的应用通常称为“应用(app)”。
要购买应用,人们经常使用他们的移动电话、平板设备或其它计算设备来在“应用商店”中搜索以找到期望的应用,例如游戏、媒体应用、生产力应用等,这些应用然后被下载并安装,或者作为网络应用递送,以及在他们的移动电话、平板设备或其它计算设备上轻松地运行。应用商店是指针对应用的分布式平台。应用商店的示例包括Appstore、GooglePlayTMAppStore,PhoneStore和OfficeStore。
发明内容
描述了一种应用内定制的技术和系统。
描述了一些创建应用的方法,其中,能够在由原作者开发的应用中接收到与应用的交互以根据原作者没有为所述应用创建的一组可用修改对所述应用做出修改。原作者的应用可从应用商店下载或者以另一方式从原作者接收到。所述修改能够通过与开发者平台服务通信来得到,并且在一些情况下,涉及到包含通过功能商店或应用商店获得的功能。
可以为具有应用内定制能力的应用提供第一用户接口,通过所述第一用户接口,用户能够使用所述应用,并且在进入定制模式后,可以针对所述应用提供第二用户接口,通过所述第二用户接口,用户能够修改所述应用,超越所述应用的原开发者所提供的。
提供该发明内容是为了以简化形式引入概念的选择;这些概念将在下面的具体实施方式中进一步描述。该发明内容不是旨在确定所要求保护的主题的关键特征或重要特征,也是不旨在用于限制所要求保护的主题的范围。
附图说明
图1A-1C示出了示例性应用内定制应用方案。
图2A-2I示出了用于描述应用内定制应用的各种方案的图形用户接口。
图3示出了用于应用内定制的示例性实现方式的框图。
图4示出了能够在其中实施应用的应用内定制的操作环境。
图5A和5B呈现了示出可用于实现本文所描述的技术的系统的组件的框图。
具体实施方式
描述了用于应用内定制的技术和系统,其中,虽然用户在应用内,但是该用户可以定制应用,超越应用的原开发者所提供的。应用能够如原始开发的那样使用,或者如由用户专门定制的那样使用。
在应用商店中,可供使用的应用是基于开发者已经创建的(以及通过特定分布平台可供使用的)。如果用户想要特定的功能,则他们必须浏览可供使用的应用以找到能够执行该功能的一个应用。经常,应用具有用户可能想要执行该特定功能的几乎所有方面。当存在用户希望看到包含的特征或功能时,用户或者可以向开发者发出一个将该特征添加到应用的下一版本的请求,或者可以搜索能够解决他们的需要的另一应用。本技术和服务使用户能够修改应用,以使得应用包含用户期望的特征,而无需获知如何编码或开发应用。因此,当存在用户希望在应用中看到的其它事项(以及用户不希望构建他们自己的应用)时,用户不局限于通过提交请求给开发者和/或搜索能够满足那些需要的另一应用来解决那些问题。
应用内定制使得用户能够以超越应用中硬编码的设置选项的方式来修改它们从应用商店下载的应用。例如,应用的终端用户能够调节布局,改变背景图像,添加字段到数据概要,规定逻辑(诸如验证规则或者包含相关联的系统行为的工作流),以及在一些情况下调节一些功能以及添加特征,所有都不需要获知如何编程。
可定制应用(应用内定制应用)能够供包括智能手机、平板设备(包括Apple和Microsoft)以及可佩戴式计算机的用户设备使用。不同能力的其它形状因数的设备和器具也可以使用应用内可定制应用。可定制应用是针对用户设备的应用,其使用户能够改动、编辑以及通过其它方式调整应用的元件,以使得用户能够修改应用而更好地满足用户的需要和兴趣。
图1A-1C示出了示例性应用内定制应用方案。在一个方案中,如图1A所示,应用或“app”定制器101可以例如从应用商店111下载“模板应用”(110)。模板应用是应用内可定制应用的一个示例并且可以包括以空白开始(例如,因为模板应用实例化空白数据库)并且当初始启动时由应用定制器进行填充的形式和字段。
应用模板可以包含用户想要消费的全部功能或特征,或者可以包含用户发现令人愉悦或有用的主题或其它方面。应用模板的多样性和复杂性能够以类似于用于在诸如的演示应用中创建演示的模板或者用于日历、生日卡或诸如的文字处理应用中的备忘录文件的模板相似的多样性和方式来提供。
例如,应用定制器101可以打开模板应用(112)且进入定制模式(113),这使得模板应用能够访问开发者程序服务115并通过开发者程序服务115提供定制能力。模板应用能够通过与开发者程序服务115通信(114)来使应用定制器能够在应用自身内的同时定制应用(116)。在一些情况下,模板应用可以表现为完整的且随时可用的应用。在其它情况下,模板应用可以完全地或部分地为空白。模板应用或通用应用可以被定制,定制的应用可进一步被定制或者使得更加通用。
应用模板可以包括使能定制的视图(用户接口屏幕)。一个视图可以包括“主页”或设置视图(例如,诸如设置视图220),其使能访问和/或控制包括但不限于全局应用设置、标题、主题、用户许可管理、添加/移除应用功能和特征以及管理样本数据的方面。
应用定制器101能够执行定制,而不需要编程背景或平台来适应他们个体或组织的需要。对模板应用的定制可以包括但不限于,显示或隐藏字段或表格,添加全新的字段或表格,在一些情况下移除字段或表格,以及个性化应用名称、背景或主题。应用定制器101可以添加并配置应用功能/特征并且甚至能够管理用于应用用户的许可。例如,应用定制器101可能已经购买了婚礼规划应用。应用定制器101可以决定他们想要有用于婚礼嘉宾的t恤衫并且他们希望并入协调和订购t恤衫的能力作为婚礼规划应用的一部分。应用定制器101然后可以在处于定制模式的同时添加t恤衫尺寸的字段以及RSVP字段,即使RSVP字段最初仅指示出席人的数量、姓名和食物选择。
应用定制器101能够通过与应用本身交互来定制应用。定制可以是对应用的特定修改。修改可以来自一组可用的修改,包括模板应用的原开发者使其能够进行免费修改的特征(或者不禁止对本文所描述的服务的访问),以及在一些情况下来自能够通过与功能商店或应用商店通信而扩展的修改。
定制的应用可以保存作为应用实例(117),其可以取代模板应用,或者在一些情况下,独立于模板应用而保存。应用可针对应用的全部实例或者仅针对个性化实例进行修改。
应用定制器101能够使用应用实例(118),例如通过从定制模式(或者在应用实例的后续启动时作为缺省模式)选择并进入“应用实例”使用模式(119)。应用定制器101还能够执行进一步的定制(120)和更新。这可以通过用户在如操作117中保存特定的应用实例之后选择返回诸如结合操作113和116所描述的定制模式特征化功能来实现。
应用定制器拥有他们的应用实例并且能够与其它人共享他们定制的应用(121)。在一些情况下,应用定制器能够使得他们定制的应用能够经由应用商店111可得到。在一些情况下,应用定制器可以通过经由电子邮件或某其它方式的共享应用链接来向定制应用用户共享他们的定制应用。例如,如图1B所示,应用实例可以在应用商店111中可得到或者以某种方式从应用定制器(122)提供(或者使其可得到),以使定制应用用户131可以接收应用实例(140)。定制应用用户131可以是能够通过该应用导航(诸如在得到简单的教程后),能够导入或者输入数据到应用中(如通过应用定制器来使能),并且甚至可以与朋友、家人、同事等共享应用实例的实例化应用消费者。
例如,在定制应用用户131接收到应用实例(例如,经由下载或其它访问)之后,定制应用用户131能够打开应用实例141且使用(142),定制(143),或者共享(144)应用实例,以与之前的应用定制器101相似的方式。在使用方案中,定制应用用户131能够通过缺省地或者在选择时输入应用实例使用模式(145)(这可类似于结合操作119所描述的)。在定制方案中,定制应用用户131能够输入定制模式(146),诸如结合操作113、116和117所描述的。
除了(或者作为替代)在特定定制“模式”(例如,图1A和1B所示)期间使能定制之外,一些定制能够在运行时实施。例如,滑块能够在运行时改变,使得通过进程来修改视图或用户流。该运行时的改变可以在应用或应用模板中持续,以使其它用户可受益于视图或流中的改变。
在图1C中示出了运行时定制的一个方案。参考图1C,应用定制器101或定制应用用户131可以打开模板应用(150)且开始使用应用(151)。在一些情况下,应用定制器101或定制应用用户131可能已经通过定制模式定制了应用。在一些情况下,没有不同的定制模式产生;相反,对应用的改变可以在运行时实施。在使用的同时,应用可以连续地或者在特定时间(响应于命令、编程或自动地)与开发者程序服务115进行通信(152)。
应用能够通过与开发者程序服务115通信(152)来使应用定制器在处于应用本身内的同时定制应用作为运行时调节(153)。当用户对应用的视图或流进行运行时调节时(153),通过应用与开发者程序服务115之间的通信来使改变成为可能。定制的应用可保存为应用实例(154),其可以替代应用,或者在一些情况下,可以独立于应用而保存。可以针对应用的全部实例或者仅针对个性化的实例来修改应用。在一些情况下,在指示改变待保存时,在应用与服务115之间进行通信。例如,可以在做出改变时、在用户命令时、或者在退出应用时进行指示。一旦应用实例被保存(154),则用户可以使用(以及编辑)应用实例(155)或者共享应用实例(156)。在一些情况下,应用定制器可以能够使得他们定制的应用能够经由应用商店111可得到。在一些情况下,应用定制器可以通过经由电子邮件或者某种其它方式的共享应用链接而将他们定制应用共享给定制应用用户。
图2A-2I示出了用于描述应用内定制应用的各种方案的图形用户接口。图2A示出了从应用商店购买应用内定制应用。在图示的示例中,用户经由智能手机计算设备200的触摸显示器而在位于他们的智能手机设备200上的同时从应用商店接口202选择硬币收集应用201。硬币收集应用201可指示为应用模板或者表现为常规应用。硬币收集应用201能够连同其它能够购买(免费或付费)的游戏、生产力和创造性应用一起呈现。
用户可以从用户从其中购买应用的设备访问硬币收集应用210或者在硬币收集应用201的购买与用户账号绑定而不是与具体设备绑定的情况下,用户可以从与账户相关联的(或者用户从其可以登入账户)的任意设备访问硬币收集应用201。例如,用户可以启动平板式计算设备210上的硬币收集应用201。图2B示出了用于硬币收集应用20的应用模板示例性初始视图211,图2C示出了包括在指示窗/窗格212中、向用户传达如何导航、使用或修改应用的示例性初始视图211,这可以可选地在应用首次启动时(以及在后续启动时,取决于用户设置)提供。指示窗/窗格212可以包括文本、图像、命令元件、一个或多个视频,以及甚至音频元件。初始视图211可以代表应用201的初始启动页或主页。
通过使用应用内定制功能,硬币收集应用201可用于帮助管理用户保持为爱好的硬币收集,或者通过对应用进行一些调节,应用可用于在运行应用的任意设备上跟踪对于用户有意义的任何类型的信息或数据。例如,硬币收集应用201可能被定制来管理团队或俱乐部的活动或名册,管理类似会议或婚礼的事件,或者记录并共享关于某些其它类型收集的信息。不需要任何具体的编程技能来创建这样的应用。而是,一旦应用已经下载或以其它方式添加到用户的账户,应用能够被定制。利用在应用的定制模式下可得到的功能,对任何现有的应用或模板进行若干改变是可能的。
如图2C和图2D所示,用户可以选择开始定制。例如,在图2C中,指示窗/窗格212包括用户可以点击或者以其它方式进行交互(经由触摸、姿势等等)的定制命令元件214。在一些情况下,可以使用口头命令。图2D示出了当没有显示出指示窗/窗格212或者缺省菜单时的示例性入口点。图2D的定制命令元件215可以从面板216中得到,面板216在用户处于应用中时(不必局限于初始视图211)执行滑动或触摸姿势时而出现。响应于接收到定制命令(例如,经由命令元件214或215),硬币收集应用201能够输入定制模式。
在一些情况下,进入定制模式的入口可以基于与图形用户接口命令元件不同的特定动作。例如,触摸且保持姿势可向应用发信号指示用户想要进入定制模式,而响应于足够长的保持,可以将可修改方面呈现给用户。作为另一示例,定制模式可以响应于语音命令。
根据进入应用的定制模式的入口,存在应用可以与其交互而用于定制的各种方式。在一些情况下,可以呈现特定图形用户接口。在一些情况下,可以提供音频接口。图2E和2F示出了用于定制模式的图形用户接口的两个示例。应当理解,这些示例仅意在示例说明,而不应理解为限制可以呈现定制接口的方式。
参考图2E,可以呈现设置接口220以使得用户可以调节能够由用户得到的某些字段。应用的各方面可通过设置接口220来修改。这些方面中的一些方面可以共用于所有应用(例如,共同的字段221),而其它方面专用于特定模板(例如,应用特定字段222)。在示例中,标题223和主题224的应用设置可被提供为可供用于定制的模板中的标准特征,而货币符号225和重量单位226的设置可由应用模板的开发者具体指定。在一些情况下,应用特定的字段可以是可移除的(例如,经由移除命令元件227),并且可以添加新的字段(例如,经由添加字段命令元件228)。当用户改变应用模板的标题时,例如,从原始的“我的硬币收集”到“我们的硬币收集”,标题可以全局地改变。类似地,用户能够通过设置接口220来改变其它可用的设置。
图2F示出了可作为设置接口220的替代或者附加使用的另一方法。在一些情况下,其中的一个示例在图2F中示出,定制模块可特定于应用的特定子部分,例如,用于定制特定控件或逻辑元件的模式。在图2F所示的定制视图230中,可编辑的每个元件能够变得在图形用户接口内是“活动的”。在一些情况下,元件、文本和图像可以包括处于活动的标记,例如高亮显示、虚线框或其它指示符。在示例中,应用标题被指示为可移除的(231)和文本可编辑的(232)。
在位于定制视图230内的同时,用户可以删除,以及和/或将应用的部分四处移动(例如,通过点击和拖曳)以改变其布局和外观。另外,可能的是改变应用的部分以包含不同的数据字段,这可用于帮助用户跟踪和管理与用户特定需要相关的数据或信息。例如,可以改变视图中所示的硬币类型以显示出添加到收集中的日期项(例如在选择233时)。
能够创建信息的新视图,连同添加如图2G所示的另外的字段一起。参考图2G,用户可以通过菜单命令或拖曳以及重布置字段来改变应用外观和工作的方式,或者示例性改变视图看起来类似电子表格(例如,在表格视图240中)。其它改变可涉及到添加或删除列,从而改变应用能够收集或向用户显示何种信息。
在一些情况下,诸如图2H和2I中所示,能够添加新的功能块以定制应用。可能的是例如使用搜索市场窗格250来搜索市场或“功能商店”以找到要添加到应用的不同功能和/或特征。如果应用最初不包括表格功能,则用户能够搜索市场来寻找表格以使图2G的表格视图240能够生成。对于图2H和2I所示的示例,地图特征251被添加,以使得用户能够在应用中显示硬币是在哪铸造的。一旦地图功能并入应用中,地图的设置能够被编辑,因此地图252使用正确的数据并且显示相关的US铸币地点(例如,经由大头针253)。能够通过这种市场访问的特征的一个示例包括基于MicrosoftOffice网络扩展功能的应用(例如,用于Office的应用)。
能够添加的其它示例性功能包括但不限于添加图表/图形、股票行情自动收录器、日历以及来自其它站点的内容。可实现以定制各种应用的特定修改包括但不限于重命名应用以及改变其标题,添加定制背景照片以个性化应用,通过移动、显示或隐藏视图的字段来改变应用的布局,创建全新的视图,以及通过添加或删除字段或表格来改变应用的功能,定制诸如数据验证的逻辑或步骤、工作流进程的定时参数或通知规则,以及将新的功能添加到诸如图表、地图和日历之类的应用。
虽然针对视觉接口呈现了大量示例,但实施例不限于这些。例如,在针对应用内定制的一些实现方式中,应用可以是诸如交互式语音响应(IVR)系统的一部分的音频应用。IVR系统应用可以包括应用内定制,其中用户可以利用触摸音调或语音命令来对菜单编程。运行于诸如MicrosoftSony系列或Nintendo之类的视频游戏控制台上的应用内定制应用也可以通过语音命令来配置。
通过应用内定制,还可能的是,针对其可运行的特定平台调节应用。可针对特定的设备/形状因数来修整应用的布局。另外,定制器用户能够创建这样的应用实例:所述应用实例指向经修整而平衡各种设备的特定强度或限制的总体解决方案的特定形式或视图或功能的子集。
定制器用户能够以特定平台的某些特征为目标或者利用应用要在其上运行的基础设备的能力。例如,定制器用户可以添加使用GPS数据的特征;用户可以表明该特征在应用运行于启用GPS的设备上时而被启用。使用GPS数据的特征的一个示例是对信息的基于位置的呈现,诸如“附近的餐馆”。
作为另一示例,定制器用户可以选择定制应用以调节专门针对大形状因素设备的特征,其能够显示比小形状因数设备更多的细节和附加元件。类似地,可以为触摸设备添加使能触摸的特征。
在用例方案中,定制器用户可能已经购买了招聘应用(具有应用内定制能力)来用作帮助用户的公司协调他们招聘的工具。用户可以决定添加用于批准进程的工作流作为招聘应用的部分。由于该公司的批准进程包括通常在各位置处以及利用移动招聘者执行的进程的部分以及通过其它人(或在中央位置处)且可能与移动招聘者无关的进程的部分,所以定制器用户能够通过简单地定制购买的招聘应用来配置专门用于这些角色的应用的实例。
因此,原始招聘应用可以包括一组应用,具有供使用的功能子集。在一些情况下,定制器用户可以关闭应用中的与移动招聘者无关和/或未设计成在所使用的特定设备上运行良好的一些特征(例如,用于手表计算设备的实例,用于台式计算设备的实例,以及用于电话计算设备的实例可以具有由定制器用户控制的不同级别的特征和功能)。
图3示出了用于应用内定制的示例性实现方式的框图。参考图3,能够通过开发者平台110来开发模板或原始应用300。能够利用原始特征302以及应用用户能够调节的针对原始特征的指定设置选项304来创建模板/原始应用300。
在许多应用中,用户能够修改一些设置,例如通过作为指定设置选项304的一部分的选项菜单。这些设置有时能够调节应用的表现形式以及甚至是呈现给用户的信息。应用内定制能够移除对当前在许多应用中可用的硬编码可调节设置的限制并且使用户能够对应用本身执行修改,就好像用户是应用的开发者一样,而无需要求用户能够编码或者直接与开发者工具交互。在一些情况下,应用可以包括设置菜单并且具有定制模式,在定制模式中,用户能够定制应用,以及甚至确定应用的用户能够调节的设置。
利用包括诸如和Visual之类的集成开发环境(IDE)的工具来创建许多应用。这些IDE是对于开发者而言有用的工具,但是会要求一定水平的技能。本公开的方面使终端用户避免了不得不获取工具、学习并理解如何开发应用。通过本文描述的服务,应用在无需使用开发工具的情况下是可定制的,创建了本质上可定制的应用,其中对应用的修改是在应用内的同时进行的。因此,根据由原始开发者开发的应用,用户能够对应用进行定制,现在用户称为定制应用的作者(或定制器用户)。定制应用还可以针对下一用户是可定制的,以使得下一用户也能够变成他或她自己的定制应用的作者。
为利于该应用内定制,原始开发者能够利用软件开发套件(SDK)(无论是通过IDE还是文本编辑器)来创建诸如模板/原始应用300的应用。SDK可以包括针对应用的元件的属性。本文所描述的应用内定制的各种实现方式暴露开发者指示的特定元件的那些准许修改的属性,以使得当应用的用户希望修改元件时,该元件的属性也是可修改的。在一些情况下,特定定制接口315能够由开发者平台310生成以提供用于访问开发者平台310的功能或者能够利于对应用修改的另一服务的接口。
当应用正在开发工具内开发且被分配了具有声明性本质的属性时,在开发过程中那些属性可以改变。在例如通过开发者工具创建应用的上下文中,属性是将元数据(也称为声明性信息)与代码(例如,汇编、类型、方法、性质等)相关联的性质。VisualBasic和VisualC#是包括属性的开发语言的示例。
一旦诸如模板/原始应用300的应用被开发完成,模板/原始应用300能够作为应用内定制应用(例如,具有定制许可)能够共享(320)以及可供用户使用。用户能够接收模板/原始应用300的实例(330)以及使用他们的模板/原始应用300的实例340。
用户能够通过进行来自一组可用修改中的一个或多个修改来定制他们的模板/原始应用的实例340。在一些实现方式中,应用内定制能够通过终端用户使得修改属性的能力可供使用来实现,就好像应用正由应用开发者在开发工具内修改一样。定制接口315能够利于使用来自开发者平台服务350的功能(这可以或者可以不与用于开发模板/原始应用的开发者平台310相关联)。
提供该能力的一个示例性方法是通过开发工具的应用编程接口(API),当应用处于定制模式时,应用与开发工具通信以向用户提供功能并且应用中的元件的属性变得可修改。然后,应用调用服务来启用定制。服务可从服务器提供(例如,从“云”、企业服务器、或运行应用的计算设备与其通信的另一计算设备)。在一些情况下,可从与在其上运行应用内定制应用的计算设备相同的计算设备提供服务。
虽然使得开发者工具的一些能力可供应用使用,但是在提供应用内定制的同时,应用未在开发者工具中打开。在一些情况下,能够保留原始应用的基础的代码和逻辑。在一些情况下,能够保留原始开发者的知识产权(例如,来自基础代码和逻辑)。
除了访问开发者平台服务350之外,功能商店360可被访问(或者直接通过应用实例340或者经由开发者平台服务350)以使能包含来自功能商店的特征和功能。
在一些实施例中,提供开发者工具,其经由例如使能操纵应用的概要和布局的一组API来显露功能。可以包括用于应用的一组性质,以针对每个应用的元数据的形式。这些性质可以包括但不限于标题、背景、控件、形式、字体和颜色。提供一组修改的可用API功能的非限制性示例可以包括改变颜色,添加控件,移动控件,添加新的字段,添加用于智能渲染的布局提示,重新排布,改变过滤器/分类,隐藏字段/节,改变绑定,追加,隐藏,以及在一些情况下为删除。在一些情况下,删除功能可以在应用内定制应用中最小化以抑制应用内定制应用的用户潜在的破坏动作。例如,能够防止删除固有的应用数据,或者可以提供“智能”删除,以使得确保在元件永久地去除之前不存在对元件的依赖性。
在一些情况下,应用作者(例如,原始开发者或定制器用户)能够规定什么是可定制的,例如包括一些预定义的模式来防止或鼓励一些修改。许可也可以在应用内可控和/或由原始开发者建立一些许可。
在修改体验中,用户能够添加或移除特征以及将事物四处移动。在一些下,升级或更新应用仍能够实施,以使得由应用的原始开发者(或“作者”)提供的更新或者甚至由应用的前一定制器用户提供的更新能够在应用的实例内可得到以及在用户进行的定制内可得到。对于更新可供使用的一些情况,对应用内定制应用的更新能够供下载应用的特定实例的任何人使用。应用可以在通过自动或手动合并而保持每个用户的特定定制的同时来升级/更新。如果用户偏离原始过远而具有来自所应用的升级的新特征,则该信息可传达给用户。升级是指其旧的功能映射到新的功能且数据能够或者不能在版本间保留的新一代应用。
例如,如果地图的功能被添加且连接至应用中的某数据,并且应用由原始作者升级来更新,则地图能够保持在同一地点,具有相同的数据。这能够由应用来执行,即使原作者没有留下供用户添加事物的空的地点。例如,用户可以决定表格中的一些地址应当包含地图。地图特征能够被添加到第一应用,并且当被升级时,维持那些改变。例如,升级的应用能够“恢复”成之前定制的特征。
图4示出了能够实施应用的应用内定制的操作环境。特别地,一旦开发者创建模板或应用,则可供开发者从IDE内使用的方面可以至少部分地通过模板或应用本身来维持,以使得对应用的改变能够在位于应用内的同时来进行,而不是作为编程环境的一部分。
参考图4,诸如但不限于个人计算机、台式计算机、终端、膝上型计算机、平板设备、个人数字助理(PDA)、移动电话(或智能手机)、冰箱、全球定位系统(GPS)、游戏控制台、电视机、可佩戴计算设备(例如,基于手表、基于眼镜)或者大形状因数设备(例如,MicrosoftPerceptionPixel(PPI)触摸设备)的客户端计算设备400可用于经由网络420访问应用商店或“市场”服务器410(或多个服务器)以下载或以其它方式购买应用内定制应用。在一些方案中,用户可以直接从另一用户(例如,经由电子邮件或其它电子消息)和/或经由网络420从计算设备(例如,服务器430)访问(以及甚至下载)应用内定制应用。
网络420可以是互联网、内联网、外联网、或它们的组合,并且可以是任何适当的通信网络,包括但不限于蜂窝(例如,无线电话)网络、因特网、局域网(LAN)、广域网(WAN)、WiFi网络、点对点网络或它们的组合。这些网络可涉及到网络元件的连接,诸如集线器、桥接器、路由器、交换机、服务器和网关。
网络420可以包括一个或多个连接的网络(例如,多网络环境),包括公共网络,诸如因特网,和/或私有网络,诸如安全企业私有网络。对网络420的访问可以经由一个或多个有线或无线访问网络(未示出)来提供,如本领域技术人员将会理解的。如本领域技术人员也将意识到的,通信网络可以采取若干不同形式并且能够使用若干不同的通信协议。
一般地,客户端计算设备400可以执行操作系统401以及一个或多个应用程序,诸如在图示的实施例中为应用内可定制应用402和/或网络浏览器应用403。操作系统401是用于控制客户端计算设备400的操作的计算机程序。应用内可定制应用402可以是任何针对各种实现方式中的至少一个实现方式的具有此处所描述的功能的可执行程序。
网络浏览器应用403是用于经由网络420来检索并遍历万维网(“网络”)上的信息资源以及由网络服务器在私有网络中提供的资源以及将信息资源呈现给用户(例如,渲染以用于显示)的应用程序。而且,网络浏览器应用401允许用户访问由服务器提供的信息和各种功能。在一些情况下,网络浏览器应用403能够用作访问由服务器410执行的(以及与用于存储能通过应用商店平台411得到的应用(或者应用的地址)的资源412通信的)的应用商店平台411的端口。
网络浏览器应用403还能够用作例如服务器计算机430的服务器(或多个服务器)的端口,在该服务器上应用内定制应用作为网络应用而被执行。服务器计算机430可具体实施有结合图5B的系统550所描述的方面。图示的服务器计算机430被配置为执行诸如应用内定制应用432和/或一个或多个其它应用的一个或多个应用程序。
客户端计算设备400可具体实施为结合图5A的系统500所描述的方面。
在图4所示的一个操作方案中,应用内可定制应用可以涉及到利用“瘦”客户端440访问的基于云的应用(例如,应用内可定制应用432)。
瘦客户端是指依赖于另一计算设备(通常是一个或多个服务器)来执行计算以及其它编程角色的计算设备和/或计算机程序。在一些情况下,瘦客户端涉及图形用户接口,用户通过所述图形用户接口与在服务器(或多个服务器)处操作的计算机程序进行交互。有时,网络浏览器可供在瘦客户端处使用以向服务器(或多个服务器)处操作的计算机程序提供端口。在一些情况下,仅应用内可定制应用的软件应用是“瘦客户端”,因为瘦客户端正在其上操作的计算设备能够执行针对其它软件应用的计算以及其它编程角色。
原始应用定义和应用内定制定义能够存储在云(由服务器计算机430来表示)中,并且瘦客户端440使用户能够通过渲染应用441而与基于云的应用(例如,应用内定制应用432)相接,这可以包括针对应用内定制应用的网络浏览器应用或者图形用户接口。瘦客户端440可以可替代地或者另外地包括音频用户接口(例如,到接收音频输入且发送音频输出的应用内定制应用的音频接口)。瘦客户端440可以是包括那些结合客户端计算设备400所描述的那些的任何适当的客户端计算设备。在一些情况下,客户端计算设备400能够作为瘦客户端来操作和/或包括充当瘦客户端的客户端应用。
在图4所示的另一操作方案中,应用内定制应用402、432可以经由网络420与提供开发者程序服务451的一个或多个服务器450通信以使用可从开发者程序服务451得到的功能来许可来自应用402、432内的定制。
各种应用内定制应用和开发者程序服务可以利用API彼此通信以发送请求和接收信息。
API是由程序代码组件或硬件组件(下文称为“API实现组件”)实现的接口,其允许不同的程序代码组件或硬件组件(下文称为“API调用组件”)访问和使用由API实现组件提供的一个或多个功能、方法、程序、数据结构、类和/或其它服务。API能够定义在API调用组件与API实现组件之间传递的一个或多个参数。API能够用于访问由API实现组件提供的服务或数据或者开始由API实现组件提供的操作或计算的执行。通过示例的方式,API实现组件和API调用组件可各自是操作系统、库、设备驱动器、API、应用程序或其它模块中的任何一个(应当理解,API实现组件和API调用组件可以是彼此相同或不同类型的模块)。在一些情况下,API实现组件可以至少部分地用固件、微代码或其它硬件逻辑来实施。
API调用组件可以是本地组件(即,在与API实现组件相同的数据处理系统上)或远程组件(即,在不同于API实现组件的数据处理系统上),本地组件或远程组件在网络上通过API与API实现组件通信。API通常在因特网上实现,以使得其由一组超文本传输协议(HTTP)请求消息以及符合REST(代表状态传输)或SOAP(简单对象访问协议)体系结构的用于响应消息的规定格式或结构构成。
应当理解,应用内定制应用(诸如402,432)可以是因特网应用,云连接应用、或PC或Mac上的更传统的应用。
本发明的一些方面提供了以下非限制性实施例:
示例1:一种用于创建应用的方法,包括:在由原作者开发的应用的图形用户接口内,接收与所述应用的交互以根据所述原作者没有为所述应用创建的一组可用修改对所述应用做出修改。
示例2:根据示例1所述的方法,进一步包括:从应用商店下载应用。
示例3:根据示例1-2中任一项所述的方法,其中,响应于接收到与应用的交互,通过请求来自开发者程序服务的功能来执行所述修改。
示例4:根据示例1-3中任一项所述的方法,其中,与所述应用的交互包括:移动、显示、或隐藏输入字段元件到应用的图形用户接口内的不同位置。
示例5:根据示例1-4中任一项所述的方法,其中,与所述应用的交互包括移动、显示或隐藏视图的字段。
示例6:根据示例1-5中任一项所述的方法,其中,与所述应用的交互包括创建新视图。
示例7:根据示例1-6中任一项所述的方法,其中,与所述应用的交互包括添加或删除存储用户值的数据字段。
示例8:根据示例1-7中任一项所述的方法,其中,与所述应用的交互包括添加字段到数据概要或删除数据概要的字段。
示例9:根据示例1-8中任一项所述的方法,其中,与所述应用的交互包括针对应用来定制逻辑。
示例10:根据示例9所述的方法,其中,所述逻辑包括验证规则。
示例11:根据示例9或10所述的方法,其中,所述逻辑包括包含相关联的系统行为的工作流。
示例12:根据示例1-11中任一项所述的方法,其中,与所述应用的交互包括定制定时参数。
示例13:根据示例1-12中任一项所述的方法,其中,与所述应用的交互包括定制工作流进程的通知规则。
示例14:根据示例1-13中任一项所述的方法,其中,与所述应用的交互包括对所述应用的图形用户接口的可视修改。
示例15:根据示例14所述的方法,其中,所述可视修改是标题、背景色、和背景图像中的至少一个。
示例16:根据示例1-15中任一项所述的方法,其中,所述一组修改包括能够通过与功能商店或应用商店通信可得到的至少一个可扩展特征。
示例17:根据示例1-16中任一项所述的方法,进一步包括:对于由应用的原作者所指定的设置,改变对来自可用选项列表的选项的设置。
示例18:根据示例1-17中任一项所述的方法,进一步包括:在对所述应用做出修改之后,接收对所述应用的升级,其中修改在所述升级之后自动保持。
示例19:根据示例1-18中任一项所述的方法,进一步包括:共享具有所述修改的所述应用的实例。
示例20:根据示例1-19中任一项所述的方法,其中,对所述应用的改变影响应用的任何其它用户、应用的其它实例的任何用户、和/或从应用仿制的模板的任何用户。
示例21:其中存储有指令的一个或多个计算机可读存储介质,当由一个或多个处理器执行时,这些指令引导一个或多个处理器执行方法,所述方法包括:接收模板应用;响应于从模板应用接收到定制模板应用的指示,进入定制模式初始化与开发者程序服务的通信以确定一组可用修改且使能根据在模板应用中未原始提供的一组可用修改对模板应用进行定制;接收用于定制模板应用的至少一个修改的指示;以及保存具有所述至少一个修改的模板应用的实例。
示例22:根据包括示例21的在前示例中的任一项的介质,其中,所述方法进一步包括响应于从模板应用内接收到对可扩展特征的请求而与功能商店或应用商店通信。
示例23:根据包括示例21-22的在前示例中的任一项的介质,其中,所述方法进一步包括:响应于接收到使用模板应用的实例的指示,进入应用实例使用模式且为用户提供使用模板应用实例的用户接口。
示例24:根据包括示例21-23的在前示例中的任一项的介质,其中,所述模板应用是利用包括声明性属性的编程语言来开发的。
示例25:根据包括示例24的介质,其中,开发者程序服务为所述模板应用提供改变声明性属性的功能。
示例26:根据包括示例21-25的在前示例中的任一项的介质,其中,所述方法进一步包括:响应于接收到改变来自模板应用的指定设置选项中的设置的请求,改变设置,其中,指定设置选项是在模板应用中原始地提供的。
示例27:一种系统,包括:第一应用实例,其存储在一个或多个计算机可读存储介质上且包括原始应用特征、指定设置选项、和定制接口,其中,当第一应用实例由一个或多个处理器执行时,第一应用实例引导一个或多个处理器:提供到原始应用特征的用户接口以便使用第一应用实例;以及响应于接收到初始化应用内定制的指示而进入定制模式,其中在定制模式期间,第一应用实例引导一个或多个处理器:经由定制接口初始化在开发者平台服务之间的通信,提供定制用户接口,以及将接收到的对第一应用实例的修改作为应用定制实例特征存储在一个或多个计算机可读存储介质上。
示例28:根据包括示例27的在前示例中的任一项的系统,其中具有应用定制实例特征的第一应用实例是能够作为第二应用实例共享的。
示例29:根据包括示例28的在前示例中的任一项的系统,其中至少一个应用定制实例特征包括针对所述第二应用实例要在其上执行的特定形状因数设备的定制。
示例30:根据包括示例27-29的在前示例中的任一项的系统,其中,在应用定制实例特征存储在一个或多个计算机可读存储介质上之后,当第一应用实例由一个或多个处理器执行时,第一应用实例引导一个或多个处理器,响应于针对第一应用实例的指定使用条件,提供到应用定制实例特征的第一用户接口。
示例31:根据包括示例27-30的在前示例中的任一项的系统,其中当第一应用实例由一个或多个处理器执行时,第一应用实例进一步引导一个或多个处理器:响应于接收到根据模板应用的指定设置选项改变设置的请求,改变设置,其中指定设置选项是在第一应用实例中原始地提供的。
示例32:根据包括示例27-31的在前示例中的任一项的系统,其中当第一应用实例由一个或多个处理器执行时,第一应用实例引导一个或多个处理器:响应于接收到对原始应用特征中的至少一个的升级,自动应用任何已存储的应用定制实例特征。
示例33:一种系统,包括:存储在一个或多个计算机可读存储介质上的第一应用实例,当由一个或多个处理器执行时,第一应用实例引导一个或多个处理器:提供用于使用第一应用实例的图形用户接口;以及响应于经由图形用户接口接收到对第一应用实例做出修改的交互,与开发者平台服务通信以对第一应用实例做出修改。
示例34:根据包括示例33的在前示例中的任一项的系统,其中对第一应用实例做出修改的所述交互是在第一应用实例的运行期间接收到的。
示例35:根据包括示例33或34的在前示例中的任一项的系统,其中对第一应用实例做出修改的所述交互是在第一应用实例的定制模式期间接收到的。
示例36:根据包括示例33或34的在前示例中的任一项的系统,其中所述修改是针对图形用户接口的特定元件的。
示例37:根据包括示例33或34的在前示例中的任一项的系统,其中所述修改是针对第一应用实例的特征控件或逻辑的。
图5A和5B呈现了示出可用于实现本文所描述的技术的系统的组件的框图。
参考图5A,系统500可以代表计算设备,诸如但不限于个人计算机、平板式计算机、阅读器、智能电器(例如,冰箱)、移动设备、个人数字助理、可佩戴式计算机、智能手机、膝上型计算机(笔记本或上网本)、游戏设备或控制台、台式计算机、或智能电视机。因此,可以并入结合系统500所描述的更多或更少的元件以实现特定的计算设备。
例如,系统500包括根据存储在存储系统515上的软件510的指令而变换或操纵数据的一个或多个处理器的处理系统505。处理系统505的处理器的示例包括通用中央处理单元、专用处理器、以及逻辑器件,以及任何其它类型的处理设备、组合或其变型。
软件510可以包括操作系统和诸如应用内定制应用520和/或网络浏览应用525的应用程序。设备操作系统通常控制和协调计算设备中各组件的功能,提供应用更易于与类似网络接口的下层接口连接的方式。操作系统的非限制示例包括来自微软公司的来自苹果公司的iOSTM、来自谷歌公司的OS以及来自Canonical的LinuxOS的Ubuntuvariety。
应当注意,操作系统既可以本地地实现在计算设备上,又能实现在运行于本地设备操作系统(OS)之上的软件虚拟化层上。虚拟化的OS层虽在图5A中没有描绘,但是可视为操作系统空间内的额外的嵌套群组,每个均包含OS、应用程序和API。
存储系统515可以包括能够由处理系统505读取且能够存储包括应用内定制应用520和/或浏览应用525的软件510的任何计算机可读存储介质。
存储系统515可以包括以诸如计算机可读指令、数据结构、程序模块或其它数据之类的用于存储信息的任何方法或技术实现的易失性和非易失性的、可移除和非可移除的介质。存储介质的示例包括随机存取存储器、只读存储器、磁盘、光盘、CD、DVD、闪速存储器、虚拟存储器和非虚拟存储器、磁盒、磁带、磁盘存储设备或其它磁存储设备、或任何其它适当的存储介质。在任何情况下存储介质都不是传播信号或载波。
除了存储介质外,在一些实现方式中,存储系统515还可以包括通信介质,软件可经由所述通信介质进行内部和外部通信。存储系统515可实现为单个存储设备,但是还可以实现于相对于彼此协同定位或分布的多个存储设备或子系统上。存储系统515可以包括能够与处理器505通信的额外的元件,诸如控制器。
软件510可以实现在程序指令中,在其它功能之中,当一般地由系统500或者特别地由处理系统505执行时,引导系统500或处理系统505中的一个或多个处理器如本文所述的那样操作。
一般地,当装载到处理系统505中且执行时,软件可以将计算系统500整体地从通用计算系统变换成专用计算系统,所述专用计算系统被定制以取回并处理信息以便使用并定制如本文针对每个实现方式所描述的应用内定制应用。事实上,存储系统515上的编码软件可以变换存储系统515的物理结构。物理结构的具体变换可以取决于该说明书中的不同实现方式的各种因素。这些因素的示例可以包括但不限于用于实现存储系统515的存储介质的技术以及计算机存储介质是表征为主存储设备还是辅助存储设备。
系统能够进一步包括用户接口系统530,其可以包括使用户与系统500之间能够进行通信的输入/输出(I/O)设备和组件。用户接口系统530可以包括输入设备,诸如鼠标531、跟踪板(未示出)、键盘532、用于从用户处接收触摸姿势的触摸设备533、用于检测用户的非触摸姿势以及其它运动的运动输入设备534、用于检测语言的麦克风(未示出)、以及其它类型的输入设备及其关联的能够接收用户输入的处理元件。
用户接口系统530还可以包括输出设备,诸如显示屏535、扬声器(未示出)、用于触觉反馈的触觉设备(未示出)、以及其它类型的输出设备。在一些情况下,输入设备和输出设备可组合在单个设备中,诸如既描绘图像又接收来自用户的触摸姿势输入的触摸屏显示器。可视输出能够以多种方式描绘在显示器535上,呈现图形用户接口元件、文本、图像、视频、通知、虚拟按钮、虚拟键盘、或任何其它类型的能够以可视形式描绘的信息。
用户接口系统530还可以包括由支持各种用户输入和输出设备的OS执行的用户接口软件和相关联的软件(例如,针对图形芯片和输入设备)。相关联的软件辅助OS利用定义的机制将用户接口硬件事件传送给应用程序。包括用户接口软件的用户接口系统530可以支持图形用户接口、自然用户接口、或任何其它类型的用户接口。例如,用于本文所描述的应用内定制应用的用户接口可以通过用户接口系统530来呈现。
通信接口540可以包括通信连接和设备,其允许经由一个或多个通信网络(未示出)与其它计算系统通信。共同允许系统间通信的连接和设备的示例可以包括网络接口卡、天线、功率放大器、射频(RF)电路系统、收发机以及其它通信电路系统。连接和设备可经由通信介质(诸如金属、玻璃、空气或任何其它适当的通信介质)进行通信以交换与其它计算系统或系统的网络的通信。传输到通信接口以及从通信接口的传输是通过OS来控制的,OS在必要时将通信事件通知给应用。
应当注意的是,系统500的许多元件可以包括在片上系统(SoC)设备中。这些元件可以包括但不限于处理系统505、通信接口540、以及甚至存储系统515的元件。
计算系统500通常旨在表示利用其部署和执行软件以便实现如本文所述的应用、组件或针对应用内定制应用的服务的计算系统。在一些情况下,计算系统500的方面还可以表示可以在其上筹划软件以及软件从其中可以分布、传送、下载或以其它方式提供给另外的计算系统用于部署和执行或者另外的分布的计算系统。
本文所描述的一些方面可在诸如图5B所示的系统上实施。参考图5B,系统550可以实现在单个计算设备内或者分布在协作来执行程序指令的多个计算设备或子系统上。系统550可以包括一个或多个刀片服务器设备、独立式服务器设备、个人计算机、路由器、集线器、交换机、桥接器、防火墙设备、入侵检测设备、主机式计算机、网络附接存储设备以及其它类型的计算设备。系统硬件可以根据诸如对称多处理(SMP)体系结构或非均匀存储器访问(NUMA)体系结构的任何适当的计算机体系结构来配置。
系统550可以包括处理系统555,处理系统555可以包括从存储系统565取回和执行软件560的一个或多个处理器和/或其它电路系统。处理系统555可在单个处理设备内实现,但是也可以分布在协作以执行程序指令的多个处理设备或子系统上。
处理系统555的示例包括通用中央处理单元、专用处理器和逻辑设备,以及任何其它类型的处理设备、组合或其变型。一个或多个处理设备可以包括多处理器或多核处理器并且可以根据包括但不限于精简指令集计算(RISC)指令集、复杂指令集计算(CISC)指令集或其组合的一个或多个适当的指令集而操作。在一些实施例中,一个或多个数字信号处理器(DSP)可替代通用CPU或者除了通用CPU之外也包括一个或多个数字信号处理器(DSP)作为系统的计算机硬件的一部分。
如同存储系统515,存储系统565可以包括能够由处理系统555读取且能够存储软件560的任意计算机可读存储介质。存储系统565可以实现为单个存储设备,但是也可以实现在相对于彼此协同定位或分布的多个存储设备或者子系统上。存储系统565可以包括能够与处理系统555通信的附加的元件,诸如控制器。
软件560可以实现为程序指令,在其它功能中,当一般地由系统550或者特别地由处理系统555执行时,可引导系统550或处理系统555如本文所述那样操作以便使用并定制应用内定制应用。软件560可以提供实现应用内定制应用570的至少一部分的程序指令。
软件560还可以包括附加的进程、程序或组件,诸如操作系统软件或其它应用软件。软件560还可以包括固件或者能够由处理系统555执行的机器可读处理指令的一些其它形式。
系统550可以表示任何计算系统,可以在该计算系统上筹划软件560,并且软件560可以从该计算系统分布、传送、下载或以其它方式提供给另外的计算系统,以用于部署和执行,或者另外的其它分布。
在系统550包括多个计算设备的实施例中,服务器可以包括利于计算设备之间的通信的一个或多个通信网络。例如,一个或多个通信网络可以包括利于计算设备之间的通信的局域网或广域网。一个或多个直接通信链路可包括在计算设备之间。另外,在一些情况下,计算设备能够安装在地理上分布式的位置上。在其它情况下,多个计算设备能够安装在单个地理位置上,诸如服务器群或办公室中。
可以包括通信接口575,提供允许系统550与其它计算系统(未示出)经由通信网络或网络集合(未示出)或空中进行通信的通信连接和设备。
应当注意,系统550的许多元件可以包括在片上系统(SoC)设备种。这些元件可以包括但不限于处理系统555、通信接口575以及甚至是存储系统565的元件。
应当理解的是,此处所描述的示例和实施例仅为了示例说明的目的,而且据此进行的各种修改或改变将是本领域技术人员所显而易见的且包含在本申请的精神和范围内。
虽然以特定于结构特征和/或行为的语言描述了主题,但是应当理解在随附权利要求中限定的主题不必局限于上述的特定特征或行为。而是,上述的特定特征和行为被公开作为实现权利要求的示例,并且本领域技术人员所认识到的其它等同特征和行为应在权利要求的范围内。

Claims (14)

1.一种用于创建应用的方法,包括:
在由原作者开发的应用的图形用户接口内,接收与所述应用的交互以根据所述原作者没有为所述应用创建的一组可用修改对所述应用做出修改。
2.如权利要求1所述的方法,其中,与所述应用的所述交互包括以下中的至少一个:添加或删除到数据概要的字段、以及定制针对所述应用的逻辑。
3.如权利要求1所述的方法,其中,响应于接收到与所述应用的所述交互,通过请求来自开发者程序服务的功能来执行所述修改。
4.如权利要求1所述的方法,其中,所述一组修改包括能够通过与功能商店或应用商店通信得到的至少一个可扩展特征。
5.如权利要求1所述的方法,进一步包括:
在对所述应用做出所述修改之后,接收对所述应用的升级,其中,所述修改在所述升级之后自动地保持。
6.一种系统,包括:
第一应用实例,其存储在一个或多个计算机可读存储介质上,且包括原始应用特征、指定设置选项、以及定制接口,其中,当所述第一应用实例由一个或多个处理器执行时,所述第一应用实例引导所述一个或多个处理器进行以下操作:
提供到所述原始应用特征的用户接口以用于使用所述第一应用实例;以及
响应于接收到初始化应用内定制的指示而进入定制模式,其中,在定制模式期间,所述第一应用实例引导所述一个或多个处理器进行以下操作:
经由所述定制接口来初始化与开发者平台服务的通信,
提供定制用户接口,以及
将接收到的对所述第一应用实例的修改作为应用定制实例特征存储在所述一个或多个计算机可读存储介质上。
7.如权利要求6所述的系统,其中,具有所述应用定制实例特征的所述第一应用实例是能够作为第二应用实例共享的。
8.如权利要求6所述的系统,其中,当所述第一应用实例由所述一个或多个处理器执行时,所述第一应用实例进一步引导所述一个或多个处理器进行以下操作:
响应于接收到对根据所述模板应用的所述指定设置选项来改变设置的请求,改变所述设置,其中,所述指定设置选项是在所述第一应用实例中原始地提供的。
9.如权利要求6所述的系统,其中,当所述第一应用实例由一个或多个处理器执行时,所述第一应用实例引导所述一个或多个处理器进行以下操作:
响应于接收到对所述原始应用特征中的至少一个的升级,自动地应用任何已存储的应用定制实例特征。
10.一种或多种其上存储有指令的计算机可读存储介质,当由一个或多个处理器执行时,所述指令引导所述一个或多个处理器执行方法,所述方法包括:
接收模板应用;
响应于接收到从所述模板应用内定制所述模板应用的指示,进入定制模式,初始化与开发者程序服务的通信以确定一组可用修改,并且使能根据在所述模板应用中未原始提供的所述一组可用修改对所述模板应用进行定制;
接收用于定制所述模板应用的至少一个修改的指示;以及
保存具有所述至少一个修改的所述模板应用的实例。
11.如权利要求10所述的介质,其中,所述方法进一步包括:响应于从所述模板应用内接收到对可扩展特征的请求,与功能商店或应用商店进行通信。
12.如权利要求10所述的介质,其中,所述方法进一步包括:响应于接收到使用所述模板应用的所述实例的指示,进入应用实例使用模式并且为用户提供使用所述模板应用的所述实例的用户接口。
13.如权利要求10所述的介质,其中,所述模板应用是利用包括声明性属性的编程语言来开发的。
14.如权利要求13所述的介质,其中,所述开发者程序服务向所述模板应用提供用于改变所述声明性属性的功能。
CN201480048998.0A 2013-09-06 2014-09-03 从应用本身内初始化和引导的应用定制的方法和系统 Active CN105556468B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361874677P 2013-09-06 2013-09-06
US61/874,677 2013-09-06
US14/320,457 US9880712B2 (en) 2013-09-06 2014-06-30 In-application customization
US14/320,457 2014-06-30
PCT/US2014/053770 WO2015034853A1 (en) 2013-09-06 2014-09-03 Application customization initiated and directed from within the application itself

Publications (2)

Publication Number Publication Date
CN105556468A true CN105556468A (zh) 2016-05-04
CN105556468B CN105556468B (zh) 2019-03-01

Family

ID=52626797

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480048998.0A Active CN105556468B (zh) 2013-09-06 2014-09-03 从应用本身内初始化和引导的应用定制的方法和系统

Country Status (4)

Country Link
US (1) US9880712B2 (zh)
EP (1) EP3042281A1 (zh)
CN (1) CN105556468B (zh)
WO (1) WO2015034853A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113924544A (zh) * 2019-06-07 2022-01-11 微软技术许可有限责任公司 跨应用共享用户界面定制

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10387519B2 (en) * 2014-06-30 2019-08-20 Oath Inc. Method and system for automatic generation of personalized applications
GB201418612D0 (en) * 2014-10-20 2014-12-03 Umajin Ltd Umajin 1
CN105791079B (zh) * 2014-12-24 2019-05-07 瞬联软件科技(北京)有限公司 基于动态图格的即时通信方法、客户端及系统
US10028116B2 (en) * 2015-02-10 2018-07-17 Microsoft Technology Licensing, Llc De-siloing applications for personalization and task completion services
US20170052765A1 (en) * 2015-08-17 2017-02-23 Pai-Tsung Lee Method and system for creating app
US9696967B2 (en) 2015-11-09 2017-07-04 Microsoft Technology Licensing, Llc Generation of an application from data
US9891890B2 (en) * 2015-11-09 2018-02-13 Microsoft Technology Licensing, Llc Generation of an application from template
US9588760B1 (en) * 2015-11-24 2017-03-07 International Business Machines Corporation Software application development feature and defect selection
US10296190B2 (en) 2015-12-11 2019-05-21 Microsoft Technology Licensing, Llc Spatially organizing communications
CN105867176A (zh) * 2016-03-23 2016-08-17 浙江风向标科技有限公司 应用架构的切换方法及装置
US10606450B2 (en) * 2016-06-24 2020-03-31 Accenture Global Solutions Limited Method and system for visual requirements and component reuse driven rapid application composition
US10819663B2 (en) * 2016-08-18 2020-10-27 Board Of Regents, The University Of Texas System Interactive mobile service for deploying automated protocols
CN106528304A (zh) * 2016-10-31 2017-03-22 努比亚技术有限公司 一种分享适配器及其配置方法、调用方法和装置及移动终端
US10649739B2 (en) * 2016-12-20 2020-05-12 Microsoft Technology Licensing, Llc Facilitating application development
US10628179B2 (en) * 2017-05-19 2020-04-21 Microsoft Technology Licensing, Llc Universal graphical user interface objects
US10955994B2 (en) * 2017-06-02 2021-03-23 Apple Inc. User interfaces for downloading applications on an electronic device
WO2020018070A1 (en) * 2018-07-16 2020-01-23 Google Llc Embedding productivity applications in third party platforms
US10761817B2 (en) 2018-07-26 2020-09-01 Pershing LLC System and method for facilitating an instance-specific user interface
US20210382729A1 (en) * 2018-11-06 2021-12-09 Hewlett-Packard Development Company, L.P. Dynamic modification of application
CA3117852A1 (en) * 2018-11-14 2020-05-22 Wix.Com Ltd. System and method for creation and handling of configurable applications for website building systems
AU2020100285B4 (en) * 2019-03-18 2020-09-10 Apple Inc. User interfaces for subscription applications
EP3726373B1 (en) * 2019-04-15 2024-03-06 Mendix Technology B.V. Creating an app method and system
CN113255709A (zh) 2020-02-11 2021-08-13 阿里巴巴集团控股有限公司 图像元素搭配方法及装置和模型训练方法及装置和数据处理方法
US11630644B2 (en) * 2021-05-27 2023-04-18 Bank Of America Corporation Service for configuring custom software

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007089320A2 (en) * 2005-11-23 2007-08-09 Tele Tech Holdings, Inc. Web-based visual development environment
CN101593078A (zh) * 2008-05-29 2009-12-02 株式会社理光 屏幕编辑装置、屏幕编辑方法和计算机可读信息记录介质
CN102541556A (zh) * 2010-12-29 2012-07-04 微软公司 分布式应用程序的设计平台
CN102968312A (zh) * 2011-12-20 2013-03-13 微软公司 用于应用扩展程序的用户界面占位符
US20130117719A1 (en) * 2011-11-07 2013-05-09 Sap Ag Context-Based Adaptation for Business Applications
CN103207780A (zh) * 1995-12-29 2013-07-17 韦斯技术公司 用于在终端上显示窗口应用程序的方法和设备
WO2013121302A2 (en) * 2012-02-14 2013-08-22 Media Direct, Inc. Systems and methods for a specialized application development and deployment platform

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2578466A1 (en) 2007-01-12 2008-07-12 Truecontext Corporation Method and system for customizing a mobile application using a web-based interface
US8056113B2 (en) * 2009-02-05 2011-11-08 Sony Corporation Mobile consumer electronic applications on internet video platform
US20100281475A1 (en) 2009-05-04 2010-11-04 Mobile On Services, Inc. System and method for mobile smartphone application development and delivery
US9753702B2 (en) 2010-10-22 2017-09-05 Paul Hershenson Systems and methods for creating integrated applications for electronic devices
US8898629B2 (en) 2011-04-06 2014-11-25 Media Direct, Inc. Systems and methods for a mobile application development and deployment platform
US20130159892A1 (en) 2011-08-17 2013-06-20 Weejot Ltd. Non-technical creation of mobile web applications
US20140173563A1 (en) * 2012-12-19 2014-06-19 Microsoft Corporation Editor visualizations

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103207780A (zh) * 1995-12-29 2013-07-17 韦斯技术公司 用于在终端上显示窗口应用程序的方法和设备
WO2007089320A2 (en) * 2005-11-23 2007-08-09 Tele Tech Holdings, Inc. Web-based visual development environment
CN101593078A (zh) * 2008-05-29 2009-12-02 株式会社理光 屏幕编辑装置、屏幕编辑方法和计算机可读信息记录介质
CN102541556A (zh) * 2010-12-29 2012-07-04 微软公司 分布式应用程序的设计平台
US20130117719A1 (en) * 2011-11-07 2013-05-09 Sap Ag Context-Based Adaptation for Business Applications
CN102968312A (zh) * 2011-12-20 2013-03-13 微软公司 用于应用扩展程序的用户界面占位符
WO2013121302A2 (en) * 2012-02-14 2013-08-22 Media Direct, Inc. Systems and methods for a specialized application development and deployment platform

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113924544A (zh) * 2019-06-07 2022-01-11 微软技术许可有限责任公司 跨应用共享用户界面定制
US11972102B2 (en) 2019-06-07 2024-04-30 Microsoft Technology Licensing, Llc Sharing user interface customization across applications

Also Published As

Publication number Publication date
US9880712B2 (en) 2018-01-30
CN105556468B (zh) 2019-03-01
WO2015034853A1 (en) 2015-03-12
US20150074546A1 (en) 2015-03-12
EP3042281A1 (en) 2016-07-13

Similar Documents

Publication Publication Date Title
CN105556468A (zh) 从应用本身内初始化和引导的应用定制
AU2016299874C1 (en) System integrating a mobile device application creation, editing and distribution system with a website design system
US10382371B2 (en) System and methods for card interaction and assigning cards to devices
KR102324286B1 (ko) 애플리케이션 인터페이스 관리 방법 및 장치
Firtman Programming the mobile web
CN105830150B (zh) 基于意图的用户体验
US9134964B2 (en) Systems and methods for a specialized application development and deployment platform
US8875095B2 (en) Systems and methods for a mobile application development and deployment platform
US20140109046A1 (en) Systems and methods for a voice- and gesture-controlled mobile application development and deployment platform
Deitel et al. Android for programmers: an app-driven approach
CN109101248A (zh) 计算机应用促进
KR20200013915A (ko) 애플리케이션의 개발을 지원하는 플랫폼의 동작 방법 및 플랫폼을 제공하는 서버
Wilken Ionic in action: Hybrid mobile apps with Ionic and AngularJS
Morris et al. Introduction to bada: A Developer's Guide
KR101312456B1 (ko) 모바일 단말의 홈 스크린 큐레이션 시스템
US20150113498A1 (en) Modeling customizations to a computer system without modifying base elements
Hermes et al. Mobile development using xamarin
US20160328219A1 (en) Mobile application development collaboration system
Lee et al. Beginning Windows Phone App Development
CN107003867A (zh) 使用区段以用于跨平台的应用的定制
WO2018083679A1 (en) System and method for providing personalized solutions using bots
Rui et al. Comparison of Windows Phone 8 & Windows 8
Ong et al. Introduction to the HoloToolkit
Allen Introducing Android
US20150120272A1 (en) Expressing extensions with customized design time behavior

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant