KR20180124618A - 휴대용 단말기 카드섹션 소프트웨어 개발 시스템 - Google Patents

휴대용 단말기 카드섹션 소프트웨어 개발 시스템 Download PDF

Info

Publication number
KR20180124618A
KR20180124618A KR1020170059447A KR20170059447A KR20180124618A KR 20180124618 A KR20180124618 A KR 20180124618A KR 1020170059447 A KR1020170059447 A KR 1020170059447A KR 20170059447 A KR20170059447 A KR 20170059447A KR 20180124618 A KR20180124618 A KR 20180124618A
Authority
KR
South Korea
Prior art keywords
mobile
app
developer
application
server
Prior art date
Application number
KR1020170059447A
Other languages
English (en)
Inventor
송보근
Original Assignee
주식회사 엑씽크
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 주식회사 엑씽크 filed Critical 주식회사 엑씽크
Priority to KR1020170059447A priority Critical patent/KR20180124618A/ko
Publication of KR20180124618A publication Critical patent/KR20180124618A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09FDISPLAYING; ADVERTISING; SIGNS; LABELS OR NAME-PLATES; SEALS
    • G09F9/00Indicating arrangements for variable information in which the information is built-up on a support by selection or combination of individual elements
    • G09F9/30Indicating arrangements for variable information in which the information is built-up on a support by selection or combination of individual elements in which the desired character or characters are formed by combining individual elements
    • G09F9/302Indicating arrangements for variable information in which the information is built-up on a support by selection or combination of individual elements in which the desired character or characters are formed by combining individual elements characterised by the form or geometrical disposition of the individual elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W56/00Synchronisation arrangements
    • H04W56/001Synchronization between nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices

Abstract

본 발명은 어플리케이션에 카드섹션 기술을 추가하기 위한 개발 시스템에 관한 것이다. 이를 위하여 복수의 모바일 운영체제 상에서 실행되도록 컴파일되는 모바일 어플리케이션을 개발하고 커스터마이징하기 위한 시스템에 있어서, 내부의 물리 메모리에 저장된 컴퓨터 판독 가능한 매체를 가지는 컴퓨팅 장치를 포함하며, 상기 컴퓨터 판독 가능한 매체에 의해 상기 컴퓨팅 장치가, 사용자의 모바일 어플리케이션의 개발 및 커스터마이징을 돕는 모바일 어플리케이션 개발 플랫폼에 사용자가 접근하도록 허여하는 단계; 사용자에게 표시되도록 복수의 커스터마징 가능한 컴포넌트와 관련된 정보를 제공하는 단계로서, 상기 복수의 커스터마징 가능한 컴포넌트는 상기 사용자에 의해 커스터마이징되는 모바일 어플리케이션의 기능, 디자인 및 컨텐츠와 관련되는, 상기 제공하는 단계; 복수의 표시된 커스터마이징 가능한 컴포넌트와 관계된 복수의 사용자 선택을 수신하는 단계; 상기 복수의 커스터마이징 가능한 컴포넌트와 관련된 상기 복수의 사용자 선택의, 적어도 일부에, 기초하여 상기 모바일 어플리케이션을 어플리케이션 데이터와 연관시키는 단계로서 기 어플리케이션 데이터는 카드 섹션이 수행되는 좌석 정보를 수신하는 단계; 상기 좌석 정보를 포함하는 매칭 정보를 서버로 전송하는 단계; 상기 서버로부터 상기 매칭 정보에 대응되는 카드 섹션 데이터를 수신하는 단계; 및 상기 서버로부터 시작 신호가 수신되면, 상기 서버와 상기 휴대용 단말기간 시간 오프셋에 기반하여 결정된 시작 시점에, 상기 데이터로부터 식별되는 영상 시퀀스를 미리 결정된 시간 간격에 따라 순차적으로 디스플레이하는 단계를 포함하는, 연관시키는 단계; 상기 어플리케이션 데이터를 저장하는 단계; 적어도 하나의 모바일 운영체제와 관련된 빌드 도구를 이용하여 상기 어플리케이션 데이터에 기초하는 상기 모바일 어플리케이션을 위한 컴파일된 데이터를 생성하는 단계; 및 상기 모바일 어플리케이션을 위한 식별자를 포함하는 구성파일(configuration file)을 생성하는 단계로서, 상기 구성파일은 상기 적어도 하나의 모바일 운영체제를 구동하는 모바일 장치로 전송되고, 상기 모바일 장치에서 실행되는, 상기 생성하는 단계;를 포함하여 실행하도록 하며, 상기 식별자는 상기 모바일 어플리케이션이 상기 모바일 장치에 의해 인스톨되거나 또는 실행되는 것에 대응하여 상기 모바일 장치에 의해 상기 컴파일된 어플리케이션 데이터의 적어도 일부의 리트라이브를 가능하게 하는 것을 특징으로 하는 휴대용 단말기 카드섹션 소프트웨어 개발 시스템이 제공될 수 있다. 이에 따르면, 사용자 및 개발자가 어플리케이션에 카드섹션 기능을 추가할 수 있는 인터넷 기반 모바일 어플리케이션 개발 및 배포 플랫폼을 통해 카드섹션 어플리케이션을 개발하고, 배포하고 그리고 업데이트할 수 있다.

Description

