TW202001548A - 應用程式的開發方法和裝置 - Google Patents
應用程式的開發方法和裝置 Download PDFInfo
- Publication number
- TW202001548A TW202001548A TW108108593A TW108108593A TW202001548A TW 202001548 A TW202001548 A TW 202001548A TW 108108593 A TW108108593 A TW 108108593A TW 108108593 A TW108108593 A TW 108108593A TW 202001548 A TW202001548 A TW 202001548A
- Authority
- TW
- Taiwan
- Prior art keywords
- application
- information
- functional component
- data
- component
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- 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/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申請實施例提供了一種應用程式的開發方法和裝置,所述方法包括:確定應用程式的功能組件,所述功能組件具有相應的編碼資訊;生成與所述功能組件相對應的結構化描述資訊;依據所述結構化描述資訊對所述功能組件的編碼資訊進行配置,以獲得目標組件;獲取待加載的資料;針對多個應用端,分別將所述目標組件和所述待加載的資料編譯為可執行程式。本實施例可以在不同的應用端使同一套代碼編寫方式,然後透過構建翻譯成不同的應用端支持的可執行程式,無需針對不同的應用端分別進行開發,實現了一套業務邏輯的在多個應用端的複用,提高了應用程式的開發效率,降低了應用程式的開發成本。
Description
本申請涉及計算機技術領域,特別是涉及一種應用程式的開發方法和一種應用程式的開發裝置。
React是一個用於構建用戶界面的JavaScript(一種直譯式腳本語言)庫,其設計思想極其獨特,性能也十分出眾,然而代碼邏輯卻非常簡單。於是有越來越多的開發人員開始關注和使用React,並透過React進行應用程式的開發。
在基於React進行的應用程式的開發過程中,開發人員首先需要將業務需求拆分為具體步驟,然後按照各個步驟的順序依次去實現、整合,直到最終完成整個應用程式的開發。在此過程中,開發形式往往是以串行方式,而非協定配置的形式來進行的。
按照React此種開發方式,其最終產出的語法結構是類似XML(Extensible Markup Language,可擴展標記語言)結構,透過該結構進行應用程式的搭建,如果僅僅是應用在一個平台上,不會有特別的問題出現。但是,針對具體編程實現來完成的開發任務,很難做到將同一種業務模型和邏輯應用到其他不同的平台上,使得基於React開發完成的應用程式難以適配多個不同的平台。如果要將該應用程式應用在多個平台上,就需要針對各個平台分別進行開發,導致開發成本的急劇增加。
鑒於上述問題,提出了本申請實施例以便提供一種克服上述問題或者至少部分地解決上述問題的一種應用程式的開發方法和相應的一種應用程式的開發裝置。
為了解決上述問題,本申請公開了一種應用程式的開發方法,包括:
確定應用程式的功能組件,所述功能組件具有相應的編碼資訊;
生成與所述功能組件相對應的結構化描述資訊;
依據所述結構化描述資訊對所述功能組件的編碼資訊進行配置,以獲得目標組件;
獲取待加載的資料;
針對多個應用端,分別將所述目標組件和所述待加載的資料編譯為可執行程式。
可選地,所述生成與所述功能組件相對應的結構化描述資訊的步驟包括:
確定各個功能組件的邏輯實現資訊;
將所述邏輯實現資訊轉換為結構化描述資訊。
可選地,所述結構化描述資訊為Json Schema描述資訊。
可選地,所述依據所述結構化描述資訊對所述功能組件的編碼資訊進行配置,以獲得目標組件的步驟包括:
加載所述功能組件的編碼資訊至解析引擎;
按照所述結構化描述資訊,在所述解析引擎中對所述功能組件的編碼資訊進行渲染,以獲得目標組件。
可選地,所述加載所述功能組件的編碼資訊至解析引擎的步驟包括:
呼叫預設的註冊函數;
透過所述註冊函數,將所述功能組件的編碼資訊註冊至解析引擎。
可選地,所述獲取待加載的資料的步驟包括:
確定各個功能組件的資料配置規則;
按照所述資料配置規則,獲取相應的待加載資料。
可選地,所述針對多個應用端,分別將所述目標組件和所述待加載的資料編譯為可執行程式的步驟包括:
確定目標應用端,所述目標應用端具有對應的編譯方式;
按照所述編譯方式,將所述目標組件和所述待加載的資料編譯為所述目標應用端的可執行程式。
可選地,還包括:
在所述目標應用端中運行所述可執行程式。
可選地,還包括:
對所述應用程式的功能組件進行更新或修改。
可選地,所述對所述應用程式的功能組件進行更新或修改的步驟包括:
確定待更新或修改的功能組件;
對所述待更新或修改的功能組件對應的結構化描述資訊進行更新或修改。
為了解決上述問題,本申請公開了一種應用程式的開發方法,包括:
確定應用程式的功能組件,所述功能組件具有相應的編碼資訊和邏輯實現資訊;
將所述功能組件的邏輯實現資訊轉換為Json Schema描述資訊;
加載所述功能組件的編碼資訊至解析引擎;
依據所述Json Schema描述資訊,在所述解析引擎中對所述功能組件的編碼資訊進行配置,以獲得目標組件;
獲取待加載的資料;
針對多個應用端,分別將所述目標組件和所述待加載的資料編譯為可執行程式;
分別在各個應用端中運行所述可執行程式。
為了解決上述問題,本申請公開了一種應用程式的開發裝置,包括:
確定模組,用於確定應用程式的功能組件,所述功能組件具有相應的編碼資訊;
生成模組,用於生成與所述功能組件相對應的結構化描述資訊;
配置模組,用於依據所述結構化描述資訊對所述功能組件的編碼資訊進行配置,以獲得目標組件;
獲取模組,用於獲取待加載的資料;
編譯模組,用於針對多個應用端,分別將所述目標組件和所述待加載的資料編譯為可執行程式。
為了解決上述問題,本申請公開了一種應用程式的開發裝置,包括:
確定模組,用於確定應用程式的功能組件,所述功能組件具有相應的編碼資訊和邏輯實現資訊;
轉換模組,用於將所述功能組件的邏輯實現資訊轉換為Json Schema描述資訊;
加載模組,用於加載所述功能組件的編碼資訊至解析引擎;
配置模組,用於依據所述Json Schema描述資訊,在所述解析引擎中對所述功能組件的編碼資訊進行配置,以獲得目標組件;
獲取模組,用於獲取待加載的資料;
編譯模組,用於針對多個應用端,分別將所述目標組件和所述待加載的資料編譯為可執行程式;
運行模組,用於分別在各個應用端中運行所述可執行程式。
與背景技術相比,本申請實施例包括以下優點:
本申請實施例,透過確定應用程式的各個功能組件,並生成與各個功能組件相對應的結構化描述資訊,從而可以依據上述結構化描述資訊對功能組件的編碼資訊進行配置獲得目標組件,然後在獲取待加載的資料後,可以針對多個不同的應用端,分別將上述目標組件和待加載的資料編譯為能夠在不同的應用端上運行的可執行程式。本實施例可以在不同的應用端使同一套代碼編寫方式,然後透過構建翻譯成不同的應用端支持的可執行程式,無需針對不同的應用端分別進行開發,實現了一套業務邏輯的在多個應用端的複用,提高了應用程式的開發效率,降低了應用程式的開發成本。
為使本申請的上述目的、特徵和優點能夠更加明顯易懂,下面結合附圖和具體實施方式對本申請作進一步詳細的說明。
參照圖1,示出了本申請一個實施例的一種應用程式的開發方法的步驟流程示意圖,具體可以包括如下步驟:
步驟101,確定應用程式的功能組件,所述功能組件具有相應的編碼資訊;
需要說明的是,上述應用程式可以是應用於不同的應用平台或應用端的程式或軟體。例如,Web端、Html5端、Native端等等,本實施例對此不作限定。
通常,各個應用程式都包括有相應的功能,各種功能都是透過具體的功能組件來實現的。因此,在進行應用程式的開發時,開發人員首先需要確定當前開發的應用程式應當具有哪些功能組件。
在本申請實施例中,各個功能組件具有的編碼資訊可以是由開發人員在確定出相應的功能組件後按照特定的開發方式進行編寫得到的組件代碼。在具體實現中,開發人員可以使用React Component編寫應用程式各個功能組件的代碼。
React Component是一個抽象基類,透過實現一個它的子類,並且至少定義一個render()方法即可使用。React Component允許開發人員將UI(User Interface,用戶界面)拆分為獨立的可重用的部分,並單獨地去考慮每個部分。
步驟102,生成與所述功能組件相對應的結構化描述資訊;
在本申請實施例中,在開發人員進行應用程式的開發時,為了實現一次開發便能夠最大限度地在多個不同的應用端上應用,可以在確定出應用程式的各個功能組件後,以一種結構化的描述資訊去描述各個功能組件。
在本申請實施例中,結構化描述資訊可以是一種結構化的協定。對於應用程式的功能組件,可以透過該協定去進行描述或表達。
在具體實現中,上述結構化描述資訊可以是Json Schema描述資訊。
熟悉XML的開發人員都知道,對XML文檔的定義有一個XML Schema(模式)。同樣,對於Json文件的定義,也應該有一個Json Schema來規範Json文件的內容。因此,Json Schema是一種用以標注和驗證Json文檔的元資料的文檔,可以類比於XML Schema。相對於Json Schema,一個Json文檔就是Json Schema的一個instance(實例)。
Json Schema可以解決有關一致性驗證的問題,例如:
1、值的資料類型是否正確:可以具體規定一個值是數字、字符串等類型;
2、是否包含所需的資料:可以規定哪些資料是需要的,哪些是不需要的;
3、值的形式是不是我需要的:可以指定範圍、最小值和最大值。
如下資訊,是Json Schema描述的一種示例:
步驟103,依據所述結構化描述資訊對所述功能組件的編碼資訊進行配置,以獲得目標組件;
在本申請實施例中,透過結構化描述資訊對功能組件的編碼資訊進行配置可以在解析引擎中實現。
以結構化描述資訊為Json Schema描述資訊為例,上述解析引擎即是可以對Json Schema協定進行解析的一種裝置。透過解析引擎,可以將Json文檔最終解析為應用功能的代碼實現。
在具體實現中,可以首先提供一個註冊函數,來把功能組件的代碼資訊註冊到解析引擎中。
例如,engine.register({input: ComInput}),其中input為定義的功能組件的類型(type),comInput為具體的功能組件。
只有註冊到解析引擎中的功能組件,才能在Json Schema中完成配置,並且最終透過解析引擎才能解析並渲染出該功能組件,從而得到需要的目標組件。
步驟104,獲取待加載的資料;
通常,一個功能組件僅有樣式等資訊是不夠的,還需要有具體的行為或者資料來支持。例如,一個圖表模組,需要去拉取在該圖標中進行顯示的資料;或者,該圖表模組可能還有一些互動行為,如點擊的時候需要回應等等。這就需要具體的資料去支持。
在本申請實施例中,在獲取待加載的資料前,可以首先確定在Json Schema中配置資料的規則、相關的定制邏輯等等,然後按照上述規則或邏輯去拉取相應的資料。
步驟105,針對多個應用端,分別將所述目標組件和所述待加載的資料編譯為可執行程式。
在本申請實施例中,在完成前述各個步驟後,為了實現將待開發的應用程式應用在不同的應用端中,可以利用解析引擎,將目標組件和待加載的資料解析為不同應用端的可執行程式,從而實現一套業務邏輯在多個應用端的複用。
在本申請實施例中,透過確定應用程式的各個功能組件,並生成與各個功能組件相對應的結構化描述資訊,從而可以依據上述結構化描述資訊對功能組件的編碼資訊進行配置獲得目標組件,然後在獲取待加載的資料後,可以針對多個不同的應用端,分別將上述目標組件和待加載的資料編譯為能夠在不同的應用端上運行的可執行程式。本實施例可以在不同的應用端使同一套代碼編寫方式,然後透過構建翻譯成不同的應用端支持的可執行程式,無需針對不同的應用端分別進行開發,實現了一套業務邏輯的在多個應用端的複用,提高了應用程式的開發效率,降低了應用程式的開發成本。
參照圖2,示出了本申請一個實施例的另一種應用程式的開發方法的步驟流程示意圖,具體可以包括如下步驟:
步驟201,確定應用程式的功能組件,所述功能組件具有相應的編碼資訊;
需要說明的是,上述應用程式可以是應用於多個應用端的程式或軟體。例如,Web端、Html5端、Native端等等。
在本申請實施例中,開發人員在進行應用程式的開發前,可以首先確定該應用程式所具有的功能組件包括哪些。該應用程式具有的各種功能均可以透過各個功能組件來實現。
在本申請實施例中,應用程式各個功能組件的編碼資訊可以是由開發人員使用React Component編寫得到的功能組件的代碼。
步驟202,確定各個功能組件的邏輯實現資訊;
在本申請實施例中,各個功能組件的邏輯實現資訊可以是指該功能組件的具體功能實現,邏輯實現常常以軟體編程的形式得以體現。
步驟203,將所述邏輯實現資訊轉換為結構化描述資訊;
在本申請實施例中,上述結構化描述資訊可以是Json Schema描述資訊,Json Schema描述資訊可以是一種Json Schema協定。
為了實現一次開發便能夠最大限度地在多個不同的應用端上應用,可以在確定出應用程式的各個功能組件的邏輯實現後,以一種Json Schema協定去描述各個功能組件。
步驟204,加載所述功能組件的編碼資訊至解析引擎;
在本申請實施例中,透過結構化描述資訊對功能組件的編碼資訊進行配置可以在解析引擎中實現。
例如,在結構化描述資訊為Json Schema描述資訊時,上述解析引擎即是可以對Json Schema協定進行解析的一種裝置,如,React Engine(一種基於React的解析引擎)。透過React Engine,可以將Json文檔最終解析為應用功能的代碼實現。
在具體實現中,可以首先呼叫預設的註冊函數,透過該註冊函數,可以將功能組件的編碼資訊註冊至React Engine解析引擎。
步驟205,按照所述結構化描述資訊,在所述解析引擎中對所述功能組件的編碼資訊進行渲染,以獲得目標組件;
在本申請實施例中,只有註冊到React Engine中的功能組件,才能在Json Schema中完成配置,並且最終透過React Engine才能解析並渲染出該功能組件,從而得到需要的目標組件。
因此,在將功能組件的代碼註冊到React Engine後,可以按照Json Schema協定,在React Engine中對上述代碼進行配置和渲染,得到所需的目標組件。
步驟206,確定各個功能組件的資料配置規則;
通常,一個功能組件僅有樣式等資訊是不夠的,還需要有具體的行為或者資料來支持。例如,一個圖表模組,需要去拉取在該圖標中進行顯示的資料;或者,該圖表模組可能還有一些互動行為,如點擊的時候需要回應等等。這就需要具體的資料去支持。
在本申請實施例中,在獲取相應的資料前,可以首先確定在Json Schema中配置資料的規則、相關的定制邏輯等等。
步驟207,按照所述資料配置規則,獲取相應的待加載資料;
在確定出在Json Schema中配置資料的規則後,便可以按照這個規則去拉取相應的資料。這些資料即是在後續的開發過程中,需要用到的待加載資料,透過將這些資料加載至目標組件中,可以使得形成的各個目標組件具備了具體的行為和資料支撐。
步驟208,確定目標應用端,所述目標應用端具有對應的編譯方式;
在本申請實施例中,目標應用端可以是指當前開發的應用程式所要運行的應用端。例如,目標應用端可以是Web端、Html5端、Native端,以及,其他類型的應用端。
通常,不同的應用端具有不同的軟體開發編譯方式。因此,在確定出目標應用端後,可以進一步確定與該目標應用端相匹配的編譯方式是什麼,從而可以按照對應的編譯方式將前述步驟獲得的目標組件和待加載的資料編譯為適配於該目標應用端的可執行程式。
步驟209,按照所述編譯方式,將所述目標組件和所述待加載的資料編譯為所述目標應用端的可執行程式;
在本申請實施例中,可以按照各個應用端對應的編譯方式,透過構建方式,例如babel腳本,將一套代碼編譯成可以在不同應用端運行的可執行程式。
Babel 是一種用於編寫下一代JavaScript的編譯器,能夠把用最新標準編寫的JavaScript代碼向下編譯成可以在今天隨處可用的版本。這一過程通常被叫做“源碼到源碼”編譯,也被稱為轉換編譯。
透過上述編譯過程,使得程式能夠匹配不同的應用端,實現一次開發便能夠在多個應用端上的複用。
步驟210,在所述目標應用端中運行所述可執行程式。
在本申請實施例中,在將代碼編譯為對應目標應用端上的可執行程式後,便可以在該目標應用端上運行該程式,從而完成在多個應用端上的應用程式開發。
需要說明的是,在完成對應用程式的開發後,還可以根據應用程式在後續的使用過程中的實際需要,對應用程式的功能組件進行更新或修改,動態地替換掉已經上線的功能組件的各個內容,例如,如更改圖標、字段、顏色等等,實現對應用程式的內容的隨時更新。
在本申請實施例中,由於各個應用端共用一份結構化描述資訊,因此在需要對應用程式進行更新後修改時,可以首先確定待更新或修改的功能組件是哪一個,然後對上述待更新或修改的功能組件對應的結構化描述資訊進行更新或修改,實現一次修改多端同步,對應用程式內容快速更新。
在本申請實施例中,透過將應用程式的設計抽象為Json Schema描述,這樣PC端、Mobile端等各個不同的應用端都可以使用同一份Schema描述來生成功能組件;同時,整個應用程式都是Json資料格式的,每一次操作都是一份新的Json文檔,所有過程都是可逆的;業務邏輯透過相應的配置規則實現,不會侵入功能組件內部,降低了組件的使用難度,無需針對不同的應用端分別進行開發,實現了一套業務邏輯的在多個應用端的複用,提高了應用程式的開發效率,降低了應用程式的開發成本。
參照圖3,示出了本申請一個實施例的又一種應用程式的開發方法的步驟流程示意圖,具體可以包括如下步驟:
步驟301,確定應用程式的功能組件,所述功能組件具有相應的編碼資訊和邏輯實現資訊;
步驟302,將所述功能組件的邏輯實現資訊轉換為Json Schema描述資訊;
步驟303,加載所述功能組件的編碼資訊至解析引擎;
步驟304,依據所述Json Schema描述資訊,在所述解析引擎中對所述功能組件的編碼資訊進行配置,以獲得目標組件;
步驟305,獲取待加載的資料;
步驟306,針對多個應用端,分別將所述目標組件和所述待加載的資料編譯為可執行程式;
步驟307,分別在各個應用端中運行所述可執行程式。
在本申請實施例中,開發人員在進行應用程式的開發時,可以首先確定該應用程式所要運行的應用端包括哪些。
如圖4所示,是本申請一個實施例的一種應用程式的開發方法的原理圖。在圖4中,當前開發的應用程式可以是需要運行於Web端、Html5端,以及,Native端中。
然後,可以進一步確定該應用程式所具有的功能組件包括哪些,以及各個功能組件的邏輯實現資訊。透過這些功能組件能夠實現該應用程式的完整功能。
在確定出功能組件的邏輯實現資訊後,可以將上述邏輯實現資訊抽象為Json Schema描述,如圖4中所示的Component(組件)、Layout(佈局)、Data(資料)、Rules(配置規則)。
進而,將透過使用React Component編寫得到的各個功能組件的代碼加載至能夠解析Json Schema的React Engine解析引擎中,並在React Engine進行解析、配置和渲染,得到目標組件。
在獲取到待加載的資料後,可以針對各個應用端,將目標組件編譯為對應應用端的可執行程式,並在該應用端中進行運行。例如,在圖4中,對應於Web端,可以編譯得到適配於該Web端的Web Page(網頁頁面);對應於Html5端,可以編譯得到適配於該Html5端的Html5 APP(Html5應用程式);對應於Native端,可以編譯得到適配於該Native端的Native APP(Native應用程式)。
由於本實施例中各個步驟與前述實施例步驟201-步驟210類似,可以相互參閱,本實施例對此描述得比較簡單,相關過程可以參見上述步驟201-步驟210的描述,本實施例對此不再贅述。
需要說明的是,對於方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本申請實施例並不受所描述的動作順序的限制,因為依據本申請實施例,某些步驟可以採用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬於優選實施例,所涉及的動作並不一定是本申請實施例所必須的。
參照圖5,示出了本申請一個實施例的一種應用程式的開發裝置的示意性結構框圖,具體可以包括如下模組:
確定模組501,用於確定應用程式的功能組件,所述功能組件具有相應的編碼資訊;
生成模組502,用於生成與所述功能組件相對應的結構化描述資訊;
配置模組503,用於依據所述結構化描述資訊對所述功能組件的編碼資訊進行配置,以獲得目標組件;
獲取模組504,用於獲取待加載的資料;
編譯模組505,用於針對多個應用端,分別將所述目標組件和所述待加載的資料編譯為可執行程式。
在本申請實施例中,所述生成模組502具體可以包括如下子模組:
邏輯實現資訊確定子模組,用於確定各個功能組件的邏輯實現資訊;
邏輯實現資訊轉換子模組,用於將所述邏輯實現資訊轉換為結構化描述資訊。
在本申請實施例中,所述結構化描述資訊可以為Json Schema描述資訊。
在本申請實施例中,所述配置模組503具體可以包括如下子模組:
編碼資訊加載子模組,用於加載所述功能組件的編碼資訊至解析引擎;
編碼資訊渲染子模組,用於按照所述結構化描述資訊,在所述解析引擎中對所述功能組件的編碼資訊進行渲染,以獲得目標組件。
在本申請實施例中,所述編碼資訊加載子模組具體可以包括如下單元:
註冊函數呼叫單元,用於呼叫預設的註冊函數;
編碼資訊註冊單元,用於透過所述註冊函數,將所述功能組件的編碼資訊註冊至解析引擎。
在本申請實施例中,所述獲取模組504具體可以包括如下子模組:
資料配置規則確定子模組,用於確定各個功能組件的資料配置規則;
待加載資料獲取子模組,用於按照所述資料配置規則,獲取相應的待加載資料。
在本申請實施例中,所述編譯模組505具體可以包括如下子模組:
目標應用端確定子模組,用於確定目標應用端,所述目標應用端具有對應的編譯方式;
可執行程式編譯子模組,用於按照所述編譯方式,將所述目標組件和所述待加載的資料編譯為所述目標應用端的可執行程式。
在本申請實施例中,所述裝置還可以包括如下模組:
運行模組,用於在所述目標應用端中運行所述可執行程式。
在本申請實施例中,所述裝置還可以包括如下模組:
更新修改模組,用於對所述應用程式的功能組件進行更新或修改。
在本申請實施例中,所述更新修改模組具體可以包括如下子模組:
功能組件確定子模組,用於確定待更新或修改的功能組件;
結構化描述資訊更新修改子模組,用於對所述待更新或修改的功能組件對應的結構化描述資訊進行更新或修改。
參照圖6,示出了本申請一個實施例的另一種應用程式的開發裝置的示意性結構框圖,具體可以包括如下模組:
確定模組601,用於確定應用程式的功能組件,所述功能組件具有相應的編碼資訊和邏輯實現資訊;
轉換模組602,用於將所述功能組件的邏輯實現資訊轉換為Json Schema描述資訊;
加載模組603,用於加載所述功能組件的編碼資訊至解析引擎;
配置模組604,用於依據所述Json Schema描述資訊,在所述解析引擎中對所述功能組件的編碼資訊進行配置,以獲得目標組件;
獲取模組605,用於獲取待加載的資料;
編譯模組606,用於針對多個應用端,分別將所述目標組件和所述待加載的資料編譯為可執行程式;
運行模組607,用於分別在各個應用端中運行所述可執行程式。
對於裝置實施例而言,由於其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
本說明書中的各個實施例均採用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
本領域內的技術人員應明白,本申請實施例的實施例可提供為方法、裝置、或計算機程式產品。因此,本申請實施例可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本申請實施例可採用在一個或多個其中包含有計算機可用程式代碼的計算機可用儲存媒體(包括但不限於磁碟儲存器、CD-ROM、光學儲存器等)上實施的計算機程式產品的形式。
在一個典型的配置中,所述計算機設備包括一個或多個處理器 (CPU)、輸入/輸出介面、網路介面和內存記憶體。內存記憶體可能包括計算機可讀媒體中的非永久性儲存器,隨機存取記憶體(RAM) 及/或非揮發性內存記憶體等形式,如唯讀記憶體(ROM)或閃存(flash RAM)。內存記憶體是計算機可讀媒體的示例。計算機可讀媒體包括永久性和非永久性、可移除和非可移除媒體可以由任何方法或技術來實現資訊儲存。資訊可以是計算機可讀指令、資料結構、程式的模組或其他資料。計算機的儲存媒體的例子包括,但不限於相變內存記憶體 (PRAM)、靜態隨機存取記憶體 (SRAM)、動態隨機存取記憶體 (DRAM)、其他類型的隨機存取記憶體 (RAM)、唯讀記憶體 (ROM)、電可擦除可編程唯讀記憶體 (EEPROM)、快閃記憶體或其他內存記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、卡式磁帶,磁帶磁磁碟儲存或其他磁性儲存設備或任何其他非傳輸媒體,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,計算機可讀媒體不包括非持續性的電腦可讀媒體(transitory media),如調變的資料信號和載波。
本申請實施例是參照根據本申請實施例的方法、終端設備(系統)、和計算機程式產品的流程圖及/或方框圖來描述的。應理解可由計算機程式指令實現流程圖及/或方框圖中的每一流程及/或方框、以及流程圖及/或方框圖中的流程及/或方框的結合。可提供這些計算機程式指令到通用計算機、專用計算機、嵌入式處理機或其他可編程資料處理終端設備的處理器以產生一個機器,使得透過計算機或其他可編程資料處理終端設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程及/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程式指令也可儲存在能引導計算機或其他可編程資料處理終端設備以特定方式工作的計算機可讀儲存器中,使得儲存在該計算機可讀儲存器中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程及/或方框圖一個方框或多個方框中指定的功能。
這些計算機程式指令也可裝載到計算機或其他可編程資料處理終端設備上,使得在計算機或其他可編程終端設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程終端設備上執行的指令提供用於實現在流程圖一個流程或多個流程及/或方框圖一個方框或多個方框中指定的功能的步驟。
儘管已描述了本申請實施例的優選實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例做出另外的變更和修改。所以,所附申請專利範圍意欲解釋為包括優選實施例以及落入本申請實施例範圍的所有變更和修改。
最後,還需要說明的是,在本文中,諸如第一和第二等之類的關係術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關係或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括所述要素的過程、方法、物品或者終端設備中還存在另外的相同要素。
以上對本申請所提供的一種應用程式的開發方法和一種應用程式的開發裝置,進行了詳細介紹,本文中應用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本申請的方法及其核心思想;同時,對於本領域的一般技術人員,依據本申請的思想,在具體實施方式及應用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本申請的限制。
501‧‧‧確定模組
502‧‧‧生成模組
503‧‧‧配置模組
504‧‧‧獲取模組
505‧‧‧編譯模組
601‧‧‧確定模組
602‧‧‧轉換模組
603‧‧‧加載模組
604‧‧‧配置模組
605‧‧‧獲取模組
606‧‧‧編譯模組
607‧‧‧運行模組
圖1是本申請一個實施例的一種應用程式的開發方法的步驟流程示意圖;
圖2是本申請一個實施例的另一種應用程式的開發方法的步驟流程示意圖;
圖3是本申請一個實施例的又一種應用程式的開發方法的步驟流程示意圖;
圖4是本申請一個實施例的一種應用程式的開發方法的原理圖;
圖5是本申請一個實施例的一種應用程式的開發裝置的示意性結構框圖;
圖6是本申請一個實施例的另一種應用程式的開發裝置的示意性結構框圖。
Claims (13)
- 一種應用程式的開發方法,其特徵在於,包括: 確定應用程式的功能組件,該功能組件具有相應的編碼資訊; 生成與該功能組件相對應的結構化描述資訊; 依據該結構化描述資訊對該功能組件的編碼資訊進行配置,以獲得目標組件; 獲取待加載的資料; 針對多個應用端,分別將該目標組件和該待加載的資料編譯為可執行程式。
- 根據申請專利範圍第1項所述的方法,其中,該生成與該功能組件相對應的結構化描述資訊的步驟包括: 確定各個功能組件的邏輯實現資訊; 將該邏輯實現資訊轉換為結構化描述資訊。
- 根據申請專利範圍第2項所述的方法,其中,該結構化描述資訊為Json Schema描述資訊。
- 根據申請專利範圍第1項所述的方法,其中,所述依據該結構化描述資訊對該功能組件的編碼資訊進行配置,以獲得目標組件的步驟包括: 加載該功能組件的編碼資訊至解析引擎; 按照該結構化描述資訊,在該解析引擎中對該功能組件的編碼資訊進行渲染,以獲得目標組件。
- 根據申請專利範圍第4項所述的方法,其中,所述加載該功能組件的編碼資訊至解析引擎的步驟包括: 呼叫預設的註冊函數; 透過該註冊函數,將該功能組件的編碼資訊註冊至解析引擎。
- 根據申請專利範圍第1項所述的方法,其中,所述獲取待加載的資料的步驟包括: 確定各個功能組件的資料配置規則; 按照該資料配置規則,獲取相應的待加載資料。
- 根據申請專利範圍第1項所述的方法,其中,所述針對多個應用端,分別將該目標組件和該待加載的資料編譯為可執行程式的步驟包括: 確定目標應用端,該目標應用端具有對應的編譯方式; 按照該編譯方式,將該目標組件和該待加載的資料編譯為該目標應用端的可執行程式。
- 根據申請專利範圍第7項所述的方法,其中,還包括: 在該目標應用端中運行該可執行程式。
- 根據申請專利範圍第1項所述的方法,其中,還包括: 對該應用程式的功能組件進行更新或修改。
- 根據申請專利範圍第9項所述的方法,其中,所述對該應用程式的功能組件進行更新或修改的步驟包括: 確定待更新或修改的功能組件; 對該待更新或修改的功能組件對應的結構化描述資訊進行更新或修改。
- 一種應用程式的開發方法,其特徵在於,包括: 確定應用程式的功能組件,該功能組件具有相應的編碼資訊和邏輯實現資訊; 將該功能組件的邏輯實現資訊轉換為Json Schema描述資訊; 加載該功能組件的編碼資訊至解析引擎; 依據該Json Schema描述資訊,在該解析引擎中對該功能組件的編碼資訊進行配置,以獲得目標組件; 獲取待加載的資料; 針對多個應用端,分別將該目標組件和該待加載的資料編譯為可執行程式; 分別在各個應用端中運行該可執行程式。
- 一種應用程式的開發裝置,其特徵在於,包括: 確定模組,用於確定應用程式的功能組件,該功能組件具有相應的編碼資訊; 生成模組,用於生成與該功能組件相對應的結構化描述資訊; 配置模組,用於依據該結構化描述資訊對該功能組件的編碼資訊進行配置,以獲得目標組件; 獲取模組,用於獲取待加載的資料; 編譯模組,用於針對多個應用端,分別將該目標組件和該待加載的資料編譯為可執行程式。
- 一種應用程式的開發裝置,其特徵在於,包括: 確定模組,用於確定應用程式的功能組件,該功能組件具有相應的編碼資訊和邏輯實現資訊; 轉換模組,用於將該功能組件的邏輯實現資訊轉換為Json Schema描述資訊; 加載模組,用於加載該功能組件的編碼資訊至解析引擎; 配置模組,用於依據該Json Schema描述資訊,在該解析引擎中對該功能組件的編碼資訊進行配置,以獲得目標組件; 獲取模組,用於獲取待加載的資料; 編譯模組,用於針對多個應用端,分別將該目標組件和該待加載的資料編譯為可執行程式; 運行模組,用於分別在各個應用端中運行該可執行程式。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810580599.9A CN110580147B (zh) | 2018-06-07 | 2018-06-07 | 一种应用程序的开发方法和装置 |
CN201810580599.9 | 2018-06-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202001548A true TW202001548A (zh) | 2020-01-01 |
Family
ID=68769715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108108593A TW202001548A (zh) | 2018-06-07 | 2019-03-14 | 應用程式的開發方法和裝置 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN110580147B (zh) |
TW (1) | TW202001548A (zh) |
WO (1) | WO2019233293A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111339136A (zh) * | 2020-02-19 | 2020-06-26 | 中国建设银行股份有限公司 | 一种数据检核方法、装置、电子设备及存储介质 |
CN111338608B (zh) * | 2020-02-28 | 2022-03-04 | 腾讯科技(深圳)有限公司 | 分布式应用开发方法、装置、节点设备及可读存储介质 |
CN113360134B (zh) * | 2020-03-06 | 2022-06-17 | 武汉斗鱼网络科技有限公司 | 安全验证程序的生成方法、装置、设备和存储介质 |
CN111399810A (zh) * | 2020-03-11 | 2020-07-10 | 杭州涂鸦信息技术有限公司 | 一种iOS应用程序动态组件化开发方法及其***和设备 |
CN113495727A (zh) * | 2020-04-07 | 2021-10-12 | 腾讯科技(深圳)有限公司 | 业务组件开发方法、装置、电子设备及介质 |
CN111880785A (zh) * | 2020-06-23 | 2020-11-03 | 北京三快在线科技有限公司 | 程序代码转换方法、装置,电子设备 |
CN112051985B (zh) * | 2020-07-23 | 2023-07-25 | 北京奇艺世纪科技有限公司 | 事件触发方法、装置、电子设备及可读存储介质 |
CN112487163B (zh) * | 2020-11-30 | 2024-04-12 | 广州品唯软件有限公司 | 自动化流程的执行方法及其接口数据的获取方法、装置 |
WO2022205013A1 (zh) * | 2021-03-30 | 2022-10-06 | 京东方科技集团股份有限公司 | 程序数据包生成方法、装置、设备及存储介质 |
CN113672224A (zh) * | 2021-08-20 | 2021-11-19 | 上海哔哩哔哩科技有限公司 | 小程序页面代码生成方法、装置及计算机设备 |
CN113869016A (zh) * | 2021-09-28 | 2021-12-31 | 城云科技(中国)有限公司 | 图表配置方法、装置及计算机程序产品 |
CN116088855B (zh) * | 2023-02-15 | 2023-06-23 | 天翼云科技有限公司 | 开发方法、装置、电子设备和存储介质 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100426750C (zh) * | 2006-04-23 | 2008-10-15 | 华为技术有限公司 | 一种生成两套网管***的方法 |
CN103246515B (zh) * | 2013-05-13 | 2016-11-02 | 广东飞企互联科技股份有限公司 | 一种可视化mvc功能建模控制方法 |
US9678723B2 (en) * | 2014-08-20 | 2017-06-13 | Verizon Patent And Licensing Inc. | Application programming interface (API) engine |
US9513941B2 (en) * | 2014-09-17 | 2016-12-06 | International Business Machines Corporation | Codeless generation of APIs |
CN104714830B (zh) * | 2015-04-03 | 2018-03-30 | 普元信息技术股份有限公司 | 基于原生开发语言实现跨平台应用开发的***及方法 |
KR101787527B1 (ko) * | 2016-03-31 | 2017-10-24 | 주식회사 티맥스 소프트 | 다중 플랫폼 위에서 실행되는 클라이언트 애플리케이션 개발용 프레임워크를 지원하기 위한 장치 및 이를 사용한 방법 |
US10346184B2 (en) * | 2016-05-13 | 2019-07-09 | Sap Se | Open data protocol services in applications and interfaces across multiple platforms |
CN106775725B (zh) * | 2016-12-19 | 2020-12-01 | 网易(杭州)网络有限公司 | 一种可视化的配置编辑方法及装置 |
CN106873989A (zh) * | 2017-01-20 | 2017-06-20 | 北京奇虎科技有限公司 | 应用程序构造方法和装置 |
CN106951231B (zh) * | 2017-02-23 | 2021-02-26 | 微梦创科网络科技(中国)有限公司 | 一种计算机软件开发方法及装置 |
CN106990966A (zh) * | 2017-03-31 | 2017-07-28 | 中国科学技术大学苏州研究院 | 基于前端框架的移动端跨平台应用开发框架及开发方法 |
CN107193545B (zh) * | 2017-04-07 | 2020-07-10 | 广东省科技基础条件平台中心 | 一种面向构件的多语言协同开发装置、方法与*** |
CN107908432A (zh) * | 2017-11-17 | 2018-04-13 | 深圳泉眼体育运营管理有限公司 | 应用程序的配置方法及装置、终端设备及可读存储介质 |
-
2018
- 2018-06-07 CN CN201810580599.9A patent/CN110580147B/zh active Active
-
2019
- 2019-03-14 TW TW108108593A patent/TW202001548A/zh unknown
- 2019-05-24 WO PCT/CN2019/088258 patent/WO2019233293A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN110580147A (zh) | 2019-12-17 |
CN110580147B (zh) | 2022-07-05 |
WO2019233293A1 (zh) | 2019-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW202001548A (zh) | 應用程式的開發方法和裝置 | |
CN109597661B (zh) | 一种业务功能配置方法及装置 | |
EP3433732B1 (en) | Converting visual diagrams into code | |
US9465590B2 (en) | Code generation framework for application program interface for model | |
TWI556170B (zh) | 將作業系統之原始應用程式介面投射至其它程式語言(二) | |
US8997070B2 (en) | Extension mechanism for scripting language compiler | |
US9471282B2 (en) | System and method for using annotations to automatically generate a framework for a custom javaserver faces (JSF) component | |
US8856732B2 (en) | System and method for creating, managing, and reusing schema type definitions in services oriented architecture services, grouped in the form of libraries | |
KR101795844B1 (ko) | 런타임 시스템 | |
US9460198B1 (en) | Process for serializing and deserializing data described by a schema | |
US20150242194A1 (en) | System for Translating Diverse Programming Languages | |
CN106951231B (zh) | 一种计算机软件开发方法及装置 | |
CN108920496B (zh) | 一种渲染方法及装置 | |
US10579745B2 (en) | Model driven computational platform for integrated design of products, materials and manufacturing processes | |
JP2014525622A (ja) | オペレーティングシステムのネイティブアプリケーションプログラミングインターフェイスのメタデータを用いた記述 | |
CN108170430B (zh) | 一种界面展示的方法及*** | |
CN105867886B (zh) | 一种写表格的方法及装置 | |
CN112818176B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
Daniel et al. | Model-driven software development | |
US9747085B2 (en) | Source code generation from prototype source | |
US11461217B2 (en) | Transferring data from a source complex variable to a target complex variable | |
JP2011514596A (ja) | 公称的に互換性のない型を効率的に相関させること | |
US8949774B2 (en) | Generated object model for test automation | |
CN111651160A (zh) | 插件构建、网页设计的方法和装置 | |
CN110716746B (zh) | 将rn样式代码转换为小程序样式代码的方法及装置 |