휴대용 단말기 카드섹션 소프트웨어 개발 시스템{Portable Terminal Card Section Software Development System}
본 발명은 어플리케이션에 카드섹션 기술을 추가하기 위한 개발 시스템에 관한 것이다.
스마트 폰, 태블릿 PC 및 다른 휴대형 장치와 같은, 모바일 디바이스는 널리 보급되어 많은 소비자와 기업의 일상적인 활동에 중요해지고 있다. 전통적으로, 이들 유형의 장치는 주로 통신 장치로 제공되어 왔다. 하지만, 근래에 소비자는 광범위한 개인적인 일과 직업과 관련된 일을 수행함에 있어서 필수적인 도구로 이러한 장치에 점점 의존하고 있다. 이에 대하여, 모바일 폰 및 다른 무선 휴대형 장치는 복합 컴퓨터 하드웨어 및 소프트웨어와 마찬가지로 복합 컴퓨팅 장치로 진화되어 왔다.
많은 수의 모바일 장치의 대부분이 다양한 형식의 통신에 계속해서 사용되면서, 그들은 또한 일반적으로 웹사이트 접속 및 표시, 이메일 송수신, 사진 및 비디오 표시, 음악 및 다른 형식의 오디오 재생 등을 포함하는 다른 다양한 기능들을 제공한다. 이들 그리고 수많은 다른 기능들은 일반적으로 장치의 모바일 운영 체제에 내장된 소프트웨어 컴포넌트의 형식 또는 운영 체제의 상위에서 실행되는 개별 모바일 어플리케이션(모바일 앱)의 형식으로 소프트웨어 어플리케이션에 의해 수행된다. 최근에는, 모바일 앱들의 개발 및 사용이 많아지고, 수많은 앱 들이 모바일 장치의 넓은 분야에 걸쳐 존재한다.
다수의 경쟁 제조사, 개발자 및 다른 서비스 공급자들이 최근 수년간 모바일 장치 영역에 진입해왔고, 모바일 운영시스템 형태의 하드웨어, 소프트웨어, 혹은 어떤 경우에는 하드웨어 및 소프트웨어의 조합을 공급해왔다. 이는 결국, 서로 상이하고 호환되지 않는 모바일 장치 플랫폼 및 환경의 개발을 가져왔다. 이러한 장치들 중 차이의 일부는 하드웨어 구성요소, 운영체제 및 입출력 능력을 포함한다. 실제로, 블랙버리(Blackberry), 아이폰(iPhone) 및 안드로이드(Android) 기반 장치와 같은 가장 널리 사용되는 모바일 기기의 대부분은 상이한 운영체제(예컨대, 심비안(Symbian), 아이오에스(iOS), 안드로이드 및 웹오에스(WebOS))를 사용하며, 이들 중 많은 것들이 그들 자신의 프로그래밍 환경 및 소프트웨어 개발 도구를 가진다.
일반적으로, 이러한 서로 다른 운영체제 및 장치를 위한 모바일 어플리케이션을 개발하는 것은 개별 운영체제 또는 장치별 소프트웨어 코드(code) 및 컴필레이션(compilation)뿐만 아니라, 다양한 설계 기술 및 프로그래밍 언어들을 사용할 것이 요구된다. 결과적으로 이는 개발자들이 여러 형식의 모바일 장치들 사이에서 이전할 수 있는 소프트웨어 어플리케이션을 만드는 것을 어렵게 한다. 오히려, 모바일 앱 개발자들은 흔히 다른 장치들을 지원하기 위하여 소프트웨어의 전부 또는 적어도 상당한 부분을 다시 작성하도록 강요받는다.
모바일 운영 체제 및/또는 장치의 임의의 형식을 위한 모바일 앱의 개발을 장려하고 용이하게 하기 위하여, 이 들 시스템 및 장치의 제조사 및 개발자는 그들의 장치 및/또는 운영체제(또는 특정 버전 또는 그것의 배포)와 관련된 소프트웨어 개발 키트(SDK)를 자주 배포한다. 다른 것들 중에서, 이들 SDK는 어플리케이션 개발자가 지원되는 모바일 장치 및/또는 모바일 운영체제의 사용자들을 위한 프로그램 또는 어플리케이션을 작성하도록 한다. 이들 SDK가 모바일 앱의 개발을 지원하지만, 이들 SDK를 이용하기 위해서는, 소프트웨어 프로그래밍 및 모바일 장치에서 상당한 정도의 기술적 지식 및 전문지식이 일반적으로 요구되어진다. 특히, 이들 SDK의 사용은 프로그래머가 어플리케이션이 개발되어지는 특정 모바일 운영체제 플랫폼 및 프로그래밍 언어 양자 모두에 대한 경험과 지식을 보유하고 있어야 할 것을 요구한다.
모바일 앱을 빌드하는 것과 관련된 도전에 추가로, 이들 어플리케이션을 배치하고, 그 어플리케이션을 말단 사 용자에게 배포하는 것은 복합적이고 연관된 프로세스가 될 수 있다. 부분적으로, 이는 많은 모바일 장치 및 운영체제 제조자 및 개발자가 그들의 장치 및 운영체제에 사용되는 모든 모바일 앱이 그들의 디지털 배포 플랫폼 예컨대, iOS의 앱 스토어, 안드로이드의 마켓, webOS의 앱 카달로그)을 통해 배포되어야만 한다는 사실에 기인한다. 일반적으로, 앱은 반드시 그들의 배포 플랫폼에 포함되기 이전에 제조자 또는 개발자에 의해 승인되어야만 한다. 모바일 어플리케이션의 그러한 승인을 얻는 것은 시간 소모적이고, 복잡한 프로세스가 될 수 있다. 결과적으로, 제조자에 의해 도입된 요구사항 및 제한사항을 이해하고, 경험하는 것은 모바일 장치 사용자들에게 어플리케이션을 성공적으로 그리고 효과적으로 배치 및 배포하기 위해 종종 필요하다.
유사하게, 이들 제조자 및 개발자는 업데이트, 플러그인, 확장 기능 및 컨텐츠와 같은, 어플리케이션과 연관된 임의의 추가 데이터는 그들의 디지털 배포 플랫폼을 통해 배포될 수 있다. 일부 경우에 있어서, 임의의 형식의 업데이트도 제조자들에 의해 개별적 승인의 대상이 된다. 따라서 이들 제한사항은 모바일 어플리케이션의 배포 및 관리를 보다 복잡하게 하고 둔화시킬 수 있다.
모바일 어플리케이션들을 생성, 배포 및 업데이트하기 위해 요구되는 높은 수준의 기술 및 전문지식을 고려하면, 특정 프로그램 언어 또는 모바일 운영 시스템 또는 디지털 배포 플랫폼에 경험이 부족한 개인들과 더불어, 많은 비전문적인 개인들은 모바일 어플리케이션을 개발 및/또는 배포할 수 없다. 모바일 어플리케이션 개발이 프로그래밍 또는 특정 모바일 운영체제 플랫폼에서 상당한 경험이 없는 사람이 모바일 어플리케이션 장치를 생성하도록 하는 소프트웨어 시스템을 통해 광범위한 대중에게 모바일 어플리케이션 개발에 보다 접근 가능하게 하는 시도가 있었음에도 불구하고, 이들 시스템은 수많은 결점 및 제한사항들을 드러내어, 결국 소비자에 의해 널리 채택되는 데에 실패를 가져왔다.
예를 들면, 결점 중 하나는 이러한 많은 소프트웨어 시스템들이 비전문가가, 예컨대 iOS, 안드로이드, webOS 또는 심비안, (또는 제한된 서브세트의 운영체제)와 같은, 단지 하나의 모바일 운영체제에서만 어플리케이션을 생성하도록 한다는 점이다. 널리 사용되고 있는 수많은 상이한 모바일 운영체제의 개수에 비추어보면, 모든 모바일 운영체제(또는 적어도 의미 있는 소비자 기반을 가지는 모바일 운영체제)에 걸쳐 손쉽게 포팅(port)될 수 있는 어플리케이션 개발을 위한 능력이 효율적이고 단순화된 모바일 어플리케이션 개발을 촉진시키는 데에 있어 중요하다.
다른 결점은 많은 소프트웨어 시스템이 여전히 상당한 기술 지식 및 전문지식을 요구하며, 그러므로, 이들 시스템은 비전문적인 사용자가 접근이 쉬운 모바일 앱 개발을 만들기 위해 필요한 정도로 프로세스를 단순화시키지 못한다는 점이다. 이들 시스템들의 일부는 사용이 쉽지 않고, 사용자의 훈련이 수반되어야 하며 어플리케이션 프로그래밍 및 디자인에의 노출과 같은, 적어도 기본적인 수준의 기술 지식을 요구한다.
결과적으로, 이들 종류의 시스템에서는, 이러한 특징 및 기능들을 사용하는 보다 고도의 모바일 앱을 생성하기 위하여, 특별한 프로그래밍 기술 및 전문지식이 부가 컴포넌트, 플러그인, 모듈 또는 에뮬레이터를 사용/설치하기 위해 요구된다. 또한, 기존의 시스템 및 개발 도구를 이용하여 빌드된 최종 어플리케이션들의 일부는 사용자의 장치가 "온라인"인 때에만 사용할 수 있다. 나아가, 이들 시스템들의 일부는 사용자가 어플리케이션에 대한 업데이트를 그 개발자로부터 직접 다운로드하기보다는, 모바일 운영체제의 디지털 배포 플랫폼과 같은, 제3자(third-party)로부터 다운로드 하도록 요구한다.
그러므로 모바일 소프트웨어 어플리케이션의 개발, 배포 및 업데이트를 단순화하고 간소화함으로써, 향상된 그리고 사용자 친화적인 경험을 통해 비전문적인 사용자가 접근하기 쉬운 프로세스를 만들 수 있는 시스템이 요구 된다. 또한, 사용자가 임의의 모바일 장치 운영체제 상에서 구동될 수 있는 어플리케이션을 개발하도록 하는 시스템이 요구된다. 나아가, 사용자가 모바일 장치 및 모바일 운영체제 특징 및 기능의 커스터마이징된 조합을 사용하는 고도의 어플리케이션을 생성하도록 하는 시스템도 요구된다. 아울러, 사용자가 플랫폼을 통해 개발된 어플리케이션에 오프라인으로 접속하도록 하면서, 웹 기반인 시스템도 더욱더 요구된다. 모바일 운영체제의 디지털 배포 플랫폼에 직접적으로 접속하는 것을 요구하지 않고, 어플리케이션과 연관된 업데이트를 사용자에게 제공하는 시스템 또한 여전히 요구된다.
한국 공개특허 제10-2016-7000655호
본 발명은 상기와 같은 과제를 해결하기 위한 것으로, 개발자가 모바일 소프트웨어 어플리케이션에 서버 및 각 단말기간 시간 오차를 최소화하여 보다 자연스럽게 일치된 카드 섹션을 제공하는 기능을 추가가할 수 있도록 하는 모바일 어플리케이션 개발 및 배포 플랫폼을 제공하기 위한 것이다. 본 발명의 다른 측면은, 비전문적인 사용자가 접근하기 쉽고, 사용자가 컴퓨터 프로그래밍 또는 모바일 장치 및 어플리케이션에 있어 전문지식을 보유하도록 요구하지 않는, 사용하기 쉽고, 직관적인 사용자 인터페이스를 통해 사용할 수 있는 플랫폼을 제공하기 위한 것이다. 본 발명의 또 다른 측면은 높은 정도의 커스터마이징을 허용하고, 사용자가 다양한 모바일 장치 및 모바일 운영체제의 특징에 접근할 수 있는 앱 타입, 모듈, 컨텐츠 요소 및 템플릿과 같은, 다양한 컴포넌트의 커스터마이징 및 조합을 통해 고도의 어플리케이션을 생성할 수 있도록 하는 플랫폼을 제공하기 위한 것이다. 본 발명의 또 다른 측면은 개발 플랫폼을 통해 모바일 게임, 텔레비전 어플리케이션 및 웹 어플리케이션과 같은, 다른 타입의 어플리케이션을 사용자가 생성, 커스터마이징, 업데이트 및 배포하도록 하는 플랫폼을 제공하기 위한 것이다.
본 발명의 다른 측면은, 플랫폼을 통해 개발된 어플리케이션들이 오프라인으로 접속될 수 있도록 하면서, 사용자가 별도의 소프트웨어를 다운로드 또는 설치하지 않고도 인터넷을 통해 접속 가능한 모바일 개발 플랫폼을 제공하기 위한 것이다.
이하 본 발명의 목적을 달성하기 위한 구체적 수단에 대하여 설명한다. 본 발명의 목적은, 복수의 모바일 운영체제 상에서 실행되도록 컴파일되는 모바일 어플리케이션을 개발하고 커스터마이징하기 위한 시스템에 있어서, 내부의 물리 메모리에 저장된 컴퓨터 판독 가능한 매체를 가지는 컴퓨팅 장치를 포함하며, 상기 컴퓨터 판독 가능한 매체에 의해 상기 컴퓨팅 장치가, 사용자의 모바일 어플리케이션의 개발 및 커스터마이징을 돕는 모바일 어플리케이션 개발 플랫폼에 사용자가 접근하도록 허여하는 단계; 사용자에게 표시되도록 복수의 커스터마징 가능한 컴포넌트와 관련된 정보를 제공하는 단계로서, 상기 복수의 커스터마징 가능한 컴포넌트는 상기 사용자에 의해 커스터마이징되는 모바일 어플리케이션의 기능, 디자인 및 컨텐츠와 관련되는, 상기 제공하는 단계; 복수의 표시된 커스터마이징 가능한 컴포넌트와 관계된 복수의 사용자 선택을 수신하는 단계; 상기 복수의 커스터마이징 가능한 컴포넌트와 관련된 상기 복수의 사용자 선택의, 적어도 일부에, 기초하여 상기 모바일 어플리케이션을 어플리케이션 데이터와 연관시키는 단계로서 기 어플리케이션 데이터는 카드 섹션이 수행되는 좌석 정보를 수신하는 단계; 상기 좌석 정보를 포함하는 매칭 정보를 서버로 전송하는 단계; 상기 서버로부터 상기 매칭 정보에 대응되는 카드 섹션 데이터를 수신하는 단계; 및 상기 서버로부터 시작 신호가 수신되면, 상기 서버와 상기 휴대용 단말기간 시간 오프셋에 기반하여 결정된 시작 시점에, 상기 데이터로부터 식별되는 영상 시퀀스를 미리 결정된 시간 간격에 따라 순차적으로 디스플레이하는 단계를 포함하는, 연관시키는 단계; 상기 어플리케이션 데이터를 저장하는 단계; 적어도 하나의 모바일 운영체제와 관련된 빌드 도구를 이용하여 상기 어플리케이션 데이터에 기초하는 상기 모바일 어플리케이션을 위한 컴파일된 데이터를 생성하는 단계; 및 상기 모바일 어플리케이션을 위한 식별자를 포함하는 구성파일(configuration file)을 생성하는 단계로서, 상기 구성파일은 상기 적어도 하나의 모바일 운영체제를 구동하는 모바일 장치로 전송되고, 상기 모바일 장치에서 실행되는, 상기 생성하는 단계;를 포함하여 실행하도록 하며, 상기 식별자는 상기 모바일 어플리케이션이 상기 모바일 장치에 의해 인스톨되거나 또는 실행되는 것에 대응하여 상기 모바일 장치에 의해 상기 컴파일된 어플리케이션 데이터의 적어도 일부의 리트라이브를 가능하게 하는 것을 특징으로 하는 휴대용 단말기 카드섹션 소프트웨어 개발 시스템을 제공하여 달성될 수 있다.
본 발명의 또 다른 목적은, 상기 모바일 어플리케이션 개발 플랫폼은 인터넷을 통해 상기 사용자에 의해 접속되는 웹 기반 서비스를 포함하는 것을 특징으로 하는 휴대용 단말기 카드섹션 소프트웨어 개발 시스템을 제공하여 달설될 수 있다.
본 발명의 다른 목적은, 상기 매칭 정보는 상기 휴대용 단말기의 위치 정보, 네트워크 정보 및 상기 휴대용 단말기의 식별 정보 중 적어도 하나를 포함하여, 상기 서버에서 발급되는 유저 식별 정보에 매칭되는 것을 특징으로 하는 휴대용 단말기 카드섹션 소프트웨어 개발 시스템을 제공하여 달성될 수 있다.
본 발명의 다른 목적은, 상기 시작 신호는 상기 서버 기준 시작 시간 정보를 포함하고, 상기 디스플레이를 전환하는 단계는, 상기 서버 기준 시작 시간 정보 및 상기 서버와 상기 휴대용 단말기간 시간 오프셋에 기반하여 상기 시작 시점을 미리 결정하는 단계를 포함하는 것을 특징으로 하는 휴대용 단말기 카드섹션 소프트웨어 개발 시스템을 제공하여 달성될 수 있다.
본 발명의 다른 목적은, 상기 어플리케이션 데이터는 상기 서버간 RTT(Round Trip Time)을 최소화하기 위한 하나 이상의 시간 동기화 로직을 이용하여, 상기 서버와 시간 동기화를 수행하는 단계를 더 포함하는 것을 특징으로 하는 휴대용 단말기 카드섹션 소프트웨어 개발 시스템을 제공하여 달성될 수 있다.
본 발명의 실시예에 따르면, 사용자 및 개발자가 어플리케이션에 카드섹션 기능을 추가할 수 있는 인터넷 기반 모바일 어플리케이션 개발 및 배포 플랫폼을 통해 카드섹션 어플리케이션을 개발하고, 배포하고 그리고 업데이트할 수 있다.
도 1은 본 발명의 일 실시예에 따른 모바일 개발 및 배포 플랫폼을 포함하는 시스템의 도면이다.
도 2는 본 발명의 일 실시예에 따른 모바일 개발 및 배포 플랫폼의 어플리케이션 개발 환경의 일부를 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 모바일 개발 플랫폼을 통해 모바일 어플리케이션을 개발하기 위한 프로세스의 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 모바일 개발 및 배포 플랫폼을 통해 개발된 모바일 앱을 위한 어플리케이션 데이터를 저장하고 표현하기 위해 사용될 수 있는 예시적인 데이터 모델을 도시하는 블록도이다.
도 5는 본 발명의 일 실시예에 따른 모바일 개발 및 배포 플랫폼을 통해 개발된 모바일 어플리케이션을 실행하는 것과 관련되어 사용될 수 있는 프로세스의 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 모바일 개발 및 배포 플랫폼을 통해 통지를 보여주고, 생성하며 및/또는 수정하기 위한 프로세스의 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 모바일 개발 및 배포 플랫폼을 통해 개발자에게 제공되는 통지 관리자의 표시의 일부를 도시하는 도면이다.
도 8은 본 발명의 일 실시예에 따른 모바일 개발 및 배포 플랫폼을 통해 모바일 앱에 모듈을 추가하기 위해 사용될 수 있는 프로세스를 도시하는 흐름도이다.
도 9는 본 발명의 일 실시예에 따라 모바일 개발 및 배포 플랫폼을 통해 개발된 모바일 앱에 포함시키기 위한 카드섹션 모듈을 커스터마이징하기 위한 프로세스를 도시하는 흐름도이다.
이하의 내용은 단지 본 발명의 원리를 예시한다. 그러므로 당업자는 비록 본 명세서에 명확히 설명되거나 도시되지 않았지만 본 발명의 원리를 구현하고 본 발명의 개념과 범위에 포함된 다양한 장치를 발명할 수 있는 것이다. 또한, 본 명세서에 열거된 모든 조건부 용어 및 실시예들은 원칙적으로, 본 발명의 개념이 이해되도록 하기 위한 목적으로만 명백히 의도되고, 이와 같이 특별히 열거된 실시예들 및 상태들에 제한적이지 않는 것으로 이해되어야 한다.
또한, 본 발명의 원리, 관점 및 실시예들 뿐만 아니라 특정 실시예를 열거하는 모든 상세한 설명은 이러한 사항의 구조적 및 기능적 균등물을 포함하도록 의도되는 것으로 이해되어야 한다. 또한 이러한 균등물들은 현재 공지된 균등물뿐만 아니라 장래에 개발될 균등물 즉 구조와 무관하게 동일한 기능을 수행하도록 발명된 모든 소자를 포함하는 것으로 이해되어야 한다.
따라서, 예를 들어, 본 명세서의 블럭도는 본 발명의 원리를 구체화하는 예시적인 회로의 개념적인 관점을 나타내는 것으로 이해되어야 한다. 이와 유사하게, 모든 흐름도, 상태 변환도, 의사 코드 등은 컴퓨터가 판독 가능한 매체에 실질적으로 나타낼 수 있고 컴퓨터 또는 프로세서가 명백히 도시되었는지 여부를 불문하고 컴퓨터 또는 프로세서에 의해 수행되는 다양한 프로세스를 나타내는 것으로 이해되어야 한다.
프로세서 또는 이와 유사한 개념으로 표시된 기능 블럭을 포함하는 도면에 도시된 다양한 소자의 기능은 전용 하드웨어뿐만 아니라 적절한 소프트웨어와 관련하여 소프트웨어를 실행할 능력을 가진 하드웨어의 사용으로 제공될 수 있다. 프로세서에 의해 제공될 때, 상기 기능은 단일 전용 프로세서, 단일 공유 프로세서 또는 복수의 개별적 프로세서에 의해 제공될 수 있고, 이들 중 일부는 공유될 수 있다.
또한 프로세서, 제어 또는 이와 유사한 개념으로 제시되는 용어의 명확한 사용은 소프트웨어를 실행할 능력을 가진 하드웨어를 배타적으로 인용하여 해석되어서는 아니되고, 제한 없이 디지털 신호 프로세서(DSP) 하드웨어, 소프트웨어를 저장하기 위한 롬(ROM), 램(RAM) 및 비휘발성 저장부를 암시적으로 포함하는 것으로 이해되어야 한다. 주지관용의 다른 하드웨어도 포함될 수 있다.
본 명세서의 청구범위에서, 상세한 설명에 기재된 기능을 수행하기 위한 수단으로 표현된 구성요소는 예를 들어 상기 기능을 수행하는 회로 소자의 조합 또는 펌웨어/마이크로 코드 등을 포함하는 모든 형식의 소프트웨어를 포함하는 기능을 수행하는 모든 방법을 포함하는 것으로 의도되었으며, 상기 기능을 수행하도록 상기 소프트웨어를 실행하기 위한 적절한 회로와 결합된다. 이러한 청구범위에 의해 정의되는 본 발명은 다양하게 열거된 수단에 의해 제공되는 기능들이 결합 되고 청구항이 요구하는 방식과 결합되기 때문에 상기 기능을 제공할 수 있는 어떠한 수단도 본 명세서로부터 파악되는 것과 균등한 것으로 이해되어야 한다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세 한 설명을 생략하기로 한다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.
앞서 논의된 바와 같이, 비전문적 모바일 장치 사용자 및 다른 개인들은 모바일 장치의 다양한 타입에 대해 모바일 어플리케이션("모바일 앱(mobile apps)" 또는 "앱(apps)")을 개발하기 위한 기존의, 비 사용자 친화적인 소프트웨어 시스템에 의존하는 힘든 시간을 보내고 있다. 이는 다중 모바일 장치 운영 체제의 임의의 장치 특정 특징 및 기능을 이용하는 모바일 앱을 개발, 출시 및 업데이트하기를 원하는 사용자에게 있어 특히 그렇다. 그러한 사용자에 대한 부담을 줄여주고, 사용자가 접근할 수 있는 개발 및 배포 프로세스를 만들기 위해, 컴퓨터 프로그래밍 및 모바일 장치의 기술 지식이 요구되지 않고, 다중 모바일 운영 체제에 걸쳐 사용자가 모바일 앱을 개발하고 배포할 수 있도록 하는 시스템 및 방법이 이 문헌에서 제시된다.
실시예들은 프로그래밍 지식 또는 전문지식을 요구함이 없이, 다중 모바일 운영 체제 및/또는 모바일 장치상에서 실행시키기 위해 빌드되고 컴파일되며, 다양한 장치 및 운영체제 특정 특징을 이용하는, 모바일 앱을 모바일 개발 및 배포 플랫폼을 통해 비전문가 및 어플리케이션 개발자가 개발하도록 하는 모바일 개발 및 배포 플랫폼 및 대응하는 처리 방식에 관련된다. 여러 실시예들은 다양한 미리 정의된 컴포넌트, 특징, 어플리케이션 디자인 및 컨텐츠를 선택하고 조합하는 것에 의해, 및/또는, 앱 타입 및 모듈과 같은, 새로운 컴포넌트를 생성하는 것에 의해, 상기 플랫폼을 통해 개발된 모바일 앱을 사용자가 높은 수준으로 커스터마이징하도록 한다. 실시예들은 하나 이상의 타입의 모바일 운영 체제 및/또는 모바일 장치와 관련된 디지털 배포 플랫폼으로 컴파일된 어플리케이션을 제출하는 것에 의해, 상기 플랫폼을 통해 개발된 앱을 사용자가 배포하도록 한다. 여러 실시예들은 어플리케이션 데이터를 원격 소스로부터 리트라이브(retrieve, 검색하여 가져오고)하고, 말단 사용자가 어플리케이션을 다운로드 또는 실행할 때, 어플리케이션을 빌드(build, 소스 코드로부터 적어도 일부 기능을 실행 가능하게 만들다) 및 구성 설정(configure)하는, 어플리케이션 데이터 자체라기보다는, 레퍼런스 및/또는 다른 기 본 정보를 식별하는 것으로 구성되도록 컴파일하는 것(compilation, compile, 명령어를 번역)이 허용된다. 여러 실시예들은 사용자 및 개발자가 모바일 개발 플랫폼을 통해 앱 및 그들의 컨텐츠를 수정 또는 업데이트하도록 한다. 아래에서 설명될 모바일 개발 플랫폼, 대응하는 처리 방식 및 시스템 및 방법은 모바일 앱 개발에 대하여 현재 존재하는 대부분의 장애 및 제한에 대해 다루며, 비전문가가 접근할 수 있는 프로세스를 만들기 위하여, 그리고, 시간 및 들이는 노력을 최소화하기 위하여, 기술적 전문 지식 및 경험에 대한 요구를 없애는 것에 의해 프로세스를 실질적으로 단순화시킨다.
도 1은 일 실시예에 따른 모바일 개발 및 배포 플랫폼을 포함하는 시스템의 도면이다. 도 1에 보인 바와 같이, 시스템은 모바일 개발 및 배포 플랫폼의 일부인 서버, 프로세서, 네트워크 및 개인용 장치를 포함한다. 도 1의 시스템은 서버(200)를 포함하며, 이는 컴퓨터 하드웨어, 소프트웨어 또는 그들의 조합이 될 수 있고, 몇 개의 물리 또는 가상 컴퓨터 서버 또는 어떤 다른 적합한 컴퓨팅 장치 또는 장치들을 포함한다. 일 실시예에 있어서, 서버(200)는 비전문가, 어플리케이션 설계자 또는 소프트웨어 개발자 및 또는 모바일 앱을 빌드 및/또는 배포하기를 원하는 어떤 다른 형태의 사용자들과 같은, 다양한 개발자에 의해 접근될 수 있는 모바일 개발 서비스에 대한 호스팅, 운영 및/또는 접근을 제공한다. 일 실시예에 있어서, 모바일 개발 서비스는 서버(200)에서 실행되는 소프트웨어 개발 환경의 형태가 될 수 있다. 다른 실시예에 있어서, 모바일 개발 서비스는 개발자가 모바일 앱을 생성하고, 수정하고 및/또는 배포하도록 하는 어떤 적합한 형태의 하드웨어, 소프트웨어, 또는 하드웨어 및 소프트웨어의 조합이 될 수 있다. 이들 실시예에 있어서, 개발자는 도 1에 도시된 바와 같은, 개발자 컴퓨터 (100)를 통해 서버 컴퓨터(200)에 접근할 수 있다. 개발자 컴퓨터(100)는 퍼스널 컴퓨터, 랩탑, 태플릿 PC, 모 바일 장치 또는 서버(200)와 통신할 수 있고, 및/또는 개발자에게 접근을 제공할 수 있는 어떤 다른 적합한 컴퓨터 하드웨어 및/또는 소프트웨어가 될 수 있다.
일 실시예에 있어서, 서버(200) 및/또는 모바일 개발 서비스는 하나 이상의 서드 파티 서비스 제공자에 의해 호스팅되고, 운영될 수 있고, 및/또는, 개발자 컴퓨터(100)를 이용하여 네트워크(500)를 통해 개발자들에 의해 접근될 수 있다. 이들 실시예에 있어서, 네트워크(500)는 개발자가 개발자 컴퓨터(100)를 통해 서버(200)에 접근할 수 있도록 하는 인터넷 네트워크 또는 전용 네트워크와 같은, 어떤 적합한 형태의 유선 및/또는 무선 네트워크가 될 수 있다. 예를 들면, 도 1에 보인 바와 같이, 서버(200)는 개발자 컴퓨터(100)를 이용하여 인터넷을 통해 개발자에 의해 접근될 수 있는 웹 서버의 형태가 될 수 있다. 개발자들은 개발자 컴퓨터(100) 상에 표준 웹 브라우저를 이용하는 하나 이상의 웹 페이지를 탐색(navigating)하여 모바일 개발 서비스에 접근할 수 있고, 그렇게 함으로써 개발자 컴퓨터(100) 상에 개발 소프트웨어를 다운로드 및/또는 인스톨하는 필요성을 배제한다. 다른 실시예에 있어서, 모바일 개발 서비스는 서버(200) 및/또는 하나 이상의 다른 서드-파티(third-party) 서버로부터 개발자에 의해 다운로드될 수 있는 개별 클라이언트 또는 스탠드-얼론 소프트웨어 어플리케이션이 될 수 있다. 또는, 모바일 개발 서비스는 다른 적합한 수단(예컨대, CD, 물리적 디스크, 등)을 통해 개발자에 제공될 수 있고 개발자 컴퓨터(100)에 인스톨될 수 있다. 서버(200)가 실질적인 예를 위한 목적으로 도 1에 도시되어 있지만, 이는 일 실시예에 있어서 모바일 개발 서비스와 같은, 서버(200)에 의해 제공되는 기능이 임의의 수의 서버들에 의해 호스팅되고 운영되거나, 또는 개발자 컴퓨터(100)에 통합될 수 있는 것으로 이해되어야 할 것 이다.
일 실시예에 있어서, 서버(200)가 웹 서버인 경우, 모바일 개발 서비스는 웹 기반 서비스의 형태로 제공될 수 있다. 일 실시예에 있어서, 웹 기반 서비스는 개발자가 모바일 앱을 생성하고, 수정하며, 그리고 배포하도록 하는 어플리케이션 개발 환경에 접근하도록 제공한다. 예를 들면, 웹 기반 서비스는 개발자에게 다양한 웹 페이지를 제공하고, 개발자가 다양한 웹 페이지와 상호작용하도록 하는 웹 사이트와 같은 그래픽 인터페이스의 형태가 될 수 있다. 일 실시예에 있어서, 개발자는 앱-형식 및 모듈과 같은 다양한 어플리케이션 컴포넌트, 레이아웃, 테마 및 표시 옵션과 같은 디자인 요소, 및 텍스트, 이미지, 비디오, 사운드, 노래, 문서 및 앱을 위한 다른 유사한 데이터와 같은 컨텐츠 요소를 정의(예컨대, 선택, 생성, 커스터마이징 및/또는 업로딩)하여 모바일 앱을 디자인, 생성 및/또는 수정할 수 있다. 이 프로세스는 도 2와 관련되어 아래에서 더 상세하게 도시되고 설명된다.
도 1에 보인 바와 같이, 일 실시예에서, 서버(200) 또한 데이터베이스 서버(210)와 같은, 하나 이상의 데이터베이스 서버를 사용할 수 있다. 일 실시예에 있어서, 데이터베이스 서버(210)는 서버(200)에 의해 리트라이브될 수 있고, 어플리케이션 개발 프로세스 동안 개발자에게 제공될 수 있는, 템플릿, 모듈, 레이아웃, 컨텐츠 등과 같은 다양한 미리 결정된 또는 일반(generic) 어플리케이션 데이터를 저장할 수 있다. 일부의 실시예에 있어서, 데이터베이스 서버(210)는 모바일 개발 서비스를 통해 개발자에 의해 개발 중이거나 개발되어 온 모바일 어플리케이션을 저장하고 리트라이브하도록 서버(200)에 의해 사용될 수 있다. 예를 들면, 개발자가 모바일 앱을 생성 및/또는 수정함에 따라, 서버(200)는 데이터베이스 서버(210)에서 개발자에 의해 선택, 생성 또는 커스터마이징되는 어플리케이션 컴포넌트와 디자인 요소 및/또는 업로드된 컨텐츠와 같은 앱과 관련된 데이터를 저장할 수 있다. 이들 일부 실시예에 따르면, 서버(200)는 개발자가 나중에 모바일 개발 서비스에 접속하는 때에, 저장된 어플리케이션 데이터를 리트라이브하고, 및/또는 개발자에게 저장된 어플리케이션 데이터를 제공할 수 있다.
일부 실시예에 있어서, 데이터베이스 서버(210)는 서드 파티 서비스 제공자에 의해 호스트되고, 운영될 수 있다. 서드 파티 서비스 제공자는 개별 서비스 제공자이거나, 서버(200)을 호스팅하고 운영하는 동일한 서비스 제공자가 될 수 있다. 이들 일부 실시예에 있어서, 도 1에 도시된 바와 같이, 서버(200)는 네트워크 (500)을 통해 데이터베이스 서버(210)에 접속하고, 그리고 데이터베이스 서버(210)와 통신할 수 있다. 다른 실시예에 있어서, 데이터베이스 서버(210)는 서버(200)에 통합될 수 있다(혹은 직접 연결될 수 있다). 또 다른 실시예에 있어서, 서버(200)가 개발자에 의해 호스팅되고 운영되는 것과 같이, 데이터베이스 서버(210)는 개발자 컴퓨터(100)에 통합될 수 있다(혹은 직접 연결될 수 있다).
일 실시예에 있어서, 서버(200)는 네트워크(500)를 통해, 디지털 배포 플랫폼(300)과 같은 하나 이상의 디지털 배포 플랫폼과 통신할 수 있다. 디지털 배포 플랫폼(300)은 모바일 앱을 호스팅하고 말단 사용자에게 모바일 앱을 배포할 수 있는 어떤 적합한 네트워크 서비스가 될 수 있다. 이 실시예에 있어서, 디지털 배포 플랫폼(300) 은 iOS의 앱 스토어, 안드로이드의 마켓, webOS의 앱 카탈로그와 같은, 개별 모바일 운영체제(또는 시스템) 및/ 또는 모바일 장치(또는 장치들)의 제조사 또는 개발자와 관련되고, 및/또는 호스팅되고 운영되는 웹 기반 서비스가 될 수 있다. 다른 실시예에 있어서, 디지털 배포 플랫폼(300)은 서드 파티 제공자에 의해 또는 개발자에 의해 호스팅되고 운영되거나, 및/또는 서버(200) 또는 개발자 컴퓨터(100)에 통합될 수 있다. 이 실시예에 있어서, 도 1에 보인 바와 같이, 서버(200)는 네트워크(500)를 통해 디지털 배포 플랫폼(300)과 통신할 수 있다.
예를 들면, 서버(200) 및/또는 모바일 개발 서비스를 통해 모바일 앱을 생성 또는 수정하는 동안 또는 후에, 개발자는 하나 이상의 타겟 모바일 장치 세트를 선택할 수 있다. 이는 모바일 어플리케이션이 동작하도록 하는 하나 이상의 모바일 운영체제 및/또는 모바일 장치를 포함한다. 예를 들면, 타겟 모바일 장치 세트는 모바일 장치 카테고리, 모바일 장치 타입 또는 모바일 장치 모델을 포함할 수 있다. 각 모바일 장치 카테고리는 개별 모바일 운영체제를 구동하는 모바일 장치의 그룹과 관련될 수 있다(예컨대, iOS 모바일 운영체제에서 구동하는 다양한 버전의 애플의 아이폰, 아이패드 및 아이터치). 각 모바일 장치 타입은 모바일 장치의 타입에 기초한, 모바일 장치 카테고리의 서브세트와 관련될 수 있다(예컨대, 스마트폰, 태블릿 등). 각 모바일 장치 모델은 단일 모바일 장치(예컨대, 애플의 아이폰 4) 또는 개별 모바일 장치의 모든 모델들(예컨대, 에플의 아이폰)과 관련될 수 있다. 일 실시예에 있어서, 기본 타겟 모바일 장치 세트는 대안적으로 또는 추가적으로 모바일 개발 플랫폼 및/또는 서비스에 의해 설정될 수 있다. 일 실시예에 있어서, 서버(200)는 선택된 모바일 장치 카테고리 및/또는 모바일 장치 타입에 기초한 앱을 컴파일하거나, 및/또는, 말단 사용자에게 배포하기 위한 디지털 배포 플랫폼 (300)과 같은 하나 이상의 디지털 배포 플랫폼으로 컴파일된 앱을 전달할 수 있다. 일 실시예에 있어서, 서버 (200)는 디지털 배포 플랫폼(300)으로 모바일 개발 서비스를 통해 개발된 앱을 자동으로 제출할 수 있다. 다른 실시예에 있어서, 개발자는 그들의 앱을 수동으로 제출하도록 요구될 수 있다.
일 실시예에 있어서, 디지털 배포 플랫폼(300)이 모바일 운영체제 또는 모바일 장치 제조사 또는 개발자에 의해 호스팅되고 운영되는 경우에 있어서, 모바일 앱은 디지털 배포 플랫폼(300)을 통해 수용되고 및/또는 배포되기 이전에 승인을 위해 제출되는 것이 요구될 수도 있다. 이 실시예에 있어서, 모바일 운영체제 또는 모바일 장치 제조사 또는 개발자는 디지털 배포 플랫폼(300)을 통해 배포하기 위해, 및/또는 상기 플랫폼에 의해 지원되는 모바일 운영 체제 및/또는 장치에 특화된 어떤 특징 또는 기능을 사용하기 위해, 모바일 앱이 디지털 사인 및/ 또는 고유의 식별자가 포함되도록 요구할 수 있다. 일 실시예에 따르면, 서버(200)는 모바일 앱의 컴파일 동안 앱을 위한 디지털 사인 및/또는 고유의 식별자를 생성하거나 디지털 배포 플랫폼(300)에 의해 요구되는 어떤 승인 프로세스 또는 제출 프로시저를 관리할 수 있다.
도 1에 보인 바와 같이, 일 실시예에 있어서, 디지털 배포 플랫폼(300)은 모바일 장치(400)와 같은, 모바일 장치 상에서 실행을 위해 말단 사용자에게 모바일 앱을 배포할 수 있다. 모바일 장치(400)는 스마트폰, 태블릿, 슬레이트, 또는 모바일 운영체제를 실행할 수 있는 어떤 다른 형식의 장치를 포함하는, 모바일 앱을 실행할 수 있는 어떤 적합한 타입의 모바일 장치가 될 수 있다(예컨대, iOS, 안드로이드, 심비안, 블랙베리 OD, 윈도우 모바일, 윈도우 폰). 예를 들면, 디지털 배포 플랫폼(300)은 모바일 개발 서비스를 통해 개발된 모바일 앱을 포함하는, 수많은 모바일 앱을 호스팅할 수 있다. 일 실시예에 있어서, 말단 사용자는 브라우저를 통해 디지털 배포 플랫폼(300)에 접속할 수 있고, 다운로드를 위해 필요한 어떤 모바일 앱을 선택할 수 있다. 그런 다음, 선택된 모바일 앱이 말단 사용자에게 제공되고, 모바일 장치(400)에 인스톨된다. 일 실시예에 있어서, 말단 사용자는 웹 사이트 링크, 이메일, 텍스트 메시지, 셀룰러 데이터 또는 예컨대, 어떤 다른 적합한 형태의 디지털 배포 플랫폼(300) 및 모바일 장치(400) 사이의 통신을 통해, 선택된 모바일 앱에 접속하여, 그로부터 모바일 장치(400)에 직접 앱을 다운로드 할 수 있다. 대안적으로, 또는 추가적으로, 말단 사용자는 퍼스널 컴퓨터, 랩탑, 태플 릿 등과 같은, 개별 장치를 이용하여 접속하고, 선택된 앱을 다운로드할 수 있다. 그런 다음, 말단 사용자는 모바일 장치(400)로 다운로드된 앱을 전달하고, 모바일 장치(400)에 그 앱을 인스톨할 수 있다. 다른 실시예에 있어서, 말단 사용자는 개발자 컴퓨터(100) 또는 서버(200)로부터 직접 모바일 앱을 다운로드할 수 있다.
서버(200) 및/또는 모바일 개발 서비스를 통해 개발된 모바일 앱은 아래의 도 3 내지 도 5와 관려된어 도시되고 설명되겠지만, 임의의 모바일 장치 카테고리 및/또는 모바일 장치 타입용으로 컴파일 될 수 있다. 일 실시예에 있어서, 컴파일은 전체 앱을 포함하지 않을 수 있지만, 식별되는 레퍼런스 및/또는 구성파일 또는 초기화 파일과 같은, 앱과 관련된 데이터의 서브세트를 포함할 수 있다. 그런 다음, 컴파일이 앞서 설명된 바와 유사한 방식으로 모바일 장치에 인스톨 및 다운로드를 위해 말단 사용자가 이용할 수 있도록 이루어질 수 있다. 예를 들 면, 말단 사용자는 모바일 장치(400)에 대해 선택된 모바일 앱을 위한 컴파일을 다운로드 또는 인스톨할 수 있다. 일 실시예에 따르면, 컴파일을 다운로하고, 앱을 인스톨하고 앱을 실행시킨 후에, 모바일 앱 및/또는 모바일 장치(400)는 원격 스토리지 매체로부터 추가 어플리케이션 데이터를 리트라이브 할 수 있다. 이 추가 어플리케이션 데이터는 앱을 빌드하고, 포맷하고, 및/또는 앱과 앱의 컨텐츠를 말단 사용자에게 제공하기 위해 사용될 수 있다. 예를 들면, 도 1에 보인 바와 같이, 모바일 장치(400)는 네트워크(500)을 통해 데이터베이스 서버(210)와 통신할 수 있다. 일 실시예에 있어서, 모바일 장치(400)는 컨텐츠, 레이아웃, 템플릿, 모듈, 또는 앱이 필요로 하는 앱과 관련된 다른 컴포넌트와 같은, 어떤 어플리케이션 데이터에 접근할 수 있다. 다른 실시예에 있어서, 모바일 장치(400) 및/또는 모바일 앱은 디지털 배포 플랫폼(300), 서버(200), 개발자 컴퓨터(100) 및/또는 어플리케이션 데이터를 호스팅하고 공급하는 임의의 서드 파티 서비스 제공자로부터 어플리케이션 데이터를 리트라이브할 수 있다. 일 실시예에 있어서, 모바일 어플리케이션이 구동될 때, 모바일 어플리케이션은 어플리케이션 데이터를 리트라이브하기 위해 자동으로 데이터베이스 서버(210)에 접속하고, 어플리케이션 및/또는 이의 컨텐츠로 만들어진 임의의 업데이트들을 검사하고 다운로드한다.
이 문헌에 설명된 시스템들 및 방법들의 이득은 앞서 설명으로 알 수 있는 바와 같이, 고도의 전문 지식 및 기술이 요구되지 않고 모바일 앱 개발자가 다중 모바일 운영체제 및 배포 플랫폼에 걸쳐 고도의 모바일 앱을 디자인, 빌드 및 배포할 수 있도록 하는 것이다. 다른 이득은 설명된 플랫폼을 통해 개발된 모바일 어플리케이션은 단순화된 포맷으로 말단 사용자에게 배포될 수 있다는 점이다. 이는 앱의 실행 또는 인스톨에 관하여 원격 소스로부터 어플리케이션에 의해 요구되거나, 및/또는 관련된 데이터에 접속할 수 있다. 결국, 이는 앱 개발자가 원격 소스에 저장된 어플리케이션 데이터를 단순하게 업데이트하는 것에 의해, 배포 후의 앱의 포맷, 피처, 기능 및 컨텐츠를 수정하거나 업데이트하도록 할 수 있다. 이는 앱을 다시 인스톨하거나 또는 수동으로 연결하거나, 디지털 배포 플랫폼 또는 다른 서드 파티 서비스 제공자로부터 어떤 데이터를 다운로드할 필요 없이, 앱이 구동된 때에 그러한 업데이트가 자동으로 말단 사용자에게 공급된다.
도 2는 일 실시예에 따른 모바일 개발 및 배포 플랫폼의 어플리케이션 개발 환경의 일부를 도시한 도면이다. 도 2에 보인 특정 디스플레이는 개발자가 모바일 앱을 디자인 및 개발하도록 하기 위해 개발자에게 제공되는 웹 사이트의 형식의 웹 툴의 실 예이다. 일 실시예에 있어서, 어플리케이션 개발 환경은 서버(200) 및/또는 모바일 개발 서비스에 의해 공급될 수 있고, 도 1과 관련하여 도시되고 설명된 바와 같이 개발자 컴퓨터(100)를 이용하여 개발자에 의해 접근될 수 있다. 예를 들면, 서버(200)는 웹 기반 도구의 일부인 웹 페이지를 호스팅할 수 있고, 그들을 네트워크(500)를 통해 개발자 컴퓨터(100)로 전송할 수 있다.
도 2에 보인 바와 같이, 일 실시예에 있어서, 모바일 개발 환경은 디스플레이 스크린(102)와 같은, 개발자 컴퓨터(100)와 관련된 디스플레이 상에서 개발자에게 디스플레이될 수 있다. 예를 들면, 디스플레이 스크린(102)은 개발 윈도우(110)와 같은, 디스플레이 윈도우에서 모바일 개발 환경을 제공할 수 있다. 개발 윈도우(110)는 개발자에게 모바일 개발 환경을 제공하기에 적합한 임의의 디스플레이 형식이 될 수 있다. 일 실시예에 있어서, 도 2에 도시된 바와 같이, 개발 윈도우(110)는 어떤 선택을 보여주고 만들어주는 것에 의해, 데이터를 입력하고 업로드하는 것에 의해 미리 정의된 어플리케이션 데이터를 커스터마이징하고 수정하는 것에 의한 것과 같이, 모바일 앱을 빌드하기 위해, 개발자가 다양한 시각적 컴포넌트와 상호작용하도록 하는 그래픽 사용자 인터페이스(GUI)의 형식으로 제공된다.
일 실시예에 따르면, 모바일 개발 환경이 웹 기반 서비스를 통해 제공되는 것과 같이, 개발 윈도우(110)는 개발자가 그것을 통해 탐색하거나, 상호작용하거나, 모바일 앱을 생성하거나, 업데이트할 수 있는 복수의 웹 페이지의 형식의 GUI를 개발자에게 제공할 수 있다. 다른 실시예에 있어서, 모바일 개발 환경이 스탠드 얼론 소프트웨어 어플리케이션의 형식인 것과 같이, 개발 윈도우(110)는 소프트웨어 어플리케이션과 관련된 그래픽 출력을 표시할 수 있다. 일 실시예에 있어서, 모바일 개발 환경은 개발자가 앱-타입(app-types) 및 모듈(modules)과 같은 임의의 미리 정의된 어플리케이션 컴포넌트들, 텍스트, 이미지, 비디오, 오디오와 같은 컨텐츠 요소, 및/또는 테마, 레이아웃, 포맷, 스타일 등과 같은 어플리케이션 디자인 요소를 조합하도록 하거나, 및/또는, 그들 자신의 어플리케이션 컴포넌트, 컨텐츠 요소 및 디자인 요소를 생성하도록 할 수 있다. 그렇게 함으로써, 그러한 개발자들이 소프트웨어 코드를 이해하거나 기록해야 할 필요 없이 모바일 앱을 생성하도록 할 수 있다. 예를 들면, 개발자는 모바일 앱을 위한 어떤 미리 정의된 디자인 요소 및/또는 이의 컴포넌트를 제공받고, 선택하거나 및/또는 수정할 수 있다. 이는 개발자가 모바일 앱의 디자인 및 표현과 이의 사용자 인터페이스를 생성하고, 수정하고, 그리고 커스터마이징할 수 있도록 한다.
다른 예로, 일 실시예에 있어서, 개발자는 개발자가 앱을 커스터마이징하기 위해 선택하고, 수정하고 그리고 조합할 수 있는 앱-타입 및 모듈과 같은, 임의의 미리 결정된 어플리케이션 컴포넌트를 제공 받을 수 있다. 일 실시예에 있어서, 각 앱-형식은 식당 앱, 로펌 앱, 잡지 앱, 블로그 앱, 의사 앱 및 박물관 앱과 같은, 앱의 개별 카테고리와 관련될 수 있다. 일 실시예에 있어서, 모듈은 앱에 포함될 수 있는 임의의 기능 및 특징과 관련될 수 있다(예컨대, 통화, 이미지 뷰어, 지도 기능, 이메일 기능, 메시지 기능, 등). 일 실시예에 있어서, 모듈은 그러한 모듈이 메뉴와 같은, 미리 결정된 방식으로 기능하도록 허용하는 대응하는 어플리케이션 로직 및 코드와 더불어, 하나 이상의 모바일 장치 카테고리 및/또는 모바일 장치 타입(예컨대, 터치스크린 인터페이스, 비디오 카메라, 등)에 특화된 특징 및 기능을 포함할 수 있다.
이 문헌에서 논의되는 시스템 및 방법에 따라 사용될 수 있는 특정 앱-형식 및 모듈의 추가적인 예들이 도 9 내지 도 18과 관련되어 아래에서 설명되고, 및/또는 도시된다. 위에서 논의된 특정 어플리케이션 디자인 요소 및 컴포넌트(예컨대, 레이아웃, 테마, 앱-형식 및 모듈) 그리고 그들에 대응하는 명칭이 단지 예시적인 목적으로 제공되며, 그리고 다양한 다른 형식 및 이름의 어플리케이션 컴포넌트 및 디자인 요소가 사용될 수 있음을 이해하여야 한다.
도 2에 보인 바와 같이, 일 실시예에 있어서, 개발 윈도우(110)는 하나 이상의 어플리케이션 컴포넌트, 디자인 요소, 컨텐츠 요소, 및/또는 개발자에 대한 다양한 설정 또는 옵션을 표시하기 위한 컴포넌트 윈도우(112)와 같은 서브윈도우를 포함할 수 있다. 예를 들면, 개발자가 새로운 앱을 생성할 때, 컴포넌트 윈도우는 개발자에게 복수의 이용 가능한 레이아웃, 앱-형식, 및/또는 앱에서 사용될 수 있는 모듈을 제공할 수 있다. 일 실시예에 있어서, 개발 윈도우는 하나 이상의 선택할 수 있는 아이콘, 입력 필드 및/또는 버튼(120 내지 122)과 같은 버튼을 포함할 수 있고, 이는 개발자가 어플리케이션 컴포넌트, 디자인 요소를 선택, 생성, 및 수정하는 것에 의해, 그리고, 컨텐츠 및 다른 데이터를 설정 및/또는 입력하는 것에 의해, 모바일 개발 환경과 상호작용하도록 할 수 있다.
예를 들면, 개발자는 버튼(120 및 122)을 클릭하여 컴포넌트 윈도우(112)에 표시된 임의의 이용 가능한 어플리케이션 컴포넌트, 컨텐츠 요소 및 디자인 요소를 브라우징할 수 있다. 개발자가 소망하는 컴포넌트 또는 요소에 이르렀을 때, 개발자는 버튼(121)을 클릭하여 현재 모바일 앱에 그 컴포넌트 또는 요소를 추가할 수 있다. 이 실시예에 있어서, 이전에 선택되거나 또는 생성된 컴포넌트 및 디자인 요소는 개발자에 의해 선택되거나, 및/또는 수정될 수 있는 표시된 컴포넌트 또는 디자인 요소들과 관련된 설정들 및 다양한 옵션들과 더불어 컴포넌트 윈도우(112)에 표시될 수 있다. 이들 실시예에 있어서, 개발자는 버튼(121)에 의해 모바일 앱으로부터 앞서 선택된 컴포넌트 또는 요소를 제거할 수 있다. 이 문헌에 설명된 특정 사용자 인터페이스 및 사용자 입력은 예시적인 것이며, 음성 인식, 시각 입력, 터치스크린, 등과 같은, 이 기술분야에서 알려진 임의의 다른 적합한 형식의 사용자 인터페이스로 교체되거나, 조합될 수 있다.
일 실시예에 따르면, 도 2에 도시된 바와 같이, 개발 윈도우(110)는 장치 표현(116)과 같은, 하나 이상의 모바일 장치의 그래픽 표현을 포함할 수 있다. 일 실시예에 있어서, 표현된 특정 모바일 장치는 모바일 앱이 개발된 하나 이상의 모바일 장치 카테고리 또는 모바일 장치 타입과 관련되어 개발자에 의해 앞서 이루어진 선택을 기반으로 할 수 있다. 다른 실시예에 있어서, 개발자는 개발 윈도우(110)에 포함된 드롭다운 메뉴 또는 버튼을 클릭하여, 장치 표현(116)에 의해 표현되는 모바일 장치(또는 그것의 카테고리 및/또는 타입) 사이에서 선택, 업 데이트 및/또는 교환할 수도 있다.
일 실시예에 있어서, 장치 표현(장치를 표현한 것, 116)은 개발자가 어떻게 앱-타입, 레이아웃, 및 테마와 같은, 임의의 어플리케이션 컴포넌트, 컨텐츠 요소 및/또는 디자인 요소가 제공되는지 볼 수 있도록 하거나, 및/또는 표현된 모바일 장치상에서 기능을 볼 수 있도록 한다. 일 실시예에 있어서, 장치 표현(116)은 개발자에 의해 이루어진 임의의 선택 및/또는 컨텐츠 또는 데이터 입력에 기초하여 업데이트될 수 있다. 예를 들면, 개발자가 임의의 어플리케이션 컴포넌트 및 다지안 요소를 선택, 생성 또는 수정함에 따라, 장치 표현(116)은 도시된 장치 스크린 내에서 그러한 선택을 반영하도록 업데이트되거나, 리프레쉬될 수 있다. 그렇게 함으로써, 개발자가 얼마나 다양한 선택 및 수정이 하나 이상의 모바일 장치 카테고리, 모바일 장치 타입 또는 특정 모바일 장치에서 모바일 앱의 동작 및/또는 디스플레이에 영향을 미칠지를 실시간으로 보거나 이해할 수 있도록 한다. 일 실시예에 있어서, 장치 표현(116)은 앱의 현재 상태의 시뮬레이션을 제공할 수 있고, 개발자가 장치 표현(116)에 의해 시뮬레이션되는 앱의 다양한 부분들에 대해 클릭하는 것에 의해, 그 앱을 통해 탐색하고, 그 앱과 상호 작용할 수 있도록 한다. 개발자가 장치 표현(116)을 통해 앱의 일부를 선택하는 것에 대응하여, 개발 윈도우 (110)는 앱의 선택된 부분과 관련된 임의의 어플리케이션 컴포넌트, 컨텐츠 요소 또는 디자인 요소를 표시할 수 있고, 및/또는 개발자가 이들 컴포넌트 및 디자인 요소와 관련된 다양한 특징, 옵션 디자인을 추가, 수정, 업로드 및 제거할 수 있도록 한다.
도 2에 보인 바와 같이, 개발 윈도우(110)는 모바일 앱을 디자인, 생성 및/또는 수정하는 프로세스에 걸쳐 개발자를 돕거나, 및/또는 안내하는, 그래픽 마법사(114)와 같은 사용자 친화 도구를 포함할 수 있다. 일 실시예에 있어서, 그래픽 마법사(114)는 개발자가 앱을 위해 다양한 앱-타입, 모듈, 레이아웃, 테마, 설정 및 컨텐츠를 추천하는 것에 의해, 다양한 어플리케이션 컴포넌트, 디자인 요소 및 컨텐츠 요소의 선택, 생성, 입력, 조합 및/또는 커스터마이징하도록 도울 수 있다. 예를 들면, 그래픽 마법사(114)는 임의의 힌트, 도움말 텍스트, 제안을 제공하거나, 및/또는 개발자의 임의의 요구된 선택 또는 입력을 통지할 수 있고, 이는 개발 윈도우(110) 내에서 또는 오디오와 같은, 임의의 다른 적합한 형태의 출력을 통해 개발자에게 제공될 수 있다. 일 실시예에 있어서, 개발자는 그래픽 마법사(114)와 관련된 개발 윈도우(110) 내에 아이콘 또는 버튼을 클릭, 또는 호버(hover)하는 것에 의해 그러한 정보를 볼 수 있다. 일 실시예에 있어서, 그래픽 마법사(114)는 도 2에 도시된 로봇과 같은, 대표적인 캐릭터 또는 아이콘을 포함하거나, 그러한 형태로 제공될 수 있다. 다른 실시예에 있어서, 임의의 다른 적합한 특징 또는 그래픽 묘사의 마법사 또는 안내 도구가 사용될 수 있다. 일 실시예 에 있어서, 개발자는 그래픽 마법사(114)를 활성화시키고 비활성화시키도록 허용될 수 있다.
일 실시예에 있어서, 어플리케이션 개발 윈도우(110)는 도 2에 도시된 프로그래스 바(118)와 같은 프로그래스 지시자(progress indicator)를 포함하며, 이 프로그래스 지시자는 어플리케이션 개발 프로세스를 통해 개발자의 진척 상황을 나타낼 수 있다. 일 실시예에 있어서, 프로그래스 바(118)는 완료되어진 및/또는 현재 모바일 앱을 끝내기 위해 개발자에 의해 완료가 여전히 요구되는 하나 이상의 단계를 나타낼 수 있다. 예를 들면, 어플리케이션 생성 및 배포 진척 상황은 임의의 수의 서브프로그래스로 분할될 수 있다. 개발자가가 앱 디자인 및 배포 프로세스를 통해 이동함에 따라, 프로그래스 바(118)는 각 서브 프로세스의 상태를 반영하여 업데이트될 수 있다. 프로그래스 바는 또한 대안적으로, 앱의 품질을 반영할 수 있고, 이는 개발자에 의해 추가되고 업로드된 컨텐츠 또는 선택된 커스터마이즈된 것의 양 및/또는 형식과 같은, 앱의 독창성에 기초하여 업데이트될 수 있다.
일 실시예에 있어서, 모바일 개발 환경이 웹 기반 서비스의 형태로 제공되는 바와 같이, 서브 프로그래스는 개발자가 매 페이지 마다 또는 유사한 방식에서 어플리케이션 개발 및 배포의 프로세스에 걸친 단계를 밟도록 하는 하나 이상의 웹 페이지에 의해 표현될 수 있다. 일 실시예에 따르면, 그래픽 마법사(114)는 각 페이지 또는 섹션과 관련된 하나 이상의 단계들에 걸쳐 개발자를 안내할 수 있다. 다른 실시예에 있어서, 단계들 및/또는 서브 프로그래스는 개발자가 단일 웹 페이지 내에서와 같이, 요구되는 바에 따라 선택하도록 단일 그룹의 옵션 및 설정으로 병합될 수 있다.
예를 들면, 일 실시예에 따라, 웹 기반 서비스를 통해 접속된 모바일 앱 생성 및 배포 프로세스는 4개의 주요 서브 프로세스로 분할될 수 있다: 앱 속성(app properties), 앱 디자인(app design), 앱 컨텐츠(app content) 및 앱 퍼블리싱(app publishing). 새로운 앱을 생성하기 위한 옵션을 선택한 후, 개발자는 앱 속성 서브 프로세스를 완료하기 위해 프롬프트를 수신할 수 있다(완료 여부에 대한 질의를 수신할 수 있다). 앱 속성 서브 프로세스를 통해, 개발자는 선택하거나, 업로드하거나, 및/또는 앱을 위한 명칭, 아이콘 이미지 및/또는 스플래시 스크린 이미지와 같은, 앱을 위한 다양한 높은 레벨 설정을 입력할 수 있다. 그런 다음, 개발자는 개발자가 컬러 스킴, 백그라운드 이미지 및/또는 앱-타입과 같은, 앱을 위한 다양한 디자인 및 레이아웃 옵션을 선택하거나, 업로드하거나, 및/또는 입력하도록 하는 것을 통해, 앱 디자인 서브 프로세스를 진행할 수 있다. 높은 레벨 속성 및 앱의 전체 디자인을 선택하고, 커스터마이징한 후, 개발자는 앱에 포함시키기 위해 다양한 모듈 및 컨텐츠 요소를 추가하고 커스터마이징하여, 앱의 컨텐츠 및 기능을 추가, 수정, 조합 및 커스터마이징 하는 것을 통해, 앱 컨텐츠 서브 프로세스를 진행할 수 있다. 개발자가 앱 및 이의 컨텐츠의 생성 및 디자인이 완료하면, 개발자는 앱 퍼블리싱 서브 프로세스로 이동할 수 있다. 이 서브 프로세스를 통해, 개발자는 타겟 모 바일 장치 타입, 앱 설명서, 앱 카테고리, 저작권 설정 및/또는 키워드와 같은 다양한 퍼블리싱 속성을 선택하고, 앱을 퍼블리싱할 수 있다. 일 실시예에 있어서, 앱 퍼블링 서브 프로세스는 앱이 퍼블리싱을 위한 어떤 최소한의 요구사항을 만족하는지 여부를 검사할 수 있다. 그리고, 만약 만족하지 않는다면, 개발자에게 임의의 결손 사항을 나타낼 수 있다.
일 실시예에 있어서, 앞서 설명된 4개의 서브 프로세스 각각은 개발 웹 페이지 또는 웹 페이지들을 통해 개발자에게 제공될 수 있고, 및/또는 개발자에 의해 접근될 수 있다. 다른 실시예에 있어서, 이들 서브 프로세스들은 단일 웹 페이지 내의 텝의 형식으로 제공되거나, 또는, 웹 기반 서비스 내에서 사용되는 용도에 적합한 다른 방법으로 제공될 수 있다. 4개의 서브 프로세스 및 그들의 명칭들이 예시적인 목적으로 앞서 설명되었지만, 임의의 수의 서브 프로세스가 모바일 앱 생성 및 배포 플랫폼 및/또는 대응하는 웹 기반 서비스와 관련하여 사용될 수 있음을 이해하여야 한다.
도 3은 도 1 및 도 2에 설명된 바와 같은 실시예에 따른 모바일 개발 플랫폼을 통해 모바일 어플리케이션을 개발하기 위한 프로세스의 흐름도이다. 10 단계에서, 개발자는 모바일 개발 환경에 접근한다. 일 실시예에서, 개발자는 웹 서버(도 1에 도시된 서버(200)과 같은)에 의해 호스팅되고 운영되는 웹 사이트를 탐색하는 개발자의 컴퓨터의 브라우저를 이용하여 상기 환경에 접근할 수 있다. 웹 서버 및/또는 모바일 개발 환경은 개발자가 모바일 개발 환경 및/또는 관련된 웹 사이트에 접속하기 위해 로그인하도록 요청할 수 있다. 일 실시예에 있어서, 모바일 개발 환경에 접속하면, 개발자는 새로운 모바일 앱을 생성하고, 기존의 모바일 앱을 업데이트하기 위한 옵션과 같은 임의의 옵션을 제시받을 수 있다. 개발자의 앱을 생성하거나, 업데이트하기 위한 옵션 선택에 대응하여, 20 단계에서 모바일 개발 환경은 앱을 위해 선택되거나, 웹에 포함될 수 있는 어플리케이션 컴포넌트, 디자인 요소, 컨텐츠 요소 및 설정과 같은, 앱, 및 앱의 컴포넌트 및 요소와 관련되어, 개발자에게 옵션을 표시하고, 개발자로부터 선택 및 입력을 수신할 수 있다.
예를 들면, 일 실시예에 있어서, 개발자가 새로운 모바일 앱을 생성하는 것을 원하는 경우, 모바일 개발 플랫폼은 임의의 이용할 수 있는 미리 결정된 앱-타입을 표시하는 웹 페이지를 표시할 수 있다. 모바일 개발 환경은 새로운 앱을 위한 앱-타입을 선택하도록, 및/또는, 명칭, 모바일 장치에 표시되어지는 아이콘 파일 및 이의 위치, 스플래시 스크린 이미지 또는 타겟 모바일 장치 카테고리 또는 모바일 장치 타입과 같은, 앱을 위한 임의의 기본 속성들을 입력 또는 선택하도록 사용자에게 프롬프트(prompt, 사용자에게 입력을 받기 위해 표시하고 대기)할 수 있다. 일 실시예에 있어서, 하나 이상의 키워드는 앱과 관련될 수 있고, 이는 개발자의 선택 및 입력에 기초하여 자동으로 생성되거나, 개발자에 의해 제공될 수 있다. 일 실시예에 있어서, 이들 키워드는 디지털 배포 플랫폼에 포함되는 하나 이상의 미리 결정된 앱 카테고리를 가지는 앱과 관련되거나 말단 사용자가 키워드 검색을 이용하여 앱을 검색하도록 하기 위해 단말 사용자에게 앱의 배포와 관련하여 모바일 개발 환경 및/또는 개발자에 의해 사용될 수 있다.
일 실시예에 있어서, 개발자가 앱-타입을 선택하고 및/또는 새로운 앱을 위한 임의의 기본 어플리케이션 속성을 선택 또는 입력하거나, 또는, 수정을 위한 기존의 앱을 선택한 후, 모바일 개발 환경은 모듈과 같은 다양한 미리 결정된 어플리케이션 컴포넌트, 및/또는, 선택되고, 커스터마이징되거나 모바일 앱에 포함될 수 있는 테마 및 레이아웃과 같은 어플리케이션 다지안 요소를 표시할 수 있다. 일 실시예에 있어서, 특정 어플리케이션 컴포넌트 또는 디자인 요소를 선택한 후, 개발자는 컨텐츠 요소, 설정, 특징 및 관련 서브 컴포넌트를 포함하여, 선택된 컴포넌트 또는 디자인 요소와 관련된 임의의 옵션을 제시 받고 선택 입력 및 수정할 수 있다. 예를 들면, 앱에 포함되는 특정 미리 결정된 모듈을 선택한 후, 모바일 개발 환경은 선택된 모듈을 위한 이용 가능한 레이아웃 및/또는 선택되거나 또는 수정될 수 있는 다양한 모듈 속성(properties) 또는 특성을 보여주는 웹 페이지를 표시할 수 있다. 모바일 개발 환경은 텍스트, 이미지, 비디오 등과 같은 어플리케이션 컴포넌트와 관련된 임의의 컨텐츠를 입력 또는 업로드하기 위해 개발자에게 프롬프트할 수 있다.
일 실시에에 있어서, 미리 결정된 어플리케이션 컴포넌트 또는 디자인 요소를 선택하는 것에 추가로, 또는 대신하여, 개발자는, 도 4와 관련되어 설명된 유사한 방식으로 커스텀 컴포넌트를 위한 템플릿을 생성하는 것에 의해, 모바일 앱에 포함시키기 위한 커스텀 컴포넌트 또는 요소를 생성 또는 업로드하는 것이 허용될 수 있다. 일 실시예에 있어서, 개발자는 개발자에 의해 공급되는 임의의 앞서 선택된 컴포넌트, 다지안 요소 또는 컨텐츠 요소를 보고, 수정하고, 및/또는 제거할 수 있다. 도 2와 관련하여 논의된 바와 같이, 모바일 개발 환경은 개발자 에 의해 제공된 선택 및 입력에 기초하여 어플리케이션의 현재 상태의 그래픽 표현을 표시하고 업데이트할 수 있다.
일 실시예에 따라, 개발자가 기존의 모바일 어플리케이션을 업데이트하는 것을 원할 때, 모바일 개발 환경은 진행 중인 앱과 같은 개발자가 앞서 성생한 앱의 리스트를 표시하고, 수정 또는 업데이트를 위해 앱을 선택하도록 개발자에게 프롬프트한다. 모바일 개발 환경은 선택된 앱의 현재 상태를 개발자에게 제공할 수 있고, 앞서 설명 된 것과 유사한 방식으로 어플리케이션 컴포넌트, 디자인 요소, 컨텐츠 요소 및 다른 데이터를 사용자가 추가, 수정, 커스터마이징, 생성 및/또는 제거하도록 한다. 일 실시예에 있어서, 모바일 개발 플랫폼은 아래에서 더 상세하게 설명될 원격 데이터베이스 서버와 같은, 스토리지 장치로부터 선택된 앱 및 이의 데이터를 리트라이브 할 수 있다.
30 단계에서, 모바일 개발 환경은 어플리케이션 개발 프로세스 동안 개발자에 의해 제공되는 임의의 선택, 업데이트 또는 입력을 저장한다. 일 실시예에 있어서, 모바일 개발 환경은 원격 어플리케이션 데이터베이스, 로컬 데이터베이스 또는 임의의 다른 적합한 저장 매체에 이 정보를 저장할 수 있다. 이 실시예에 있어서, 모바일 개발 환경은 데이터베이스에 접근할 수 있고, 도 4와 관련되어 설명된 것과 유사한 방식으로 데이터베이스와 이의 테이블의 엔트리 및 그들 상이의 관계를 생성 및/또는 업데이트할 수 있다. 일 실시예에 있어서, 모바일 개 발 환경은, 그러한 선택 각각이 이루어지거나 또는 입력이 제공된 후, 개발자의 선택, 입력 및 다른 어플리케이션 데이터를 자동으로 저장할 수 있다. 다른 실시예에 있어서, 모바일 개발 환경은 개발자에게 프롬프팅하거나, 및/또는, 앱을 저장하기 위해 개발자로부터 지시자를 수신한 후, 이 정보를 저장할 수 있다. 또 다른 실시예에 있어서, 정보는, 개발자가 도 2와 관련되어 논의된 바와 같은 어플리케이션 개발 프로세스의 일부 또는 임의의 단계를 완료한 후, 저장될 수 있다. 일 실시예에 있어서, 모바일 개발 환경은 고유 식별자와 같은, 앱과 관련된 추가 정보를 생성 및 저장할 수 있고, 그리고, 로그를 변경한다.
40 단계에서, 모바일 개발 환경은 개발자가 앱을 완성하기에 충분한 정보를 제공받았는지 여부를 판단할 수 있다. 일 실시예에 있어서, 모바일 개발 환경은 개발자가 어플리케이션 개발 프로세스의 어떤 단계 또는 섹션을 완료한 후, 이러한 판단을 할 수 있다. 다른 실시예에 있어서, 모바일 개발 환경은 개발자가 모바일 앱을 완성하거나, 및/또는 배포하도록 원하는 것을 나타낼 때까지, 개발자에게 프롬프트하거나, 및/또는 대기할 수 있다. 만약, 모바일 개발 환경이 개발자가 앱을 완성하기에 충분한 정보를 공급받은 것으로 판단하면, 50 단계에서 모 바일 개발 환경은 앱을 완성할 것인지 여부를 나타내도록 개발자에게 프롬프트하고, 만일 그렇다면, 프로세스는 60 단계로 진행한다. 그렇지 않으면, 흐름은 20 단계로 되돌아간다. 여기서, 개발자는 어플리케이션 컴포넌트, 요소 및 컨텐츠를 추가하고, 제거하며, 그리고, 업데이트하는 것에 의해, 어플리케이션을 수정할 수 있다.
개발자가 모바일 어플리케이션이 완성되었음을 나타낸 후, 60 단계에서 모바일 개발 플랫폼은 개발자가 특정 앱이 구동되도록 하는 하나 이상의 모바일 장치 카테고리, 모바일 장치 타입 및/또는 모바일 장치 모델을 선택하도록 프롬프트할 수 있다. 일 실시예에 있어서, 개발자는 앞선 프로세스에서 어플리케이션 속성을 입력될 때와 같이, 모바일 장치 카테고리, 타입 및 모델을 선택할 수 있다. 일 실시예에 따르면, 모바일 개발 환경은 개발자에 의해 선택될 수 있는 이용 가능한 어플리케이션 컴포넌트 또는 디자인 요소를 업데이트하기 위해 선택된 모 바일 장치 카테고리, 타입 및 모델을 사용할 수 있다. 다른 실시예에 있어서, 개발자는 앱의 컴파일 이전에 언제라도 타겟 모바일 장치 카테고리, 타입 및 모델을 선택하거나 또는 수정하는 것이 허용될 수 있다.
70 단계에서, 모바일 개발 환경은 구성파일 또는 유사한 데이터와 같은, 어플리케이션을 위한 임의의 레퍼런스 데이터를 생성할 수 있다. 일 실시예에 있어서, 레퍼런스 데이터는 앱의 고유 식별자와 같은 앱과 관련된 기본 정보를 포함할 수 있다. 다른 실시예에 있어서, 레퍼런스 데이터는 어플리케이션의 아이콘 파일 위치, 앱 명칭, 스플래시 이미지 파일 위치, 보안 키, 앱의 런치/실행에 대한 액세스를 위한 웹 어드레스, 또는 앱과 관련된 동일한 및/또는 다른 정보의 임의의 조합과 같은, 추가의 또는 다른 정보를 포함할 수 있다. 또 다른 실시예에 있어서, 레퍼런스 데이터는 앱과 관련된 그리고 앱에 의해 필요한 모든 데이터를 포함할 수 있다.
80 단계에서, 모바일 개발 플랫폼은 선택된 모바일 장치 카테고리, 타입 및/또는 모델을 위한 앱을 빌드 및 컴파일한다. 일 실시예에 있어서, 앱은 모바일 운영체제 및 모바일 장치의 제조사 또는 개발자에 의해 공급되는 임의의 네이티브 컴파일러 및/또는 빌드 도구를 이용하여 컴파일되고 빌드된다. 예를 들면, 모바일 개발은 레퍼런스 데이터를 포함하는 선택된 모바일 장치 카테고리를 위해 쉘(shell) 또는 "빈(empty)" 앱을 빌드하기 위한 그러한 도구를 사용할 수 있다. 아래에서 더 상세하게 설명될 것이지만, 앱이 모바일 장치에 다운로드, 설치 또는 런칭될 때, 앱은 앱과 관련된 임의의 데이터에 접근하고 리트라이브하기 위해 레퍼런스 데이터를 이용할 수 있다.
앱이 컴파일된 후, 90 단계에서, 앱은 말단 사용자에게 배포를 위해 디지털 배포 플랫폼으로 제출될 수 있다. 예를 들면, 컴파일된 앱은 선택된 모바일 장치 카테고리, 타입 및/또는 모델과 관련된 하나 이상의 디지털 배포 플랫폼으로 제출된다(예컨대, iOS의 앱 스토어, 안드로이드의 마켓, webOS의 앱 카탈로그). 다른 실시예에 있어서, 디지털 배포 플랫폼이 모바일 개발 환경 또는 개발자의 컴퓨터에 통합되는 것과 같이, 컴파일된 앱은 말단 사용자에게 직접 배포될 수 있다. 일 실시예에 있어서, 개발자는 수동으로 컴파일된 앱을 디지털 배포 플랫폼으로 제출하는 것이 요구될 수도 있다. 다른 실시예에 있어서, 모바일 개발 플랫폼은 앱을 컴파일한 후, 디지털 배포 플랫폼으로 컴파일된 앱을 자동으로 제출할 수 있다. 모바일 개발 플랫폼은 또한 디지털 배포 플랫폼에 의해 요구되는 다른 동작 및 임의의 승인 절차를 관리할 수 있다.
도 3에 도시되고 이 문헌에 설명된 단계들의 순서는 단지 예시적인 것이며, 어플리케이션 컴포넌트를 선택하고, 어플리케이션 및 컴포넌트 속성을 입력하며, 어플리케이션 데이터를 저장하는 것과 같은 다양한 단계들의 순서 또는 조합은 수정되어 수행되거나, 적절하게 또는 개발자 또는 모바일 개발 플랫폼 제공자가 원하는 바에 따라 임의의 순서 또는 조합으로 수행될 수 있다.
그러므로 도 1 내지 도 3과 그와 관련된 설명으로부터 알 수 있는 바와 같이, 이 문헌에 설명된 시스템 및 방법은 비전문가가 사용자 친화, 소프트웨어 도구를 통해 특정 모바일 운영체제 및 모바일 장치에 특정된 특징을 포함하는, 다양한 특징 및 기능을 사용할 수 있는 크로스 플랫폼 모바일 어플리케이션을 빌드하도록 한다. 따라서 하나의 중요한 이득은, 이들 사용자가 컴퓨터 프로그래밍 또는 모바일 운영체제 및 장치에 있어, 기술적 전문지식이 요구되지 않고, 높은 수준의 커스터마이징이 가능하고 고도의 모바일 앱을 디자인, 빌드 및 배포할 수 있도록 한다는 것이다.
도 4는 일 실시예에 따른 모바일 개발 및 배포 플랫폼을 통해 개발된 모바일 앱을 위한 어플리케이션 데이터를 표현하기 위해 사용될 수 있는 예시적인 데이터 모델을 도시하는 블록도이다. 일 실시예에 있어서, 이 문헌에서 설명되고 도시된 모바일 개발 플랫폼 및 대응하는 시스템 및 방법을 통해 모바일 앱을 디자인, 생성, 수정 및 커스터마이징하기 위해 개발자에 의해 사용되는 어플리케이션 컴포넌트, 디자인 요소, 컨텐츠, 설정 및 다른 데이터는 상관적이고 및/또는 계층적인 방식으로 조직되고 저장될 수 있다. 일 실시예에 있어서, 플랫폼을 통해 개발된 앱은 어플리케이션 컴포넌트, 컨텐츠 요소 및/또는 디자인 요소의 세트를 포함하거나, 및/또는 그들 세트에 의해 표현될 수 있고, 그들 각각은, 결국, 하나 이상의 다른 어플리케이션 컴포넌트, 컨텐츠 요소, 및/또는 디자인 요소 등을 포함하거나, 관련될 수 있다. 예를 들면, 각 앱은 앱-타입과 관련될 수 있고, 이는 하나 이상의 모듈을 포함하며, 이들 각각은 하나 이상의 레이아웃을 포함한다.
일 실시예에 있어서, 어플리케이션 컴포넌트, 디자인 요소, 컨텐츠 요소 및 다른 데이터, 이와 더불어, 그들 상호 간의 관계는 관련 데이터베이스와 같은, 데이터베이스에 표현되고 그리고 저장될 수 있다. 다른 실시예에 있어서, 이들 관계 및 어플리케이션 데이터는 테이블, 트리, 링크의 세트 또는 다른 유사한 구조들과 같은, 임의의 다른 적합한 포맷 또는 매체에 표현되거나 저장될 수 있다. 관련 방식에서 이 정보를 저장하는 것에 의해, 모바일 개발 및 배포 플랫폼을 통해 개발된 모바일 앱은 어플리케이션의 컴포넌트, 요소 및 다른 데이터 사이의 일련의 관계를 통해 각 앱을 표현하여 간단하게 저장, 리트라이브, 빌드 및 업데이트될 수 있다. 더욱이, 도 4에 도시되고 설명된 아키텍처는 개발자 또는 다른 서드 파티에 의해 생성되거나 또는 커스터마이징되는 새로운 어플리케이션 컴포넌트, 컨텐츠 요소 및 디자인 요소가 모바일 개발 및 배포 플랫폼에 추가되도록 하고, 미래 모바일 앱의 개발에서 개발자에 의해 사용되도록 한다. 아래에서 설명되고 도 4에서 도시되는 특정 데이터 모델 및 대응하는 테이블, 특성 및 관계는 사실상 예시적인 것으로 이해되어야 한다. 따라서 데이터 모델은 이 기술 분야에서 알려진 바와 같은 임의의 다른 적합한 포맷 또는 포맷의 조합으로 표현되고 저장될 수 있고 테이블, 특성 및 관계는 다양한 다른 테이블, 특성, 관계 또는 다른 유사한 데이터에 의해 대체 되거나 조합될 수 있다.
일 실시예에 있어서, 데이터 모델은 데이터 테이블의 세트를 포함할 수 있고, 이들 각각은 어플리케이션 컴포넌트, 디자인 요소, 컨텐츠 요소 및 앱과 관련된 다른 데이터와 같은, 앱과 관련된 임의의 정보를 표현하고 저장할 수 있다. 도 4에 보인 바와 같은, 데이터 모델은 Apps 테이블(220)을 포함할 수 있고, 이 예는 도 1 내지 도 3과 관련되어 도시되고 설명된 웹 기반 모바일 개발 및 배포 서비스 및 환경과 같은, 모바일 개발 플랫폼을 통해 디자인되고 생성된 모바일 앱을 포현한다. Apps 테이블(220)은 Apps 특성(222)와 같은, 각 앱과 관련된 다양한 특성 및 정보를 포함하며, 이는 앱을 위한 고유의 식별자, 앱의 앱-타입의 식별자, 및 앱을 위한 명칭을 포함할 수 있다. 일 실시예에 있어서, 모바일 개발 및 배포 플랫폼을 통해 개발된 각 모바일 앱은 데이터베이스에 저장된 대응하는 테이블에서 열(row) 엔트리와 같은, Apps 테이블(220)의 인스탄스에 의해 표현될 수 있다. 일 실시예에 있어서, Apps 테이블(220)은, 테이블 사이의 수많은 관계를 통해, Apps 테이블(220)로부터 분기되는 다양한 다른 데이터 테이블에 의해 표현되고 저장되는 앱의 어플리케이션 데이터를 가지고, 각 모바일 앱을 위한 헤드 테이블로 서비스된다. 따라서 각 앱과 이의 대응하는 데이터는 Apps 테이블(220)에서 앱의 고유 식별자를 찾는 것에 의해, 손쉽게 리트라이브될 수 있다.
도 4에 보인 바와 같이, 일 실시예에 있어서, 데이터 모델은 AppTypes 테이블(225)을 포함할 수 있고, 이는 각 모바일 앱과 관련된 앱의 타입을 표현한다(예컨대, 잡지 앱, 블로그 앱, 의사 앱, 또는 아래의 섹션에서 나열되고 설명될 예시적인 앱 타입과 같은, 다른 앱 타입). AppTypes 테이블(225)는 AppTypes 특성(227)과 같은, 각 앱 타입과 관련된 다양한 특성을 포함할 수 있다. AppTypes 특성(227)는 고유 식별자 및 각 앱 타입을 위한 명칭을 포함한다. 일 실시예에 있어서, 개발자가 새로운 또는 기존의 앱을 위한 앱 타입을 선택할 때, Apps 테이블(220)에서 앱과 관련된 엔트리가 선택된 앱 타입을 위한 고유 식별자를 포함하도록 수정될 수 있다. 유사하게, 데이터 모델은 AppTheme 테이블(265)을 포함하며, 이는 각 앱과 관련된 테마를 표현한다. AppTheme 테이블(265)은 AppTheme 특성(267)와 같이, 다양한 특성 및 정보를 포함할 수 있다. AppTheme 특성(267)는 앱 의 고유 식별자, 테마를 위한 고유 식별자와 더불어, 테마와 관련된 폰트, 폰트 크기 및 폰트 컬러를 포함한다. 일 실시예에 있어서, 각 모바일 앱은 특정 앱 타입 및/또는 테마와 관련될 수 있고, 대응하는 식별자는 Apps 테이블(220)에 저장될 수 있으며, 그렇게 함으로써, Apps 테이블(220), AppTypes 테이블(225) 및 AppTheme 테이블(265) 사이의 관계가 형성된다. 결국, 이는 각 모바일 앱을 위한 앱 타입, 테마 및 그들의 대응하는 특성 및 데이터를 Apps 테이블(220)에 저장된 앱 타입 식별자를 이용하고, AppTheme 테이블(265)의 앱의 식별자를 찾는 것처럼, 앱의 고유의 식별자를 통해 리트라이브하도록 한다.
일 실시예에 따르면, 데이터 모델은 AppModules 테이블(230)을 포함할 수 있고, 이는 각 앱 내에 포함되는 모듈을 표현하고 및/또는 저장한다. 일 실시예에 있어서, 각 모듈은 모바일 앱 내에 포함된 임의의 특징 또는 기능과 관련될 수 있다. AppModules 테이블(230)은 AppModules 특성(232)와 같은, 각 앱 및 이의 모듈과 관련된 다양한 특성을 포함할 수 있다. AppModules 특성(232)는 앱의 고유 식별자와 더불어 모듈을 위한 고유 식별자, 모듈의 타입을 위한 식별자 및 모듈의 레이아웃을 위한 고유 식별자를 포함한다. 일 실시예에 있어서, 도 4에 보인 바와 같이, 데이터 모델은 ModuleType 특성(257)을 포함하는 ModuleType 테이블(255)을 포함할 수 있고, ModuleType 특성(257)은 모듈 타입을 위한 고유 식별자 및 명칭과 같은, 모듈의 각 타입과 관련된 다양한 특성을 포함할 수 있다. 일 실시예에 있어서, 데이터 모델은 모바일 개발 및 배포 플랫폼을 통해 개발된 모바일 앱 에서 사용을 위해 이용할 수 있는 다양한 타입의 모듈에 대응하는 복수의 미리 결정된 모듈 테이블을 포함할 수 있다. 그리고 이는 옵션, 특징, 기능 및 모듈을 위한 컨텐츠와 같은, 특정 형식의 모듈과 관련된 다양한 특성을 포함한다.
모바일 개발 및 배포 플랫폼을 통해 개발된 각 앱은 (동일거하거나, 다른 타입의 다중 모듈을 포함하는) 복수의 모듈을 포함할 수 있고, 이들 각각은 특정 타입의 모듈과 관련된 테이블을 표현하고 저장할 수 있다. 예를 들면, 도 4에 보인 바와 같이, 데이터 모델은 ModuleContacts 테이블(235), ModulePhotos 테이블(240) 및 ModuleVideos 테이블(245)를 포함할 수 있다. 이들 모듈 테이블 각각은, ModuleContacts 특성(237)에 저장된 통화 모듈 식별자 및 통화 리스트, ModulePhotos 특성(242)에 포함된 포토 모듈 식별자 및 이미지 파일 레퍼런스, 및 VideoModule 특성(247)에 저장된 비디오 모듈 식별자 및 비디오 링크와 같이, 각 타입의 모듈과 관련된 다양한 특성, 컨텐츠 및 다른 데이터를 포함할 수 있다. 일 실시예에 있어서, 각 모듈 테이블은 앱 모듈 식별자를 포함할 수 있고, 앱 모듈 식별자는 앱에서 모듈의 특정 인스탄스를 위한 고유 식별자에 대응하며, AppModules 테이블(230)에 저장된다.
도 2, 도 3 및 도 5와 관련되어 논의된 바와 같이, 각 타입의 모듈은 앱을 통해 말단 사용자에게 제공되는 임의의 특징 및 기능과 관련될 수 있다. 일 실시예에 있어서, 모듈(또는 임의의 다른 어플리케이션 컴포넌트 또는 디자인 요소)와 관련된 소프트웨어 코드 또는 논리는 AppModules 테이블(230)과 같은, 데이터베이스에 저장되거나, 개별 위치에 저장될 수 있고, 이러한 경우, 코드의 위치에 대한 레퍼런스는 테이블에 저장될 수 있다. 일 실시예에 있어서, 일부의 모듈은 텍스트 메시지, GPS 기능, 카메라 등과 같은, 모바일 장치 카테고리 및 타입의 넓은 범위 또는 전체에 걸쳐 공통인 특징 및 기능을 표현할 수 있다. 다른 모듈은 터치스크린 기능 또는 다른 특정 형식의 사용자 입력, 비디오 카메라, 나침반, 자이로스코프 및 다른 센서, 블루투스 등과 같은, 특정(또는 단지 일부의) 모바일 장치 카테고리, 타입 또는 모델에 특정된 특징 및 기능을 표현할 수 있다. 결과적으로, 일 실시예에 있어서, 모듈 테이블은 모듈이 하나 이상의 모바일 장치 카테고리, 타입 또는 모델로 제한되거나, 관련되는지 여부를 나타내는 하나 이상의 특성을 포함할 수 있다. 아래에서 더 상세하게 설명되겠지만, 일 실시예에 있어서, 모바일 개발 환경은 개발자에 의해 선택된 모바일 장치 카테고리, 타입 또는 모델에 기초하여, 개발자에게 모듈의 특정 타입을 표시할지 여부 및/또는, 개발자가 앱에서 모듈을 선택하고 포함시키도록 할지 여부를 결정하는 데 있어서, 이들(게다가 다른) 특성을 이용할 수 있다.
일 실시예에 있어서, 각 모듈은 하나 이상의 레이아웃과 관련될 수 있고, 이의 위치, 지향 및 포맷과 같은, 앱 내에서 모듈의 디자인을 표현한다. 예를 들면, 도 4에 보인 바와 같이, 데이터 모델은 Layouts 특성(252)와 같은, 모듈에 대해 이용할 수 있는 레이아웃과 관련된 다양한 특성 및 정보를 포함하는 Layouts 테이블(250)을 포함할 수 있고, 이 Layouts 특성(252)는 AppModules 테이블(230)에 포함된 레이아웃 식별자에 대응하는, 각 레이아웃을 위한 명칭 및 고유 식별자를 포함한다. 이것과 관련하여, 각 앱의 모듈 및 그들 각각의 특성, 컨텐츠, 레이아웃, 소프트웨어 코드 및 모듈에 대응하는 다른 데이터는 AppModules 테이블(230)의 앱의 고유 식별자를 찾는 것에 의해 데이터 모델로부터 손쉽게 리트라이브될 수 있다.
일 실시예에 따르면, 각 앱 타입은 그 앱 타입을 이용하는 모바일 개발 및 배포 플랫폼을 통해 개발된 모바일 앱을 위해 개발자에 의해 선택될 수 있는 모듈 타입의 특정 서브세트와 관련될 수 있다. 예를 들면, 도 4에 보인 바와 같이, 데이터 모델은 AppType-ModuleType 특성(262)를 포함하는 AppType-ModuleType 테이블(260)을 포함할 수 있고, 이 AppType-ModuleType 특성(262)는 앱 타입 식별자 및 모듈 타입 식별자와 같은, 모듈의 각 타입과 관련된 다양한 특성을 포함할 수 있다. AppType 테이블(225) 및 ModuleType 테이블(255)에서 앱 타입 및 모듈 타입 식별자에 대응하는 AppType-ModuleType 테이블(260)의 식별자를 포함하는 것에 의해, 특정 앱 타입용으로 이용할 수 있거나 특정 앱 타입과 관련된 모듈의 타입들은 AppType-ModuleType 테이블(260)에 질의하는 것에 의해 빠르게 결정될 수 있다. 예를 들면, 일 실시예에 있어서, 개발자가 웹 기반 서비스를 통해 모바일 개발 서비스에 접근하는 것과 같이, 새로운 모바일 앱을 위한 앱 타입을 선택(또는 기존의 앱의 앱 타입을 수정)한 후, 서비스는 AppType-ModuleType 테이블(260)에서 선택된 앱 타입을 위해 이용 가능한 모듈을 찾을 수 있고, 개발자에게 그들을 제공할 수 있다. 따라서 일 실시예에 있어서, 특정 타입의 모듈이 복수의 다른 앱 타입을 사용하기 위해 이용할 수 있을 때, 각 앱 타입은 그 앱 타입을 이용하여 모바일 앱을 개발한 사용자에 의해 사용될 수 있는 개별 세트의 모듈 타입을 가진다. 아래에서 더욱 상세하게 설명될 것이지만, 일 실시예에 있어서, 개발자는 모바일 개발 및 배포 플랫폼을 통해 개발된 모바일 앱에 사용되는, 새로운 앱 타입을 생성하거나, 기존의 앱 타입을 커스터마이징하기 위한 옵션이 주어질 수 있다. 일 실시예에 따르면, 개발자는 새로이 생성된 앱 타입과 관련된 모듈 타입의 세트를 선택 및/또는 수정하는 것에 의해, 부분적으로, 새로운 앱 타입을 생성하거나 또는 커스터마이징할 수 있다.
데이터 모델은 각 모델 앱과 관련된 특성 및 다른 정보를 포함하는 다른 데이터 테이블을 포함할 수 있다. 도 4에 보인 바와 같이, 데이터 모델은 앱의 카테고리와 관련된 임의의 특성을 포함하는 AppCategory 특성(272)를 포함하는 AppCategory 테이블(270)을 포함할 수 있다. 이 정보는 카테고리 또는 임의의 디지털 배포 플랫폼에 사용되는 앱에 속하는 카테고리를 기반으로 할 수 있다. 일 실시예에 있어서, 개발자는 앱을 위해 선택된 모바일 장치 카테고리, 타입 또는 모델에 기초하여 하나 이상의 앱 카테고리를 선택하도록 제시받고, 프롬프트될 수 있다. 예를 들면, 개발자가 앱이 iOS 또는 안드로이드 모바일 운영체제를 이용하여 모바일 장치를 운영하도록 하는 것을 나타내면, 개발자는 책, 여행, 비즈니스, 집, 등과 같은, iOS의 앱스토어 또는 안드로이드의 마켓에 의해 제공되는 미리 결정된 앱 카테고리들 중 하나를 선택하도록 프롬프트될 수 있다.
도 4에 보인 바와 같이, 데이터 모델은 AppDevices 특성(277)를 포함하는 AppDevices 테이블(275)을 포함할 수 있고, 이 AppDevices 특성(277)는 앱이 관련된 모바일 장치 타입 및/또는 모바일 장치 카테고리와 연관된 임의의 특성을 저장한다. 예를 들면, 임의의 특성은 모바일 운영체제의 타입(예컨대, iOS 또는 안드로이드) 또는 앱이 그 상에서 운영되도록 하는 장치의 타입(예컨대, 태블릿, 스마트폰)과 연관된 개발자의 선택을 포함할 수 있다. 데이터 모델은 AppUpdate/Launch 특성(282)를 포함하는 AppUpdate/Launch 테이블(280)을 포함할 수 있다. AppUpdate/Launch 특성(282)는 도 4에 도시된 바와 같이, 말단 사용자에 의한 사용 및/또는 앱의 상태와 연관된 임의의 정보 및 데이터를 저장한다. 아래에서 도 5와 관련하여 더욱 상세하게 논의될 것이지만, 일 실시예에 있어서, 이 테이블은, 각 업데이트가 발생될 때, 및/또는 특정 말단 사용자가 각 업데이트와 관련되었을 때, 런칭되거나 업데이트되는 시간의 수와 같이, 앱을 위한 다양한 통계의 트랙을 유지하기 위해 사용될 수 있다.
일 실시예에 있어서, 데이터 모델은 도 1 내지 도 3과 관련하여 도시되고 설명된 웹 기반 서비스 및/또는 모바일 개발 환경을 통해, 개발자에 의해 모바일 앱의 디자인, 생성 및 수정을 가능하게 하도록 모바일 개발 및 배포 플랫폼과 관련하여 사용될 수 있다. 일 실시예에 있어서, 데이터 모델은 모바일 개발 환경을 통해 개발된 각 앱과 연관된 임의의 데이터를 제공 및 저장하는 데에 사용되는 하나 이상의 데이터베이스를 위한 근거로 사용될 수 있다. 데이터베이스는 하나 이상의 서버들에 의해 호스팅되며, 이들은, 일 실시예에서, 도 1에 보인 바와 같이, 하나 이상의 개별 서버들(예컨대, 데이터베이스 서버(210)) 또는 모바일 개발 환경을 호스팅하는 서버(들)(예컨대, 서버(200))와 통합될 수 있다.
일 실시예에 따르면, 모바일 개발 환경 및/또는 웹 기반 서비스는 모바일 앱 생성 및 수정 프로세스 동안 개발자에 의해 만들어진 (더불어 개발자에 의해 데이터 입력 및/또는 업로드된) 임의의 선택을 저장하기 위해 접속될 수 있다. 예를 들면, 개발자가 새로운 앱을 생성할 때, 모바일 개발 환경은 Apps 테이블(220)과 같은 데이터베이스의 새로운 엔트리를 생성할 수 있다. 마찬가지로, 앱을 위한 다양한 어플리케이션 컴포넌트, 컨텐츠 요소 및/또는 디자인 요소를 선택하고 수정하는 것에 대응하여, 모바일 개발 환경은 데이터베이스에서 새로운 엔트리를 생성하고, 기존의 엔트리를 업데이트할 수 있고, 및/또는 데이터베이스 엔트리 사이의 관계를 형성할 수 있다.
일 실시예에 있어서, 모바일 앱이 컴파일되고 말단 사용자에게 배포될 때, 데이터베이스는 모바일 개발 플랫폼 및/또는 환경에 의해 사용될 수 있다. 앞서 도 3과 관련하여 보다 상세하게 설명된 바와 같이, 개발자가 앱을 생성 및/또는 수정하는 것을 마친 후, 모바일 개발 환경은 하나 이상의 모바일 장치 카테고리를 위해 앱을 컴파일할 수 있고, 및/또는 서드 파티 디지털 배포 플랫폼을 통하는 방식으로, 컴파일된 앱을 말단 사용자에게 배포할 수 있다. 일 실시예에 있어서, 컴파일된 앱은 앱에 의해 요구되거나, 관련된 모든 데이터를 포함하지 않을 수 있다. 대신, 컴파일된 앱은 앱을 위한 고유 식별자 및/또는 앱을 위한 구성파일 또는 다른 기본 정보를 단순하게 포함할 수 있다. 일 실시예에 있어서, 이 정보는 데이터베이스를 기반으로 하거나, 이용하여 컴파일될 수 있다. 예를 들면, 컴파일 프로세스의 일부로, 데이터베이스는 구성파일에 포함될 수 있는, 앱과 관련된 임의의 특성 및 관계를 리트라이브하도록 질의를 받을 수 있다. 말단 사용자에 의한 다운로드, 인스톨 또는 런칭된 후에, 컴파일된 앱은 앱에 대응하는 데이터베이스로부터 어플리케이션 데이터에 접근하기 위해 이 정보를 사용할 수 있다. 일 실시예에 있어서, 도 5와 관련하여 더 상세하게 설명될 것이지만, 모바일 장치에 이미 설치된 모바일 앱은 앱이 런칭될 때마다, 새로운 어플리케이션 데이터 또는 컨텐츠를 위한 데이터베이스를 검사하는 방식으로, 유사한 프로세스를 통해 업데이트될 수 있다.
또한, 데이터베이스 또는 데이터 모델은 대안적으로, 모바일 개발 환경이 웹 기반(또는 소프트웨어 기반) 그래픽 인터페이스의 형식으로 제공되는 경우와 같은, 일 실시예에서 상기 모바일 개발 환경을 통해 개발자에 의하여 모바일 앱의 디자인, 생성 및 수정이 가능하게 되도록 사용될 수 있다. 일 실시예에 있어서, 모바일 개발 환경은 개발자에게 다양한 미리 결정된 어플리케이션 컴포넌트, 디자인 요소, 컨텐츠 요소 및 모바일 앱과 관련된 다른 정보를 리트라이브 및 표시하기 위해, 데이터베이스에 접근할 수 있다. 예를 들면, 개발자가 새로운 앱 을 생성할 때, 모바일 개발 환경은 미리 결정된 앱 타입 및/또는 데이터베이스에 현재 저장된 테마를 리트라이브하도록 데이터베이스에 질의하고, 이들 앱 타입 또는 테마를 개발자에 제공하며, 그리고, 개발자가 브라우징하여 특정 앱 타입 또는 새로운 앱을 위한 테마를 선택하도록 할 수 있다. 다른 예로, 개발자가 앱을 위한 특정 앱 타입을 선택한 후, 모바일 개발 환경은 선택된 앱 타입에 기초하여, 앱에 포함될 수 있는 모든 타입의 모듈을 리트라이브하고 표시할 수 있도록 데이터베이스에 질의할 수 있다. 또 다른 예로, 모바일 개발 환경은 데이터베이스를 개발자에 의해 선택될 수 있는 이용 가능한 모바일 장치 카테고리 및/또는 모바일 장치 타입을 리트라이브하고, 표시하기 위하여 데이터베이스에 접속할 수 있다.
일 실시예에 있어서, 모바일 개발 플랫폼은 플랫폼을 통해 개발된 모바일 어플리케이션을 사용하기 위한 커스텀 템플릿 또는 다른 컴포넌트를 생성하기 위한 능력을 개발자에게 제공할 수 있다. 일 실시예에 있어서, 개발자는 "빈(blank)" 템플릿으로 시작하고, 및/또는 커스텀 템플릿과 관련된 또는 포함될 수 있는 다양한 옵션, 설정, 레이아웃, 테마, 컨텐츠, 특징 또는 기능을 제공하는 것과 같은 방식으로, 어플리케이션 컴포넌트, 디자인 요소, 컨텐츠 요소 또는 다른 어플리케이션 데이터의 생성과 관련된 다양한 단계를 통해 안내될 수 있다. 개발자는 다양한 미리 결정된 서브 컴포넌트, 컨텐츠 요소 및 다지안 요소로부터 선택될 수 있고, 및/또는 컴스텀 템플릿을 이용하여 디자인되고 개발된 모바일 어플리케이션 내에 포함될 수 있는 새로운 서브 컴포넌트, 컨텐츠 요소 및 디자인 요소를 생성할 수 있다.
예를 들면, 모바일 개발 환경에 접속하고, 새로운 앱을 생성한 후, 미리 결정된 앱 타입을 선택하는 것을 대신하거나, 또는, 추가로, 개발자에게는 새로운 앱에 사용하기 위한 새로운 커스텀 앱 타입을 생성하기 위한 옵션이 주어질 수 있다. 그런 다음, 개발자는 임의의 옵션, 설정 및, 명칭, 스플래시 이미지, 아이콘 및 관련 모듈과 같은, 커스텀 앱 타입을 위한 특성을 선택, 입력 및/또는 수정할 수 있다. 유사하게, 커스텀 앱 타입과 관련되도록(또는 새로운 또는 기존의 앱에 포함되도록) 모듈을 선택하는 데에 있어, 개발자는 임의의 미리 결정된 모듈 중에서 선택 및/또는 하나 이상의 커스텀 모듈을 생성할 수 있고, 이러한 경우, 개발자는 명칭, 타입, 하나 이상의 레이아웃, 기능 및 관련 컨텐츠와 같은, 모듈을 위한 다양한 옵션을 선택하고 입력할 수 있다. 다른 예로, 개발자는 폰트 타입, 크기 및 컬러, 백그라운드, 위치, 방향 등과 같은, 다양한 디자인 특성 및 설정을 선택하는 것에 의해 모듈을 위한 커스텀 레이아웃 또는 앱을 위한 커스텀 테마를 생성할 수 있다.
일 실시예에 있어서, 데이터 모델 및/또는 관련 데이터베이스(들)은 플랫폼을 통해 개발된 모바일 앱에서 사용을 위해 개발자들에 의해서 커스텀 어플리케이션 컴포넌트, 디자인 요소 또는 다른 데이터의 생성 및 수정이 가능하게 되도록 모바일 개발 플랫폼에 의해 사용될 수 있다. 개발자가 컴포넌트, 컨텐츠 요소 또는 디자인 요소를 위한 커스텀 템플릿을 생성하기 위한 옵션을 선택할 때, 모바일 개발 환경은 커스터마이징된 어플리케이션 컴포넌트 또는 디자인 요소를 생성하기 위해 개발자에 의해 선택, 입력 및/또는 조합될 수 있는 관련 특성, 설 정, 컨텐츠 및 서브 컴포넌트를 리트라이브하기 위해 데이터베이스에 질의할 수 있다.
일 실시예에 있어서, 커스텀 템플릿은 데이터베이스 및/또는 관련된 데이터 모델에 이를 저장하는 방식으로, 모바일 개발 플랫폼에 의해 서비스될 수 있다. 커스텀 템플릿은 개발자 및/또는 다른 개발자에 의해 미래의 앱에서 사용을 위한 용도로 이용될 수 있다. 예를 들면, 개발자가 앱 타입을 생성할 때, 모바일 개발 플랫폼은 AppType 테이블(220)과 같이, 데이터베이스에서 새로운 엔트리를 생성할 수 있다. 이 앱 타입은 이용할 수 있는 미리 결정된 앱 타입 중 하나로 플랫폼을 통해 새로운 앱을 생성하는 개발자에게 자동으로 로드되고 제공될 수 있다. 일 실시예에 있어서, 서드 파티 개발자 또는 제조사는 모바일 앱을 위한 관련 모듈 로직을 가지는 모듈과 같은, 커스텀 컴포넌트 또는 디자인 요소를 생성하도록 허용되고, 이 커스텀 모듈이 모바일 개발 및 배포 플랫폼을 통해 모바일 앱의 생성에 개발자 및 사용자가 이용할 수 있도록 만들 수 있다.
도 4 및 위에서의 대응하는 설명에서 볼 수 있는 바와 같이, 어플리케이션 데이터 및 이 방식의 모바일 앱과 관련된 다른 정보를 저장하는 것과 관련되어 많은 수의 이득이 있다. 그러한 이득 중 하나로, 이는 개별적인 각각의 앱을 위한 대응하는 소프트웨어 코드, 어플리케이션 논리 및 설정을 저장할 필요 없이, 데이터베이스의 엔트리와 같은, 단순화된 폼에 저장하고 표현하도록 한다. 다른 이득은 어플리케이션 컴포넌트, 디자인 요소, 컨텐츠 요소 및 다른 설정 및 어플리케이션 데이터의 새로운 타입은 모바일 개발 플랫폼에 (모바일 개발 플랫폼에서 수정된 기존의 것에) 손쉽게 추가될 수 있고, 데이터베이스 및/또는 대응하는 데이터 모델에 엔트리들을 단순하게 추가 또는 수정하여, 개발자에 의해 사용될 수 있다. 이들 새로운 또는 업데이트된 컴포넌트, 디자인 요소, 컨텐츠 요소 및 다른 데이터는 개발자에게 자동으로 제공되고, 그들의 모바일 앱에서 개발자에 의해 사용될 수 있다. 앞서 설명된 데이터 모델과 관련된 또 다른 이득은 미리 정의된 컴포넌트 및 디자인 요소를 선택, 수정 및 조합하는 것과 더불어, 어플리케이션 컴포넌트 컨텐츠 요소 및 디자인 요소를 위한 커스텀 템플릿을 생성 및 저장하는 것에 의해 개발자가 고수준의 커스터마이징이 가능한 앱을 생성하도록 하는 것이다. 결국, 이는 개발자가 새로운 컴포넌트, 컨텐츠 요소, 디자인 요소 및 다른 개발자에 의해 생성되고 및/또는 커스터마이징된 다른 데이터를 이용하도록 하여, 개발자에게 확장 가능하고 지속적으로 발전하는 개발 환경을 제공한다.
도 5는 일 실시예에 따라 도 1 내지 도 4와 관련되어 도시되고 설명된 바와 같은 모바일 개발 및 배포 플랫폼을 통해 개발된 모바일 어플리케이션 실행과 관련되어 사용될 수 있는 프로세스의 흐름도이다. 410 단계에서, 말단 사용자는 모바일 장치의 모바일 운영체제와 연관된 디지털 배포 플랫폼으로부터 앱을 다운로드 하거나, 모바일 개발 환경과 관련된 하나 이상의 서버 또는 개발자에 의해 호스팅되고 운영되는 서버로부터 직접 앱을 다운로드하는 방식으로, 말단 사용자의 모바일 장치로 모바일 개발 플랫폼을 통해 개발된 모바일 앱을 다운로드할 수 있다. 예를 들면, 말단 사용자는 도 1에 도시된 바와 같이 네트워크(500)을 통해 디지털 배포 플랫폼(300)으로부터 모바일 장치(400)으로 모바일 앱을 다운로드할 수 있다.
말단 사용자가 모바일 앱을 런칭할 때, 415 단계에서 앱은 처음 앱이 모바일 장치에서 실행되는 것인지 여부를 판단한다. 만일 그렇다면, 프로세스는 420 단계로 진행하고, 그렇지 않으면, 417 단계에서 앱은 어플리케이션에 의해 필요하거나, 및/또는 어플리케이션에 관련된 임의의 데이터가 모바일 장치에 그 안에 저장되었는지 여부를 판단한다(예컨대, 캐시되었는지(cached) 판단한다). 만약, 앱을 위해 캐시된 데이터가 존재하면, 앱은 캐시된 데이터가 여전히 유지되고 있고 앱에 의해 사용될 수 있는지 여부를 판단할 수 있다. 예를 들면, 모바일 앱은 캐시된 어플리케이션 데이터가 업데이트가 필요한지 여부(예컨대, 서버에 호스팅된 어플리케이션 데이터는 모바일 장치에 다운로드되고 저장된 이래로 수정되었는지 여부)를 결정하기 위해 어플리케이션 데이터를 호스팅하는 서버 또는 다른 컴퓨터 시스템에 질의하여 캐시된 어플리케이션 데이터를 계속 사용할수 있는지 여부를 결정할 수 있다.
다른 예로, 모바일 앱은 캐시된 어플리케이션 데이터가 그 앱을 검출하는 것에 기초하여 사용될 수 있는지 여부 및/또는 모바일 장치가 어플리케이션 데이터가 상주하는 서버 또는 시스템에 접근이 불가한지 여부를 판단할 수 있다(예컨대, 모바일 장치가 오프라인이거나 또는 서버 또는 시스템이 이용할 수 없는 경우). 모바일 앱이 캐시된 어플리케이션 데이터가 없거나, 또는 캐시된 어플리케이션 데이터가 제거 및/또는 업데이트된 것으로 판단하면, 프로세스는 420 단계로 진행한다. 그렇지 않으면, 419 단계에서, 모바일 앱은 캐시된 어플리케이션 데이터 를 로드하고, 430 단계로 진행한다. 어플리케이션 데이터의 캐싱과 관련된 하나의 중요한 이득은 모바일 개발 플랫폼을 통해 개발된 모바일 어플리케이션이 모바일 장치가 오프라인일 때조차, 여전히 사용될 수 있다는 점이다. 일 실시예에 있어서, 모바일 앱, 모바일 장치 및/또는 말단 사용자는 모바일 장치에서 실행되는 모든 앱을 위한 또는 특정 앱 또는 앱들을 위한, 어플리케이션 데이터의 캐싱을 불가능하게 할 수 있다. 이러한 경우, 417 단계 및 419 단계의 프로세스는 생략될 수 있다.
420 단계에서, 모바일 앱은 데이터를 호스팅하는 서버 또는 시스템으로부터 임의의 어플리케이션 데이터를 요청하고 수신한다. 일 실시예에 있어서, 모바일 어플리케이션은 도 1에 도시된 데이터베이스 서버(210)와 같은, 모바일 개발 플랫폼과 관련된 서버로부터 어플리케이션 데이터를 요청하고 수신할 수 있다. 다른 실시예에 있어서, 어플리케이션 데이터는 개발자에 의해 운영되는 서버로부터 직접 또는 디지털 배포 플랫폼으로부터 요청받고, 수신될 수 있다. 다른 실시예에 있어서, 모바일 앱 및/또는 모바일 서비스는 모바일 개발 플랫폼 및/또 는 데이터베이스 서버(210) 양자 모두 또는 어느 하나와 인터페이스하는 하나 이상의 중간 서버로부터 또는 서 드 파티 서비스 제공자에 의해 호스팅되고 운영되는 다른 서버로부터 어플리케이션 데이터를 리트라이브할 수 있다.
모바일 앱이 완전한 어플리케이션 데이터 대신, 구성파일과 같은, 레퍼런스 데이터의 형식으로 말단 사용자에 의해 컴파일되고 다운로드되는, 일 실시예에 있어서, 모바일 앱은 관련 어플리케이션 데이터를 리트라이브하기 위해 레퍼런스 데이터를 사용할 수 있다. 일 실시예에 있어서, 모바일 앱은 어플리케이션을 호스팅하는 서버로, 앱 식별자 또는 앱 식별 정보를 전송할 수 있다. 서버는 모바일 장치로 대응하는 어플리케이션 데이터를 찾고, 리트라이브하고 전송하기 위해 이 정보를 이용할 수 있다. 앱 및 이의 데이터가 데이터베이스에 저장되고 및/또 는 대응하는 데이터 모델에 의해 표현되는 것과 같은 일 실시예에 있어서, 서버는 데이터베이스 테이블에서 앱 식별자를 앱을 찾고, 도 4와 관련되어 설명된 것과 유사한 방식으로 앱과 관련된 다른 테이블에 대한 관계 또는 링크를 따라, 어플리케이션 데이터를 리트라이브하기 위해 사용할 수 있다.
어플리케이션 데이터는 모바일 앱과 관련되고 모바일 장치 상에 앱 및 이의 컨텐츠를 실행하고 표시하는 데에 필요한 임의의 데이터를 포함할 수 있다. 예를 들면, 서버는 앱 타입, 모듈, 컨텐츠, 레이아웃, 테마, 설정 및 모바일 장치에 대한 다른 정보와 같은, 모바일 앱과 관련되거나, 모바일 앱에 포함된 어플리케이션 컴포넌트, 디자인 요소, 특징 및 컨텐츠와 관련된 임의의 데이터를 전송할 수 있다. 전체 어플리케이션이 컴파일 되고 모바일 장치에 다운로되고 설치되는 경우와 같은 다른 실시예에 있어서, 모바일 앱은 앞서 설명된 프로세스와 유사한 방식으로 어플리케이션 데이터 또는 컨텐츠에 대한 업데이트를 요청하고 수신할 수 있다. 모바일 앱 또는 모바일 장치가 서버로부터 어플리케이션 데이터를 수신한 후, 임의의 어플리케이션 데이터를 캐싱하는 것과 같은, 일 실시예에 따르면, 모바일 앱은 모바일 장치의 메모리에 어플리케이션 데이터를 저장할 수 있다.
어플리케이션 데이터를 수신(또는 캐싱된 어플리케이션 데이터를 로딩)한 후, 430 단계에서, 모바일 앱은 어플리케이션 컴포넌트, 컨텐츠 요소, 디자인 요소, 기능 및 설정을 어플리케이션에 병합하는 것과 같은 방식으로, 및/또는 어플리케이션의 동작 및 표시를 포맷팅하는(formatting) 방식으로, 모바일 장치 상에 앱을 빌드 및 표시하기 위해 어플리케이션 데이터를 이용할 수 있다. 일 실시예에 있어서, 앱은 앱이 모바일 개발 및 배포 플랫폼을 통해 개발자에 의해 디자인되고 개발된 것과 동일하거나 또는 실질적으로 유사한 형식으로 어플리케이션 데이터를 바람직하게 표시할 수 있다. 440 단계에서, 모바일 앱 또는 모바일 장치는 어플리케이션 데이터가 버튼 외형 또는 다중 터치 제스처 기능과 같이, 앱이 실행되고 있는 모바일 장치 또는 모바일 운영체제의 타입에 특정된 특징 또는 기능에 따라 하나 이상의 모듈 또는 다른 컴포넌트를 포함하는지 여부를 결정할 수 있다. 만일 그렇다면, 450 단계에서, 모바일 앱은 모바일 운영체제 내에서 장치에 특정된 특징 및 기능을 호출할 수 있다. 그렇지 않으면, 프로세스는 460 단계로 진행하고 모바일 앱 및 이의 컨텐츠는 말단 사용자에게 표시될 수 있다.
이 문헌에 설명된 시스템 및 방법은 말단 사용자의 모바일 장치에서 모바일 앱이 다운로드, 설치 및/또는 런칭될 때, 즉시, 모바일 앱을 구성, 포맷 및/또는 업데이트하도록 한다. 따라서 중요한 이점은 개발자가 어플리케이션 데이터가 모바일 앱 및/또는 모바일 장치에 의해 호스팅되고 접속되는 서버 또는 다른 시스템 상에 관련된 정보 및 어플리케이션의 버전을 간단하게 수정하여 모바일 개발 플랫픔을 통해 개발된 모바일 앱을 손쉽게 업데이트할 수 있다. 예를 들면, 앞서 논의된 바와 같이, 앱이 런칭될 때, 앱이 최신 어플리케이션 데이터에 대해 서버에 질의할 수 있다. 따라서 개발자가 어플리케이션 데이터를 업데이트한 후, 앱이 처음 런칭될 때, 앱은 업데이트된 데이터를 자동으로 리트라이브하여 사용할 수 있다. 결국, 이는 업데이트를 수동으로 다운로드하거나 및/또는 업데이트된 어플리케이션 데이터를 수신하기 위해 디지털 배포 플랫폼에 접속하도록 말단 사용자에게 요구함이 없이 모바일 앱이 말단 사용자에 의해 즉시 실행될 있도록 업데이트되게 한다. 그러므로 관련 서버에 저장된 정보를 업데이트하는 것에 의해, 말단 사용자의 모바일 장치에서 실행되는 앱의 컴포넌트, 디자인, 기능, 특징 및 컨텐츠 요소는 앱이 실행되자마자 업데이트된다.
모바일 개발 및 배포 플랫폼을 통해 개발된 모바일 앱이 데이터베이스에 저장되고 데이터 모델에 의해 표현되는 것과 같은 일 실시예에 있어서, 플랫폼은 말단 사용자에 의해 앱의 사용과 관련된 임의의 정보를 저장 및/또는 말단 사용자들 및 그들의 모바일 장치에 의해 어플리케이션 데이터에 대한 접속 및 업데이트를 할 수 있다. 예를 들면, 도 4와 관련하여 앞서 설명된 바와 같이, 데이터 모델은 플랫폼을 통해 개발된 모바일 앱을 위한 어플리케이션 데이터를 리트라이브 또는 업데이트하도록 모바일 개발 및 배포 플랫폼(및/또는 이의 관련 데이터베이스 서버)에 접근하는 말단 사용자 및/또는 말단 사용자의 모바일 장치에 대응하여 임의의 데이터를 저장하는 하나 이상의 테이블을 포함할 수 있다. 일 실시예에 있어서, 이 정보는 모바일 장치, 실행되고 및/또는 업데이트되는 모바일 앱, 모바일 장치의 위치 및/또는 요청된 어플리케이션 데이터를 위한 고유 식별자를 포함할 수 있다. 일 실시예에 있어서, 이 정보는 모바일 앱이 말단 사용자에 의해 실행되는 때마다, 모바일 개발 및 배포 플랫폼에 의해 저장될 수 있다. 다른 실시예에 있어서, 이 정보는 캐싱된 어플리케이션 데이터를 업데이트 및/또 는 광고를 포함하는 어플리케이션 데이터 또는 부가 컨텐츠를 리트라이브하는 것과 같이, 모바일 앱 및/또는 모바일 장치가 모바일 개발 및 배포 플랫폼에 접속된 때, 저장될 수 있다.
일 실시예에 있어서, 광고 및 통지와 같은, 임의의 추가 또는 부가 컨텐츠 또는 다른 데이터는 모바일 개발 및 배포 플랫폼을 통해 개발되고 배포된 모바일 앱에 포함되거나 삽입될 수 있다. 예를 들면, 모바일 개발 및 배포 플랫폼은 광고가 모바일 앱에 삽입되도록 할 수 있다. 일 실시예에 있어서, 광고가 모바일 앱 내에 포함되어야 하는지 여부에 관한 결정은 모바일 개발 및 배포 플랫폼의 제공자 및/또는 운영자에 의해 단독으로 결정될 수 있다. 일 실시예에 있어서, 모바일 개발 플랫폼은 모바일 개발 플랫폼을 통해 개발된 일부 또는 전부의 앱에 자동으로 광고를 삽입한다. 대안적으로 또는 추가로 개발자에게는 모바일 앱의 개발 후 및/또는 개발하는 동안 광고를 삽입할지 여부를 선택하는 옵션이 주어질 수 있다. 개발자가 광고 또는 다른 부가 컨텐츠를 앱에 통합하도록 선택하면, 개발자는 광고의 타입, 앱 내의 광고의 배치, 얼마나 자주 광고를 업데이트할지 그리고 언제 광고를 앱을 실행하는 말단 사용자에게 제공할지와 같은, 광고와 관련된 다양한 속성을 커스터마이징하기 위한 옵션이 주어질 수 있다.
광고 네트워크/플랫폼 및 모바일 개발 및 배포 플랫폼을 통해 생성된 모바일 앱으로의 광고 및 다른 부가 컨텐츠의 전달은 개발자 또는 서드 파티 광고 제공자에 의해 호스팅되는 서버에 의해, 또는 모바일 개발 및 배포 플랫폼에 대한 접근을 제공하는 서버와 관련되거나 또는 병합된 서버 또는 시스템에 의해 제공될 수 있다. 일 실시예에 있어서, 광고 또는 다른 부가 컨텐츠는 도 1에 도시된 데이터베이스 서버(210)와 같은, 서버에 의해 호스팅되는 어플리케이션 데이터로 포함될 수 있다. 그 다음, 모바일 앱은 앞서 도 5와 관련되어 논의된 어플리케 이션 데이터의 리트라이브와 유사한 방식으로 광고를 리트라이브할 수 있다. 다른 실시예에 있어서, 광고는 모바일 앱에 서버의 위치에 대한 레퍼런스를 포함시키는 방식으로, 개별 광고 서버로부터 리트라이브될 수 있다. 일 실시예에 있어서, 광고는 리트라이브되고, 실행되면 앱에 병합될 수 있다. 일 실시예에 있어서, 광고는 앱이 런칭될 때 마다, 앱이 실행되는 동안 및/또는 임의의 미리 결정된 간격으로, 업데이트, 대체 또는 수정될 수 있다. 일 실시예에 있어서, 앱은 모바일 장치가 오프라인일 때, 말단 사용자에게 표시를 위한, 임의의 광고를 저장(캐싱, cache)할 수 있다.
앱에 삽입되는 광고 또는 다른 부가 컨텐츠는 어플리케이션의 타입, 컴포넌트 또는 컨텐츠, 말단 사용자에 대한 결합된 인구통계학 데이터, 개발자에 의해 만들어진 선택 또는 입력, 및/또는 그래픽 또는 시간 정보와 같은, 앱 및/또는 말단 사용자와 관련된 다양한 특성에 기초할 수 있다. 일 실시예에 있어서, 광고는 예컨대, 앱에 포함된 임의의 컨텐츠 요소 내에 또는 그 위에, 광고를 표시하는 방식, 또는, 말단 사용자가 광고를 최소화하거나 숨길 수 있게 하는 방식과 같이, 비방해 방식으로 말단 사용자에게 제공될 수 있다. 대안적으로, 또는, 추가로, 광고는 일시적으로 또는 앱 실행의 임의의 단계 동안 표시될 수 있다.
다른 예로써, 모바일 개발 및 배포 플랫폼은 개발자에 의해 개발되고 배포된 하나 이상의 앱을 다운로드한 사용자와 같이, 모바일 장치 사용자에게 개발자가 통지를 전송하도록 할 수 있다. 모바일 개발 서비스가 웹 기반 서비스를 통해 제공되는 것과 같은 일 실시예에 있어서, 개발자에게는 모바일 개발 및 배포 플랫폼을 통해 개발자가 생성한 (또는 생성하는 프로세스에 있는) 모든 앱을 표시하는 웹 페이지를 볼 수 있는 옵션이 주어질 수 있다. 따라서, 각 개발자는 개발자와 관련된 한 세트의 앱을 가질 수 있다. 일 실시예에 있어서, 이 어플리케이션 세트는 앞서 도 4와 관련하여 설명된 유사한 방식으로, 데이터베이스 서버(210)과 같은, 데이터베이스에 저장될 수 있다.
일 실시예에 있어서, 모바일 개발 및 배포 플랫폼은 개발자가 통지를 생성하고, 수정하며 그리고 말단 사용자에게 전송하도록 하며, 및/또는 그러한 통지를 관리하고, 리트라이브하며 그리고 표시하는 임무를 수행하는 통지 관리자를 포함할 수 있다. 예를 들면, 일 실시예에 있어서, 개발자는 모바일 개발 플랫폼을 통해 개발자에 의해 개발된 특정 앱에 관계된 통지를 생성할 수 있다. 다른 예로, 개발자는 개발자에 의해 생성된 새로운 앱과 관련된 통지를 생성할 수 있다. 일 실시예에 있어서, 통지 관리자는 개발자가 통지와 관련된 임의의 특징, 컨텐츠 및 옵션을 입력하고, 업로드하며, 생성하고 그리고 커스터마이징하도록 할 수 있다. 예를 들면, 개발자는 통지를 수신하기 위한 말단 사용자의 설정과 더불어, 각 통지를 위한 날짜, 시간 및 표준시간대(time zone)를 설정하도록 요구될 수 있다. 일 실시예에 있어서, 통지 관리자는 선택된 날짜가 허용되는지 여부(예컨대, 과거에)여부를 검사할 수 있다. 일 실시예에 있어서, 통지는 개발자에 의해 개발된 하나 이상의 모바일 앱을 다운로드하고 설치한 말단 사용자에게 자동으로 전달될 수 있다. 대안적으로 또는 추가적으로, 개발자는 통지를 수신할 특정 앱 또는 말단 사용자, 또는 그룹의 앱 또는 말단 사용자를 선택할 수 있다. 일 실시예에 있어서, 개발자는 푸시 통지, 말단 사용자의 장치의 GPS 위치에 기반한 통지, 또는 통지의 임의의 다른 적합한 형식과 같은, 말단 사용자에게 전송되는 통지의 형식을 선택할 수 있다.
도 6은 일 실시예에 따른 모바일 개발 및 배포 플랫폼을 통해 통지를 보여주고, 생성 또는 수정하기 위한 프로세스의 흐름도이다. 웹 기반 서비스를 통해 모바일 개발 및 배포 플랫폼에 접속하고, 통지를 관리하기 위한 옵션을 선택한 후, 150 단계에서 개발자는 통지 관리자를 제공받을 수 있다. 일 실시예에 있어서, 통지 관리자는 도 2 및 도 3과 관련되어 설명된 것과 유사한 방식으로 하나 이상의 웹 페이지를 통해 개발자에게 주어질 수 있다. 151 단계에서, 판단은 개발자가 통지 관리자를 통해 개발자에 의해 이전에 생성된 통지에 접속하고 그 통지를 보기를 원하는지에 여부에 관해 이루어진다. 예를 들면, 개발자는 이전 통지를 보기 위해 버튼 또는 링크를 클릭할 수 있다. 일 실시예에 있어서, 각 개발자에 의해 생성된 통지는 도 1에 보인 바와 같은 데이터베이스(200)과 같은, 모바일 개발 및 배포 플랫폼에 의해 저장될 수 있다. 개발자가 이전의 통지를 보기를 원하지 않으면, 흐름은 154 단계로 진행된다. 그렇지 않으면, 개발자의 이전 통지의 리스트가 152 단계에서 표시된다. 153 단계에서, 개발자는 날짜 범위, 앱 식별자 등과 같은, 다양한 기준을 선택 및/또는 입력할 수 있고, 그 기준은 이전 통지를 필터링하고 개발자에게 표시된 리스트를 업데이트하는 데에 사용된다. 일 실시예에 있어서, 개발자는 리스트로부터 특정 통지를 선택할 수 있고, 그러한 경우 선택된 통지는 개발자에게 표시된다.
154 단계에서, 판단은 개발자가 새로운 통지를 생성하는 것을 원하는지 또는 기존의 통지를 편집하는 것을 원하는지 여부에 관련되어 이루어진다. 예를 들면, 개발자는 새로운 통지를 생성하기 위해 통지 관리자를 통해 표시된 버튼을 클릭할 수 있다. 마찬가지로, 개발자는 그 통지를 편집하기 위해 이전의 특정 통지의 표시와 관련된 버튼을 클릭할 수 있다. 개발자가 새로운 통지를 생성하거나, 기존의 통지를 편집하는 것을 선택하면, 155 단계에서, 개발자는 통지를 위한 메시지, 날짜/시간 및 표준시간대와 같은, 통지와 관련된 다양한 옵션을 선택 및/ 또는 입력할 수 있다. 이 프로세스는 도 7과 관련하여 아래에서 더 상세하게 도시되고 설명될 것이다. 통지를 생성 및/또는 업데이트한 후, 156 단계에서, 데이터베이스의 엔트리를 생성하거나 업데이트하는 방식으로, 개발자의 선택 및 입력이 저장된다.
도 7은 일 실시예에 따른 모바일 개발 및 배포 플랫폼을 통해 개발자에게 제공되는 통지 관리자가 표시되는 부분을 도시하는 도면이다. 모바일 개발 및 배포 플랫폼이 웹 기반 서비스를 통해 접속되는 것과 같은 일 실시예에 있어서, 통지 관리자는 도 2와 관련되어 설명된 것과 유사한 방식으로 웹 페이지 내에서 개발자에게 표시될 수 있다. 도 7에 보인 바와 같이, 통지 관리자는 통지 표시 윈도우(160) 내에 표시되며, 이 통지 표시 윈도우(160)는 개발자가 통지와 관련된 다양한 컨텐츠 및 옵션을 입력 및/또는 선택하도록 하는 입력 형식을 포함할 수 있다. 통지 표시 윈도우는 그것을 통해 개발자가 통지와 관련된 텍스트 기반 메시지를 입력할 수 있도록 하는 통지 메시지 입력 박스(161)를 포함할 수 있다. 일 실시예에 있어서, 개발자는 이미지, 비디오, 오디오 또는 컨텐츠의 다른 형식과 같은, 통지 내에 추가(또는 대안의) 컨텐츠를 포함하도록 할 수 있다. 도 7에 보인 바와 같이, 통지 표시 윈도우(160)는 통지 입력 필드(162)를 포함하며, 이 통지 입력 필드(162)는 통지가 말단 사용자에게 전달되어야만 하는 날짜, 시간 또는 표준시간대를 개발자가 설정할 수 있도록 한다.
일 실시예에 있어서, 개발자에게는 매달 또는 매일 기준으로 말단 사용자에게 전달되는 통지와 같은, 반복되는 통지를 생성하기 위한 옵션이 제공될 수 있다. 일 실시예에 있어서, 통지 표시 윈도우(160)는 말단 사용자에게 통지를 저장 및/또는 전송하는 전송 버튼(164) 및 개발자가 개발자에 의해 앞서 전송된 통지를 볼 수 있도록 하는 전송된 메시지 버튼(163)과 같은, 다양한 버튼을 포함할 수 있다. 일 실시예에 있어서, 앞서 설명된 바와 같이 개발자가 이전에 생성한 통지를 선택할 때, 통지 관리자는 통지 표시 윈도우(160) 내의 선택된 통지를 표시 및/또는 선택된 통지와 관련된 데이터베이스로부터 리트라이브되는 데이터를 이용하여 하나 이상의 데이터 필드들(예컨대, 메시지 입력 박스(161) 및/또는 통지 입력 필드(162))을 미리 덧붙일(pre-populate) 수 있다.
다음은 일 실시예에 따른 모바일 개발 환경을 통해 개발된 모바일 앱 내에 통합되고, 모바일 개발 및 배포 플랫폼을 통해 개발자에게 제공될 수 있는 미리 결정된 어플리케이션 컴포넌트의 임의의 예들을 제공한다.
일 실시예에 있어서, 모바일 개발 환경은 모바일 개발 환경을 통해 생성된 앱으로 사용하기 위한 하나 이상의 다음의 미리 결정된 앱 타입을 제공할 수 있다.
appRestaurant - 일 실시예에 있어서, appRestaurant 앱 타입은 개발자의 또는 서드 파티의 식당 또는 제품 및/또는 서비스와 관련된 임의의 정보를 제공할 수 있다. 이 템플릿을 이용하는 모바일 어플리케이션은 오늘의 요리, 길 안내, 메뉴, 제안 메뉴 아이템 및 예약과 같은, 다양한 컨텐츠를 포함할 수 있다. 일 실시예에 있어서, 모바일 어플리케이션은 복수의 식당을 위한 이들 및 다른 형식의 정보를 포함할 수 있다. 모바일 앱은 말단 사용자가 식당을 브라우징하고, 및/또는 식당 타입, 요리, 위치 또는 가격과 같은, 다양한 특성에 기초하여 식당을 필터링하도록 할 수 있다.
appRealtor - 일 실시예에 있어서, appRealtor 앱 타입은 부동산 중개인이 부동산 중계업소 리스트 및 다른 관련 정보를 실시간으로 말단 사용자에게 제시하도록 제공될 수 있다. 이 템플릿이 포함된 모바일 어플리케이션은 매물 부동산, 부동산 소재지에 대한 길 안내, 호가, 그리고, 부동산의 설명 및/또는 이미지와 같은, 정보를 제공할 수 있고, 모바일 어플리케이션을 통해 부동산 중개인과 연락하고 및/또는 부동산 방문 일정을 스케줄링하도록 할 수 있다. 일 실시예에 있어서, 모바일 어플리케이션은 말단 사용자가 이용 가능한 리스트를 브라우징하도록 하고, 및/또는 부동산 형식, 가격, 위치, 특징 등과 같은, 다양한 특성에 기초한 리스트를 카테고리화하도록 한다.
appBook - 일 실시예에 있어서, appRealtor 앱 타입은 개발자가 책 또는 유사한 출판물을 출판하도록 제공될 수 있다. 일 실시예에 있어서, 모바일 어플리케이션은 개발자가 폰트 그리고 페이지의 스타일 및 레이아웃과 같은 다양한 옵션을 수정하고 커스터마이징하도록 하는 방식으로, 모바일 장치를 이용하여 독자를 위해 읽기 쉬운 형식으로 책을 제공할 수 있다. 일 실시예에 있어서, 모바일 어플리케이션은 말단 사용자가 수많은 책에 걸쳐 브라우징하도록 하고, 및/또는 하나 이상의 책을 구매하거나, 및/또는 그들의 모바일 장치로 다운로드 하도록 한다. 이 템플릿은 작가 및 다른 서드 파티가 모바일 장치 사용자에게 디지털 포맷으로 픽션, 논픽션, 참조 문헌 또는 다른 유사한 작품을 배포하도록 할 수 있다.
appMagazine - 일 실시예에 있어서, appMagazine 앱 타입은 개발자가 디지털 버전의 잡지, 신문, 팜플 릿 또는 다른 주지적인 또는 다른 유사한 출판물을 모바일 마켓에 배포하고 공유하도록 제공될 수 있다. 일 실시예에 있어서, 이러한 출판은 앞서 설명된 appBook 앱 타입과 유사한 방식으로 사용자에게 제공될 수 있다. 일 실시예에 있어서, 앱은 사용자가 하나 이상의 정기간행물을 구독하도록 하고, 및/또는 발표되자마자 정기간행물을 자동으로 다운로드하도록 할 수 있다.
appBlog - 일 실시예에 있어서, appBlog 앱 타입은 개발자가 추가 독자들에게 블로그 컨텐츠를 배포하고 공유하도록 제공될 수 있다. 일 실시예에 있어서, 앱은 말단 사용자가 그림, 비디오 및 다른 정보와 같은, 블로그에 다양한 컨텐츠를 업로드하도록 할 수 있다. 일 실시예에 있어서, 앱은 블로그에 추가된 추가 컨텐츠 또는 업데이트를 말단 사용자에게 자동으로 통지할 수 있다.
appDoctor - 일 실시예에 있어서, appDoctor 앱 타입은 임의의 병원에 의해 제공되는 서비스를 상세하 게 알리고 설명하도록 제공된다. 일 실시예에 있어서, 앱은 그들의 전문성 및 인허가 사항과 같은, 의사에 관한 다양한 정보 및/또는 병원에 대한 작은 의원 내지 종합병원에 의해 제공되는 서비스를 포함할 수 있다. 일 실시예에 있어서, 앱은 의사가 그들의 환자를 진료하도록 하고, 실시간으로 환자로부터 질의에 응답하도록 할 수 있다. 앱은 또한 말단 사용자가 의사 또는 병원의 위치를 찾고 및/또는 앱을 통한 진료 스케줄링을 하도록 도울 수 있다.
appMuseum - 일 실시예에 있어서, appMuseum 앱 타입은 하나 이상의 박물관에서 볼 수 있는 아이템 및 전시를 설명하도록 제공될 수 있다. 앱은 임의 전시와 같은, 다른 전시를 광고하고, 특별히 주목할 만한 장소에 대한 길 안내를 제공할 수 있다. 일 실시예에 있어서, 앱은 말단 사용자가 하나 이상의 전시를 통해 가상의 순회를 하도록 하고, 박물관에서 제공되는 말단 사용자를 위한 "자세한 설명(walk-through)" 가이드를 제공하고 상호작용할 수 있다.
appLawyer - 일 실시예에 있어서, appLawyer 앱 타입은 변호사가 그들의 서비스에 관한 정보를 제공하도록 제공되며, 이 서비스에 관한 정보는 전문 지식, 경력, 및 비용에 관한 정보를 포함할 수 있다. 일 실시예에 있어서, 앱은 말단 사용자에게 변호사 또는 법률회사의 연락처 정보를 제공하고, 말단 사용자가 변호사 또는 법률회사의 위치를 찾고 연락하도록 하며, 상담 또는 미팅을 스케줄링하고, 및/또는 앱을 가지고 실시간으로 다양한 법률 질문을 묻고 피드백을 받도록 할 수 있다.
appAccountant - 일 실시예에 있어서, appAccountant 앱 타입은 회계사, 회계사무소 또는 유사한 단체 가 그들의 서비스를 광고하고 설명하도록 제공될 수 있다. 일 실시예에 있어서, 앱은 앞서 appLawyer 앱 타입과 관련하여 설명된 특징 및 정보의 일부 또는 전부를 제공할 수 있다.
앞서 설명된 앱 타입에 추가로, 모바일 개발 및 배포 플랫폼을 통해 모바일 앱을 생성하고 디자인하는 것과 관련하여 개발자에 의해 사용될 수 있는 앱 타입의 다른 예들은 다음과 같은 조직, 직업, 서비스 및/또는 관심사에 대응하는 앱 타입을 포함한다: 기업, 개발자/건설 회사, 부동산 에이전트/브로커, 시공, 난방, 환기 및 공기 정화 (HVAC) 서비스, 교육, 클럽 / 협회, 믿음 기반의 조직, 비영리 단체, 스포츠클럽/리그, 뷰티 & 네일 살롱, 카이로프로텍, 치과 의사, 수의사, 카페/바, 캐터링 서비스, 호텔, 여행사, 일반 제조, 광고 대행사, 아티스트/ 디자이너, 헤어 살롱 & 뷰티 청소 서비스, 컨설팅 그룹, 핸디/유지 보수 서비스, 보험 서비스, 모델/여자배우/ 남자배우/연예인, 개인 트레이너/피트니스 코치, 애완동물 케어(애완동물 미용/산책 서비스), 사진 스튜디오, 스파/미용 치료, 인재 관리 서비스, 제과점/페스트리 쇼핑, 서점, 패션/의류 상점, 체육관/휘트니스 센터/레크리에이션 스포츠 센터, 자동차/자동차 바디 수리 가게, 자동/자동차 대리점, 택배 서비스, 가족, 웨딩, 요리/레시피, 취미, 모형 제작, 사진, 휴가 및/또는 애완동물.
일 실시예에 있어서, 앞서 설명된 예시적으로 미리 결정된 앱 타입, 및 또는 다른 것들은 모바일 개발 및 배포 플랫폼을 통해 모바일 앱을 디자인하고 생성하는 프로세스 동안 개발자에 의해 선택되고, 수정되며, 그리고 조합될 수 있다. 일 실시예에 있어서, 모바일 개발 환경은 개발자가 다양한 특징, 기능, 설정 및/또는 앱과 관련된 컨텐츠를 선택하고, 추가하며 및/또는 소거하는 것과 같은 방식으로, 이러한 앱 타입의 수많은 측면을 커스터마이징하도록 할 수 있다. 예를 들면, 각 앱 타입은 앱 타입을 이용한 앱에 포함될 수 있는 다양한 특징 및 기능을 표현하는 모듈과 같은, 하나 이상의 다른 컴포넌트와 관련될 수 있다. 다양한 앱 타입과 관련될 수 있는 모듈의 타입의 특정 예시는 아래에서 더욱 상세하게 설명될 것이다.
결과적으로, 이 문헌에 설명된 시스템 및 방법은 사용자 친화적인 소프트웨어 도구를 통해 모바일 앱을 생성하기 위해 다양한 미리 결정된 그리고 사용자가 생성하는 어플리케이션 컴포넌트, 디자인 요소, 특징, 기능 설정 및 컨텐츠를 이들 개발자가 사용, 조합 및 커스터마이징하게 함으로써, 비전문가 및 개발자에게 모바일 앱의 디자인 및 개발과 관련하여 높은 수준의 커스터마이징 가능성을 제공한다. 따라서 하나의 중요한 이득은, 기술적 전문 지식 및 경험이 부족한 개발자 및 사용자(그리고 다른 개인)가 그럼에도 불구하고, 고도의 모바일 앱의 넓 은 부분을 디자인하고, 빌드하며 그리고 배포할 수 있게 한다. 다른 이득은 이들 개발자가 다른 개발자에 의해 이미 생성되고 및/또는 커스터마이징된 다양한 어플리케이션 컴포넌트, 디자인 요소, 특징 및 기능을 이용하고, 그들 자신의 모바일 앱에 병합할 수 있다는 점이다. 그렇게 함으로써, 모바일 앱의 개발과 관련된 시간 및 노력을 줄일 수 있다.
앞서 설명된 바와 같이, 일 실시예에 따르면, 모바일 개발 플랫폼은 개발자에게 개발자가 상기 플랫폼을 통해 개발된 모바일 앱으로 임의의 특징 및 기능을 병합하도록 하거나, 및/또는 그 임의의 특징 및 기능과 관련된 하나 이상의 미리 결정된 모듈 또는 다른 어플리케이션 컴포넌트를 제공한다. 일 실시예에 있어서, 모듈은 하나 이상의 모바일 장치 카테고리, 타입 또는 모델에 특정된 특징 및 기능을 포함할 수 있다. 모듈은 또한 또는 대안적으로, 앱 타입과 같은, 미리 정의된 또는 사용자가 생성한 어플리케이션 컴포넌트의 다른 형식과 관련될 수 있다. 일 실시예에 있어서, 개발자에게 제공되고 상기 플랫폼을 통해 개발된 모바일 앱에 사용할 수 있게 만들어진 미리 정의된 모듈은 타겟 모바일 장치 카테고리, 타입 또는 모델 및 어플리케이션 컴포넌트 및/또는 디자인 요소와 같이, 모바일 앱의 임의의 특징 및/또는 개발자에 의한 선택에 기초할 수 있다.
도 8은 일 실시예에 따른 모바일 개발 및 배포 플랫폼을 통해 모바일 앱에 모듈을 추가하기 위한 프로세스를 도시하는 흐름도이다. 도 8에 보인 바와 같이, 600 단계에서, 특정 모바일 앱에 포함된 기존 모듈이 개발자에게 제공된다. 모바일 개발 및 배포 플랫폼이 웹 기반 서비스를 통해 접속되는 것과 같은 일 실시예에 있어서, 모듈은 앞서 도 2 및 도 3과 관련하여 설명된 바와 같이, 앱 생성 및 디자인 프로세스 동안 (또는 개발자가 기존 앱을 편집하는 것을 원할 때) 하나 이상의 웹 페이지를 통해 개발자에게 표시될 수 있다. 601 단계에서 판단은 개발자가 기존 모듈을 편집하기를 원하는지 여부에 관하여 이루어진다. 예를 들면, 개발자는 표시된 리스트에서 기존 모듈 중 하나를 선택(예컨대, 클릭)할 수 있다. 개발자가 편집하기 위해 기존 모듈을 선택하면, 흐름은 A 단계로 진행된다. 만약, 개발자가 새로운 모듈을 추가하는 것을 원하지 않는다면, 603 단계에서, 개발자에게는 앱의 컨텐츠를 추가하고 업데이트하는 것을 끝마쳤는지 여부를 나타내도록 프롬프트되어진다.
도 9는 본 발명의 일 실시예에 따라 모바일 개발 및 배포 플랫폼을 통해 개발된 모바일 앱에 포함시키기 위한 카드섹션 모듈을 커스터마이징하기 위한 프로세스를 도시하는 흐름도이다. 일 실시예에 있어서, 개발자는 공연장 등에서 카드섹션을 진행할 수 있도록 앱에 카드섹션 모듈을 포함할 수 있다. 도 9에 보인 바와 같이, 600 단계에서, 개발자는 앱에 카드섹션 모듈을 추가하거나, 기존 카드섹션 모듈을 편집하도록 하는 옵션을 선택할 수 있다. 이에 대응하여, 610 단계에서, 모바일 개발 및 배포 플랫폼은 카드섹션 모듈 관리자를 활성화시킬 수 있다. 카드섹션 모듈 관리자는 연락 모듈을 디자인하고 커스터마이징하는 것과 관련된 다양한 옵션을 개발자에게 제공하는 역할을 수행한다. 620 단계에서, 개발자는 카드섹션 모듈과 관련된 디스플레이부와 제어부, 타이머 모듈, 동기화 모듈을 선택하여 입력한다. 그런 다음, 정보는 630 단계에서 모바일 앱을 위해 저장 및/또는 업데이트한다. 예를 들면, 임의의 실시예에 있어서, 개발자의 선택 및 입력은 도 4와 관련된 설명과 유사한 방식으로 모듈 테이블(modules table)에 엔트리를 생성하거나 또는 업데이트하는 것과 같은 방식으로, 데이터베이스에 저장될 수 있다.
상술한 본 발명에 따른 방법은 컴퓨터에서 실행되기 위한 프로그램으로 제작되어 컴퓨터가 읽을 수 있는 기록 매체에 저장될 수 있으며, 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다.
컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 상기 방법을 구현하기 위한 기능적인(function) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상 의 지식을 가진 자에 의해 다양한 변형 실시가 가능한 것은 물론이고, 이러한 변형 실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.
100: 개발자 컴퓨터
200: 웹 사이트 서버
210: 데이터베이스 서버
300: 디지털 배포 플랫폼
400: 모바일 장치

Claims (5)

  1. 복수의 모바일 운영체제 상에서 실행되도록 컴파일되는 모바일 어플리케이션을 개발하고 커스터마이징하기 위한 시스템에 있어서,
    내부의 물리 메모리에 저장된 컴퓨터 판독 가능한 매체를 가지는 컴퓨팅 장치를 포함하며, 상기 컴퓨터 판독 가능한 매체에 의해 상기 컴퓨팅 장치가,
    사용자의 모바일 어플리케이션의 개발 및 커스터마이징을 돕는 모바일 어플리케이션 개발 플랫폼에 사용자가 접근하도록 허여하는 단계;
    사용자에게 표시되도록 복수의 커스터마징 가능한 컴포넌트와 관련된 정보를 제공하는 단계로서, 상기 복수의 커스터마징 가능한 컴포넌트는 상기 사용자에 의해 커스터마이징되는 모바일 어플리케이션의 기능, 디자인 및 컨텐츠와 관련되는, 상기 제공하는 단계;
    복수의 표시된 커스터마이징 가능한 컴포넌트와 관계된 복수의 사용자 선택을 수신하는 단계;
    상기 복수의 커스터마이징 가능한 컴포넌트와 관련된 상기 복수의 사용자 선택의, 적어도 일부에, 기초하여 상기 모바일 어플리케이션을 어플리케이션 데이터와 연관시키는 단계로서 기 어플리케이션 데이터는 카드 섹션이 수행되는 좌석 정보를 수신하는 단계; 상기 좌석 정보를 포함하는 매칭 정보를 서버로 전송하는 단계; 상기 서버로부터 상기 매칭 정보에 대응되는 카드 섹션 데이터를 수신하는 단계; 및 상기 서버로부터 시작 신호가 수신되면, 상기 서버와 상기 휴대용 단말기간 시간 오프셋에 기반하여 결정된 시작 시점에, 상기 데이터로부터 식별되는 영상 시퀀스를 미리 결정된 시간 간격에 따라 순차적으로 디스플레이하는 단계를 포함하는, 연관시키는 단계;
    상기 어플리케이션 데이터를 저장하는 단계;
    적어도 하나의 모바일 운영체제와 관련된 빌드 도구를 이용하여 상기 어플리케이션 데이터에 기초하는 상기 모바일 어플리케이션을 위한 컴파일된 데이터를 생성하는 단계; 및
    상기 모바일 어플리케이션을 위한 식별자를 포함하는 구성파일(configuration file)을 생성하는 단계로서, 상기 구성파일은 상기 적어도 하나의 모바일 운영체제를 구동하는 모바일 장치로 전송되고, 상기 모바일 장치에서 실행되는, 상기 생성하는 단계;를 포함하여 실행하도록 하며, 상기 식별자는 상기 모바일 어플리케이션이 상기 모바일 장치에 의해 인스톨되거나 또는 실행되는 것에 대응하여 상기 모바일 장치에 의해 상기 컴파일된 어플리케이션 데이터의 적어도 일부의 리트라이브를 가능하게 하는 것을 특징으로 하는 휴대용 단말기 카드섹션 소프트웨어 개발 시스템.
  2. 제1항에 있어서,
    상기 모바일 어플리케이션 개발 플랫폼은 인터넷을 통해 상기 사용자에 의해 접속되는 웹 기반 서비스를 포함하는 것을 특징으로 하는 휴대용 단말기 카드섹션 소프트웨어 개발 시스템.
  3. 제1항에 있어서,
    상기 매칭 정보는 상기 휴대용 단말기의 위치 정보, 네트워크 정보 및 상기 휴대용 단말기의 식별 정보 중 적어도 하나를 포함하여, 상기 서버에서 발급되는 유저 식별 정보에 매칭되는 것을 특징으로 하는 휴대용 단말기 카드섹션 소프트웨어 개발 시스템.
  4. 제1항에 있어서,
    상기 시작 신호는 상기 서버 기준 시작 시간 정보를 포함하고,
    상기 디스플레이를 전환하는 단계는,
    상기 서버 기준 시작 시간 정보 및 상기 서버와 상기 휴대용 단말기간 시간 오프셋에 기반하여 상기 시작 시점을 미리 결정하는 단계를 포함하는 것을 특징으로 하는 휴대용 단말기 카드섹션 소프트웨어 개발 시스템.
  5. 제1항에 있어서,
    상기 어플리케이션 데이터는 상기 서버간 RTT(Round Trip Time)을 최소화하기 위한 하나 이상의 시간 동기화 로직을 이용하여, 상기 서버와 시간 동기화를 수행하는 단계를 더 포함하는 것을 특징으로 하는 휴대용 단말기 카드섹션 소프트웨어 개발 시스템.
KR1020170059447A 2017-05-12 2017-05-12 휴대용 단말기 카드섹션 소프트웨어 개발 시스템 KR20180124618A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170059447A KR20180124618A (ko) 2017-05-12 2017-05-12 휴대용 단말기 카드섹션 소프트웨어 개발 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170059447A KR20180124618A (ko) 2017-05-12 2017-05-12 휴대용 단말기 카드섹션 소프트웨어 개발 시스템

Publications (1)

Publication Number Publication Date
KR20180124618A true KR20180124618A (ko) 2018-11-21

Family

ID=64602353

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170059447A KR20180124618A (ko) 2017-05-12 2017-05-12 휴대용 단말기 카드섹션 소프트웨어 개발 시스템

Country Status (1)

Country Link
KR (1) KR20180124618A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200078945A (ko) * 2018-12-24 2020-07-02 주식회사 구름 복수의 컴파일 주체를 이용한 코딩 시스템의 효율을 높이는 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200078945A (ko) * 2018-12-24 2020-07-02 주식회사 구름 복수의 컴파일 주체를 이용한 코딩 시스템의 효율을 높이는 방법 및 장치

Similar Documents

Publication Publication Date Title
US8875095B2 (en) Systems and methods for a mobile application development and deployment platform
US8898630B2 (en) Systems and methods for a voice- and gesture-controlled mobile application development and deployment platform
US8978006B2 (en) Systems and methods for a mobile business application development and deployment platform
US9134964B2 (en) Systems and methods for a specialized application development and deployment platform
US11853728B2 (en) System integrating a mobile device application creation, editing and distribution system with a website design system
CN107820701B (zh) 开发者交换系统
CN101535934B (zh) 提供用于查看和编辑元数据的定制用户界面的方法和系统
US20170102925A1 (en) Automatch process and system for software development kit for application programming interface
KR102122451B1 (ko) 애플리케이션의 개발을 지원하는 플랫폼의 동작 방법 및 플랫폼을 제공하는 서버
US20170060966A1 (en) Action Recommendation System For Focused Objects
KR102428166B1 (ko) 앱스토어 앱에 대한 항목 지도 적용 기법
KR20180124618A (ko) 휴대용 단말기 카드섹션 소프트웨어 개발 시스템
Delessio et al. Sams teach yourself Android application development in 24 hours
CN106663004A (zh) 订阅者定义的动态事件
KR100361559B1 (ko) 통신망을 이용한 전자 명함 검색 시스템 및 방법
Freeman et al. Your First MVC Application
Lehtisyrjä Implementing Backend Connection to a Mobile Application: Case DigiTrail
KR100869781B1 (ko) 양방향 커뮤니케이션이 구현된 객체 콘텐츠 제공방법 및 그기록매체
Fritz ASP. NET Core in 24 Hours, Sams Teach Yourself
Delvaux et al. Magento 1.8 Development Cookbook
Kurtz et al. Business Application Fundamentals