US20150089339A1 - Systems and methods for creating or updating an application using website content - Google Patents

Systems and methods for creating or updating an application using website content Download PDF

Info

Publication number
US20150089339A1
US20150089339A1 US14/559,780 US201414559780A US2015089339A1 US 20150089339 A1 US20150089339 A1 US 20150089339A1 US 201414559780 A US201414559780 A US 201414559780A US 2015089339 A1 US2015089339 A1 US 2015089339A1
Authority
US
United States
Prior art keywords
application
website
web
modules
features
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.)
Abandoned
Application number
US14/559,780
Inventor
Scott Hirsch
Sunny Rajpal
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.)
Media Direct Inc
Original Assignee
Media Direct Inc
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
Priority claimed from US13/831,125 external-priority patent/US20140282371A1/en
Application filed by Media Direct Inc filed Critical Media Direct Inc
Priority to US14/559,780 priority Critical patent/US20150089339A1/en
Publication of US20150089339A1 publication Critical patent/US20150089339A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • G06F17/2235
    • G06F17/2247
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/134Hyperlinking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Definitions

  • the present principles are directed to systems and methods for creating applications, and more particularly, to systems and methods for creating an application, or portion thereof, using website content.
  • the applications created or updated with the content of a website may include mobile applications and web applications, including HTML 5 applications.
  • a single company may provide a website, a mobile application for a smart phone, a television application for a smart television and even a desktop application that can be installed on a desktop computer or laptop.
  • the information and functionality performed by the company's website is often the same or similar to some extent.
  • the company's website and computing applications may both advertise the company's goods and services, provide a contact form that permits an individual to transmit comments to the company, display a listing of products for purchase, provide a shopping cart which permits someone to add and remove goods to be purchased, or disseminate information on a particular topic.
  • a company or other entity
  • hiring separate developers to handle the creation of the website and the applications.
  • a website development company may be hired to create a website, and a software development company specializing in mobile applications will be hired to create a mobile application for the company.
  • applications are generally not compatible across different platforms, additional software development expenses will be incurred if the company desires other types of applications (e.g., applications for televisions, kiosks or vehicles) as well. Consequently, the creation of a website and computing applications can be very expensive.
  • the applications created or updated with the website content may include mobile applications and web applications, including HTML 5 applications.
  • a software development platform may also permit users having little or no programming or technical knowledge to create various types of applications
  • the systems and methods disclosed herein may utilize website content to create or update applications.
  • An input may be received that identifies website content to be utilized in creating or updating an application.
  • the input may identify a uniform resource locator (URL) or site map associated with website content.
  • the website content may be analyzed in accordance with a rule set to detect website features associated with the website. This may include analyzing HTML source code, scripting code, stylesheets, and other types of website content.
  • Exemplary website features that are detected within the website content may include multimedia content, social media links, font information, alignment information and hyperlinks, in addition to functional website features such as forms, photo galleries, shopping carts, RSS feeds, Atom feeds, event calendars, checkout pages, and product listings.
  • the detected website features may then be incorporated into the one or more application modules for the application that is being created or updated.
  • a method for creating or updating an application using website content.
  • An input may initially be received that identifies website content to be utilized in creating or updating the application.
  • the identified website content may be analyzed in accordance with a rule set to detect website features within the website content.
  • the detected website features may then be incorporated into one or more application modules associated with the application.
  • a system for creating or updating a software application using website content.
  • the system comprises a processor that is configured to receive an input that identifies website content to be utilized in creating or updating the application, and to analyze the identified website content in accordance with a rule set to detect website features within the website.
  • the processor may further be configured to incorporate the detected website features into one or more application modules associated with the application.
  • a computer storage medium which comprises program instructions for creating or updating an application using website content.
  • the program instructions When executed on a computer, the program instructions cause the computer to receive an input that identifies website content to be utilized in creating or updating the application, and to analyze the identified website content in accordance with a rule set to detect website features within the website content.
  • the program instructions may further cause the computer to incorporate the detected website features into one or more application modules associated with the application.
  • FIG. 1 is a block diagram of a system for generating an application using website content in accordance with certain embodiments.
  • FIG. 2 is a block diagram illustrating a detailed view of an application builder in accordance with certain embodiments.
  • FIGS. 3A-3C illustrate exemplary interfaces that may be provided by an application builder to create an application using website content in accordance with certain embodiments.
  • FIG. 4 is a web page that may be utilized to create the application module displayed in the simulation window of FIG. 3C in accordance with certain embodiments.
  • FIG. 5 is a flow chart illustrating a method for creating an application using website content in accordance with certain embodiments.
  • a software development platform for creating or updating an application, or portion thereof, using website content.
  • the software development platform may be integrated with or may use the ones described in U.S. patent application Ser. No. 13/396,392 filed on Feb. 14, 2012 and U.S. patent application Ser. No. 13/396,368 (now, U.S. Pat. No. 8,261,231) filed on Feb. 14, 2012, both of which are herein incorporated by reference in their entirety.
  • the principles disclosed herein with respect to creating or updating applications using website content may be incorporated as a feature of the software development platforms described in these references.
  • a software development and distribution platform and corresponding arrangement may be provided that allows non-technical users and application developers to develop applications through the platform that may be built and compiled to run on multiple mobile operating systems and/or devices and utilize the various device and operating system specific features, without the need for programming knowledge or expertise.
  • Certain of these embodiments allow users to highly customize the applications developed through the platform by selecting and combining various predefined components, features, application designs, and content and/or creating new components, such as app-types and modules.
  • Certain embodiments allow users to deploy applications developed through the platform by submitting the compiled applications to digital distribution platforms associated with one or more types of operating systems and/or devices.
  • Certain of these embodiments allow the compilation to comprise an identifying reference and/or other basic information, rather than the application data itself, which may be used to retrieve application data from a remote source, and build and configure the application when end users download or execute the application. Certain embodiments allow users and developers to modify or update the applications and their content directly through the development platform.
  • a user may initially identify the website content that will be used to create or update the application.
  • the user may be permitted to identify one or more web pages that can be utilized in creating or updating the application, or the user can identify an entire website that is to be utilized in creating or updating the application.
  • the website content may be identified by specifying a uniform resource locator (URL) for a particular webpage or for a particular website (e.g., by specifying a URL that identifies the index page or site map for the website), by selecting the website from a list of websites, or in other ways.
  • the identified website content may be retrieved over a network (e.g., the Internet) from a server hosting the website and stored on an app building device that is configured to analyze the website content and create or update an application using the website content.
  • a network e.g., the Internet
  • the website content (e.g., HTML code, text, images, videos, scripting code, style sheets, etc.) may be scanned by the app building device according to a rule set in order to detect the presence of particular features within the website content.
  • the rule set comprises a set of rules for detecting website features.
  • the rule set may utilize a variety of different analysis tools (e.g., regular expressions, string querying functions, crawlers, etc.) to scan the website content and detect website features.
  • any type of file or data associated with a website or web page may be analyzed to detect the presence of website features.
  • the source code for a web page may be analyzed in accordance with the rule set to detect the website features. This may include analyzing particular HTML tags (e.g., ⁇ title> tags, ⁇ form> tags, ⁇ input> tags, ⁇ div> tags, ⁇ table> tags, ⁇ body> tags, ⁇ head> tags, ⁇ font> tags, or any other tag in any version of the HTML specification) within the source code, attributes of the HTML tags, or event triggers associated with the HTML tags (e.g., associated with the onClick HTML event, on MouseOver HTML event or any other type of event).
  • HTML tags e.g., ⁇ title> tags, ⁇ form> tags, ⁇ input> tags, ⁇ div> tags, ⁇ table> tags, ⁇ body> tags, ⁇ head> tags, ⁇ font> tags, or any other tag in any version of the HTML specification
  • the analyzing operations may include analyzing scripting code (e.g., JavaScript code, PHP code or other types of scripting code) included in the source code for a web page or in separate files within a web directory for the website, as well as analyzing style sheets (e.g., CSS style sheets) that may be utilized to control the look or appearance of a website or web page.
  • scripting code e.g., JavaScript code, PHP code or other types of scripting code
  • style sheets e.g., CSS style sheets
  • the rule set may be capable of detecting various types of website features.
  • the rule set may include rules for detecting multimedia data (e.g., text, images, videos, audio recordings, or other types of multimedia data) that is displayed on a website.
  • the rule set may further include rules for detecting fonts utilized on the website, sizes of different website elements (e.g., font size, image size, table size, or other size related information), alignment data (e.g., alignment of text, images, tables, etc.), hyperlinks (including hyperlinks to web pages associated with social media website such as FacebookTM, TwitterTM or LinkedInTM) and associated URLs, or any other feature that may be derived from an HTML tag, XML tag or markup tag.
  • the rule set may also be utilized to detect more complex functional website features that are included with the website content.
  • the website content may be analyzed to detect input forms, photo galleries, shopping carts, RSS/Atom feeds, event calendars, checkout pages, product listings (e.g., included in an auction), contact lists, blogs or any other type of functional feature that may be provided by a website.
  • these features may be identified by analyzing HTML tags, scripting code and/or text that is provided on a website.
  • a user may be permitted to select the website features that are to be incorporated into an application or portion of an application that is being created or updated.
  • the detected website features may be presented to the user on an interface and the user may be permitted to identify the website features that are to be included in the application by selecting/unselecting check boxes or other types of input elements (e.g., radio buttons).
  • an application module may be created for each web page that is analyzed, and the application module may include all of the website features associated with the web page.
  • the application module may represent an interface for the application being created or updated that corresponds to the web page. For instance, if a contact page for a website (e.g., which includes contact information and a contact form for submitting comments) was analyzed, a corresponding application module may be created that includes the website features that were detected on the web page (e.g., which includes the contact information and contact form). The user can select to include or exclude the entire application module from the application, or to include or exclude particular website features that are associated with the application module.
  • the manner in which the website features are incorporated into the application being created may vary. In certain cases, the features may simply be copied from the website and incorporated into the application. For example, any multimedia data that is displayed on a website may be copied and incorporated into the application. Other basic types of website features (e.g., titles, headings, fonts, etc.) can also be incorporated into the application in a relatively straightforward manner by extracting the information associated with applicable HTML tags and/or CSS style sheet data and utilizing the extracted information to populate the application parameters.
  • preassembled modules may be added to applications in order to incorporate particular types of website features (e.g., input forms, photo galleries, event calendars, RSS or Atom feeds, etc.).
  • a preassembled module may be provided for incorporating an input form into an application.
  • the preassembled module for the input form may be added to the application.
  • the preassembled modules may automatically be customized or tailored to reflect the input form on the website (e.g., the form may be customized to include the same input fields as the form on the website).
  • Preassembled modules may be utilized to incorporate any website feature described herein.
  • the website content may initially be utilized to create or update a web application (e.g., an application implemented in HTML 5 or other web-based language).
  • a web application e.g., an application implemented in HTML 5 or other web-based language.
  • a user may specify that the web application is to be converted or translated into a different application for a specific device (e.g., converted to an application that is compatible with a particular type of smart phone or smart television).
  • the website content may initially be utilized to create or update a generic application.
  • the generic application may represent an application having a standardized format that stores the features for the application in a uniform manner to facilitate conversion of the generic application into other types of native applications (e.g., applications for mobile devices such as an iPhoneTM device, AndroidTM device or BlackberryTM device).
  • applications for mobile devices such as an iPhoneTM device, AndroidTM device or BlackberryTM device.
  • a user may specify that the generic application is to be converted or translated into a different application for a specific device (e.g., converted to an application that is compatible with a particular type of smart phone or smart television).
  • the generic application which is created or updated using the content of a website may be represented and/or stored using the exemplary data model described in FIG. 4 (along with the corresponding description of this figure in the specification) of U.S. patent application Ser. No. 13/396,392 and U.S. patent application Ser. No. 13/396,368 (now, U.S. Pat. No. 8,261,231), both of which are incorporated by reference in their entirety.
  • the application components, design elements, contents, settings, and other data utilized by developers to design, create, modify, and customize applications through the development platform and corresponding systems and methods described and illustrated herein may be organized and stored in a relational and/or hierarchical manner.
  • applications developed through the platform may include and/or be represented by a set of application components, content element, and/or design elements, each of which, in turn, may include, or be associated with, one or more other application components, content elements, and/or design elements and so on.
  • each application may be associated with an app-type, which includes one or more modules, each of which, in turn, includes one or more layouts and one or more features.
  • the application components, design elements, content elements, and other data, as well as their relationships to each other may be represented and stored in a database, such as relational database.
  • these relationships and the application data may be represented and/or stored in any other suitable format and/or medium, such as in tables, trees, sets of links, or other similar structures.
  • a user may specify the type of application that is to be created from the website content.
  • the user may be provided with a list of available application types that are specific to particular devices, operating systems and/or device platforms.
  • the user may specify that the application being constructed from the website content is an application intended to be executed by a particular mobile phone, desktop computer, television, motor vehicle device, aircraft device, kiosk or other device.
  • the user may select additional design parameters associated with constructing the application such as the programming language that the application will be implemented in.
  • the system may automatically recognize the application type for the application that is being updated.
  • a user may specify the application type for an application (e.g., by selecting from a list of application types) that is being supplemented with the website content. Regardless of how the application type of an existing application is determined, the application is supplemented with the website content in a manner that is compatible with the application type for the application.
  • a set of conversion templates may be utilized to transform or convert the website content into different types of applications.
  • separate conversion templates can be provided for converting or translating the website content into an HTML 5 application, an iPhone application, an Android application, a NetTV application, a Facebook application, or other types of applications.
  • the conversion templates may indicate how a particular website feature (e.g., input form, calendar, shopping cart, etc.) which was detected within the website content is to be incorporated into the application being constructed.
  • the conversion templates may specify rules for copying a website feature into an application or for incorporating a website feature utilizing a preassembled module.
  • the conversion templates may provide a means for converting source code (e.g., HTML mark up or scripting code) into a programming language that is compliant with a particular target device and which is compatible with development frameworks provided for particular devices.
  • Conversion templates may also be utilized to convert an application having a first format into an application having a second format.
  • website content may initially be converted into a specific application type.
  • the application created from the website content may be converted or translated into an application having a second format.
  • the website content may be utilized to create an initial application in a generic application format (e.g., a generic format which includes a listing of the application features).
  • a conversion template may then be applied to convert the application having the generic application format into an application format for iPhone application.
  • the website content may initially be utilized to create a web application (e.g., an HTML 5 application).
  • a conversion template may then be applied to convert the web application into an Android application or application for particular type of television system.
  • the conversion templates may also be utilized facilitate this type of conversion.
  • a site map for a website may be utilized to assist with the construction of the application. For example, a site map may be scanned to determine the names and URLs of the web pages that are to be incorporated into the application. A separate application module or interface may be created for each web page identified by the site map. The website features included on a particular web page may be utilized to populate the module that has been created for the web page.
  • a web crawler or web bot may crawl the hyperlinks on a website to determine the web pages that comprise the website.
  • a set of crawling rules can be utilized to limit the scope of the crawling operation.
  • the crawling rules may limit the number and the type of modules created for the application.
  • the scope of the crawling operation may be limited to web pages that share a particular domain name or may be limited only to web pages that are identified by hyperlinks on the index page of a website.
  • Other types of crawling rules may also be utilized.
  • the user may select the web site features and/or application modules that are to be included in the application.
  • the website features e.g., text, input forms, images, shopping carts, headings, etc.
  • the modules may then be incorporated into the modules that are created for the application.
  • a user may further customize and edit the application and the associated modules. For example, the user may be presented with tools that permit the user to add, edit or delete particular website features that have been added to the modules. Fonts, color schemes, and location of website features on the module interfaces can also be altered. Multimedia items, such as text, images, and videos, can also be added, deleted or edited.
  • one or more web pages are converted into separate modules for the application.
  • the user may further add preassembled application modules to the application in order to supplement the functionality of the application. For example, the user may add preassembled modules to the application that provide a calendar of events, shopping cart, checkout page, photo gallery, upload form, or other website features, even if such features were not part of the website that was utilized in creating the application.
  • These additional modules which are added to the application may also be customized by the user. For example, the user may add text, images or other types of multimedia data to populate the modules or select from a list of options for customizing the modules.
  • the user may utilize a synching feature that facilitates the automatic updating of an application in response to detecting updates on a website or web page.
  • the user may be permitted to select an option that specifies whether the user would like an application to be synched with a website or web page that was utilized to create the application. Assuming the user selects the option, an application or application module would automatically be updated to reflect changes that are made to the website or web page in the future. For example, if website features were added to a webpage or website at some later time, the application would automatically be updated to include these features.
  • the website or web page that was utilized in creating the application or application module may be periodically reviewed, or may be reviewed in response to a command or request to check for updates.
  • a user may simply identify a website or web page, and the website content associated with the identified website or web page may utilized to create or update an application.
  • a set of build tools may permit the user to further customize the application and supplement the application with additional content. All of this may be performed in a user-friendly manner by providing some basic input (e.g., by selecting checkboxes or typing data into a text input field), and without requiring the user to write a single line of program code.
  • Embodiments described herein may be hardware-based, software-based and preferably comprise a mixture of both hardware and software elements.
  • the description herein may describe certain embodiments, features or components as being implemented in software or hardware, it should be recognized that any embodiment, feature or component that is described in the figures or description of the present application may be implemented in hardware and/or software.
  • particular aspects are implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
  • Embodiments may include a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system.
  • a computer-usable or computer readable medium may include any apparatus that stores, communicates, propagates, or transports the program for use by or in connection with the instruction execution system, apparatus, or device.
  • the medium can be magnetic, optical, electronic, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium.
  • the medium may include a computer-readable storage medium such as a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk, etc.
  • a data processing system suitable for storing and/or executing program code may include at least one processor coupled directly or indirectly to memory elements through a system bus.
  • the memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code to reduce the number of times code is retrieved from bulk storage during execution.
  • I/O devices including but not limited to keyboards, displays, pointing devices, etc. may be coupled to the system either directly or through intervening I/O controllers.
  • Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks.
  • Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
  • a system 100 for creating or updating an application using website content in accordance with certain embodiments.
  • a personal computing device 110 target device 120 , website hosting server 130 and app building server 140 are connected to a network 190 .
  • Each of these devices may be configured to communicate via wired or wireless links, or a combination of the two.
  • Each of these devices may also include one or more processors (e.g., central processing units) and one or more non-transitory computer storage devices (e.g., RAM, ROM, PROM, SRAM, etc.).
  • the network 190 may be any type of network such as one that includes the Internet, a local area network (LAN), a wide area network (WAN), an intranet, etc.
  • a user 105 may operate the personal computing device 110 to communicate with the app building server 140 for the purpose of creating or updating an application 160 .
  • the app building server 140 includes an application builder 150 that may provide a set of build tools for constructing an application 160 .
  • the build tools may permit the user 105 to design the application 160 by adding multimedia content (e.g., text, images, video, audio, etc.) to the application, designing the appearance of the application and adding functionality to the application.
  • multimedia content e.g., text, images, video, audio, etc.
  • the target device 120 may represent any device that is capable of executing an application 160 .
  • the application builder 150 may permit the user 105 to design and construct applications 160 for any type of target device 120 including, but not limited to, mobile devices (e.g., applications for an iPhone, Android device or Blackberry), televisions (e.g., applications for NetTV, Google TV device, Apple TV device, or particular televisions such as Samsung 8000 Smart TV), kiosks, desktop computers, or computing devices that provide access to applications in cars, planes or other vehicles.
  • mobile devices e.g., applications for an iPhone, Android device or Blackberry
  • televisions e.g., applications for NetTV, Google TV device, Apple TV device, or particular televisions such as Samsung 8000 Smart TV
  • kiosks desktop computers, or computing devices that provide access to applications in cars, planes or other vehicles.
  • the application builder 150 may include a website integrator 155 .
  • the website integrator 155 may analyze website content associated with a web page or website on a website hosting server 130 .
  • the website integrator 155 may create or update one or more application modules for the application 160 using the website content.
  • the website integrator 155 may determine that modules should be created for one or more of the web pages comprising a website (e.g., the Contact page or the About Us page on the website).
  • the website integrator 155 may further be configured to scan the website content associated with a web page or website to detect one or more website features (e.g., multimedia data, input forms, photo galleries, shopping carts, etc.).
  • the website features may then be incorporated into one or more modules that are being created for the application 160 .
  • any application modules which were previously created may be updated with the detected website features. Further details regarding the manner in which website content may be utilized to create or update an application 160 are discussed in further detail below.
  • the personal computing device 110 may represent a desktop computer, laptop computer, mobile phone, tablet device, or other type of computing device.
  • the personal computing device 110 may include a display and one or more input devices (e.g., keyboard, microphone, camera, video camera, analyzer, joystick, remote control device, etc).
  • the personal computing device 110 may also include a web browser that is able to access the application builder 150 on the app building server 140 .
  • a user may manipulate interfaces served to the web browser by the app building server 140 in order to interact with the application builder 150 in constructing and/or updating applications 160 .
  • the app building server 140 may generally represent any type of computing device.
  • the app building server 140 comprises one or more mainframe computing devices that execute a web server configured to communicate with personal computing devices 110 over the Internet.
  • a computer storage medium on the app building server 140 may store applications or software code that is configured to provide assistance to users in performing tasks related to creating or updating an application.
  • the app building server 140 may be configured to provide the application builder 150 to users 105 via an interface displayed on the personal computing devices 110 .
  • the application builder 150 on the app building server 140 may include a website integrator 155 that is configured to incorporate website content into an application 160 or to supplement an existing application with the content from a website or web page.
  • the website content may be stored on a computer storage medium provided by a website hosting server 130 .
  • the website hosting server 130 may represent one or more mainframe computing devices that execute a web server or other type of computing device.
  • FIG. 1 is merely meant to demonstrate an embodiment of an operating environment that can be utilized in conjunction with the principles disclosed herein, and should not be construed as limiting in any manner whatsoever.
  • the particular configuration in FIG. 1 can be altered in numerous ways without departing from the principles herein.
  • the manner in which the application builder 150 is provided to the user 105 may vary. Rather, than making the application builder 150 accessible to a user 105 over a network 190 , the application builder 150 may represent an application that resides on the personal computing device 110 being operated by the user 105 . In such embodiments, the application builder 150 residing on the personal computing device 110 may directly access website content 135 over the network 190 without interacting with a app building server 140 . Thus, any functionality of the app building server 140 which is described herein can alternatively be implemented by a personal computing device 110 .
  • a personal computing device 110 may store website files or website content directly on the personal computing device 110 , or such may be obtained form a external storage medium (e.g., CD, DVD, USB flash drive, external hard drive, etc.).
  • an application builder 150 stored on the personal computing device 110 can convert the website content 135 into an application 160 without accessing the website content over the network 190 .
  • target devices 120 may be connected to the network 190 in order to transfer an application 160 , or updates to an application, directly to the target device 120 after the application 160 has been created, it is not necessary for the target device 120 to be connected to the network 190 .
  • the application 160 or associated updates may be transferred to the target device 120 in other ways (e.g., by downloading or storing the application on an external storage medium and utilizing the storage medium to transfer the application or associated updates to the target device 120 ).
  • FIG. 2 a detailed view of a system 200 for providing an application builder 150 is disclosed in accordance with certain embodiments of the present invention.
  • a plurality of software components e.g., website integrator 155 , build tools 270 , application distributor 260 , etc.
  • the storage device 201 is in communication with one or more processors 202 that may be configured to execute the instructions associated with software components.
  • FIGS. 3A-3C disclose exemplary interfaces associated with providing an application builder 150 .
  • the application builder 150 includes a website integrator 155 , an application distributor 260 and a set of build tools 270 .
  • the website integrator 155 may be configured to analyze website content 135 and utilized the website content 135 to create or update, an application 160 that may be executed by a target device 120 .
  • a user 105 may initially select or identify website content 135 that is to be used. For example, the user may identify URLs for one or more web pages that may be utilized to create or update an application 160 .
  • the user may specify that the website content 135 for an entire website should be utilized in creating or updating an application 160 .
  • the website may be selected by specifying the URL of the index page for the website, or by specifying the URL of a site map for the website.
  • a user may identify website content 135 to be incorporated into a website in other ways as well.
  • the website content 135 is not publicly available over the Internet (e.g., is stored locally on the personal computing device 110 )
  • a user 105 may upload files to the app building server 140 or identify the locally stored files in other ways.
  • a user may specify multiple sources of website content 135 to be utilized in creating or updating an application 160 .
  • the user may specify that website content from a variety of different websites may be utilized to create or update a single application.
  • some or all of the identified website content 135 may be retrieved over a network 190 (e.g., the Internet) from a website hosting server 130 and stored on a app building server 140 or device that is configured to convert the website content 135 into an application 160 or portion of an application 160 .
  • a network 190 e.g., the Internet
  • a website crawler 230 and site map reader 240 may be utilized to determine the application modules that are to be created (or updated) for an application 160 using the content from the website 145 .
  • the website crawler 230 and site map reader 240 may identify one or more web pages that are to be converted into modules for the application 160 or one or more web pages that may be used to update modules that have already been created.
  • each module that is created may be associated with a particular web page and populated with the website features included on the associated web page.
  • a site map is an file (typically, an XML file) that lists the names and URLs for a website along with additional metadata about each URL (e.g., when it was last updated, how often it usually changes, the names or titles of a web page, and how important it is relative to other URLs in the site).
  • the site map reader 240 may scan this file to determine the web pages that are to be converted into modules for the application 160 , and may create a separate application module for one or more of the web pages identified in the site map.
  • the names or titles of the web pages may be utilized to name the application modules that are created.
  • the web site crawler 230 may also be utilized to determine the web pages that are to be incorporated into an application 160 or utilized to update an application 160 . In certain cases, the web site crawler 230 may be utilized if a site map is unavailable for a particular website, or may be utilize to supplement the data that is extracted from the site map. To determine the web pages that are to be used in creating or updating application modules for an application 160 , the web site crawler 230 may initially traverse or crawl the hyperlinks on a website in order to identify the web pages which comprise the website. The website crawler 230 may include a set of crawling rules that determine the scope of the crawling operation.
  • a crawling rule may be included which specifies that only web pages having a particular domain name should be utilized to create or update application modules for the application 160 .
  • Another crawling rule may specify that the application 160 should only utilize web pages that are identified by hyperlinks on the index page of a website.
  • Other types of crawling rules may be utilized as well.
  • a user may be permitted to select and/or define the crawling rules which are applied. Regardless of which particular crawling rules are applied, the crawling operations of the web site crawler 230 may be utilized to identify web pages that are to be converted into modules for the application 160 .
  • the website analyzer 220 may analyze or scan the website content (e.g., the HTML source code, scripting code, style sheets, multimedia data, or other type of website content) associated with the identified web pages to identify website features.
  • the website analyzer 220 may analyze website content including multimedia content, HTML tags (e.g., ⁇ form> tags or ⁇ href> tags), event triggers (e.g., onClick HTML event or on MouseOver HTML event), style sheets, scripting code and other types of website content.
  • the website analyzer 220 may utilize a rule set 210 in analyzing the website content to detect the website features.
  • the rule set 210 may represent a set of rules or policies which are utilized to identify website features which are present in the website content.
  • the website analyzer 220 may identify website features such as multimedia content that is displayed on the website, functional website features (e.g., forms, RSS feeds, scrollers, photo galleries, shopping carts, etc.) that are provided by the website, font characteristics for text on the website (e.g., size, style, etc.), titles of web pages or sections of web page, navigation menus utilized by the website, or any other type of website feature that may be displayed on a website.
  • the website integrator 155 may copy particular types of website features (e.g., text and images) into the application 160 or may incorporate equivalent or similar features into the application 160 (e.g., using the preassembled modules).
  • the website integrator 155 utilize a variety of different analysis tools (e.g., regular expressions, string querying functions, crawlers, etc.) to detect website features.
  • the rule set 210 may include rules which utilize regular expressions or string querying operations to search the website content (e.g., the HTML source code) for particular image file extensions (e.g., .jpg, .gif., or .png) and/or which search the website content for HTML image tags (i.e., ⁇ img> tag).
  • the rule set 210 may include one or more rules that may be utilized to search the website content for an input form.
  • the rule set 210 may include rules which define regular expressions (or other searching tools) for detecting the tag associated with the beginning of an input form (i.e., ⁇ form> tag) and the tag associated with the end a form (i.e., ⁇ /form> tag).
  • the rule set 210 may further include rules that search for any HTML input tags (i.e., ⁇ input> tags) occurring between the beginning and ending form tags which may identify input elements (e.g., text boxes, check boxes, radio buttons, hidden input elements or other types of input elements) associated with the form.
  • Some or all of the website features detected in the website content may be incorporated into the application 160 that is being created or updated.
  • a set of conversion templates may be utilized to convert the website content 135 into different types of applications 160 . Separate conversion templates can be provided for converting or translating the website into an HTML 5 application, an iPhone application, an Android application, a NetTV application, a Facebook application, an application for a particular type of kiosk, an application for used in a vehicle device (e.g., car device or plane device), and other types of applications.
  • the conversion template 250 may include functions for converting or translating the source code (e.g., HTML and scripting code) associated with a web page or website into another language associated with a particular application type.
  • a conversion template 250 may be utilized for converting the source code into an HTML 5 application that may be executed in a web browser.
  • a conversion template may be selected for converting the website source code into an application that is written in programming language such as Objective C.
  • This conversion template 250 for converting website source code to an iPhone application may provide instructions for utilizing a development framework, such as the Cocoa Touch API, which is provided to assist developers in constructing applications for the iPhone.
  • a conversion template 250 for a particular type of application may indicate how a website attribute or feature (e.g., text, images, input form, calendar, RSS feed, shopping cart, etc.) which was detected in the website content is to be incorporated into the particular application type associated with the template.
  • the conversion templates 250 may specify rules for directly copying a website feature into an application or for utilizing a preassembled module to incorporate a website feature into an application.
  • the manner in which the website features are incorporated into the application being created may vary depending upon the complexity of the website feature. Less complex website features, such any multimedia data, may be incorporated into the application by copying the data directly into the modules of the application or by including a reference to the multimedia data in the modules. For example, an image can be directly copied into an application 160 by copying the file identified by the “src” attribute within an image tag (i.e., ⁇ img> tag). Rather, than copying the image, the application 160 may simply include a reference to the location of the image file as identified by the URL.
  • the conversion templates 250 may be able to extract other types of website features (e.g., titles, headings, fonts, etc.) from HTML tags (and their associated attributes) in a relatively simplistic manner by utilizing regular expressions.
  • the extracted information associated with the website feature can then be utilized to define or populate appropriate parameters for an application module. For example, if an application module was created for a web page titled “Homepage”, the title may be extracted from the website content (e.g., by extracting the information between the ⁇ title> and ⁇ /title> tags) and utilized to populate a parameter for naming the application module.
  • the conversion template 250 may define rules for detecting the font tag (i.e., ⁇ font>) immediately preceding the text and extracting the relevant attributes of the font tag (e.g., extract the “face” and “size” attributes within the font tag). The extracted attributes that may then be utilized to assign values to parameters or variables for the application 160 which define the font that is to be utilized.
  • the font tag i.e., ⁇ font>
  • relevant attributes of the font tag e.g., extract the “face” and “size” attributes within the font tag.
  • preassembled modules may be utilized for incorporating website features into an application 160 . These modules may be particularly useful when incorporating complex or functional website features into an application 160 that is being created or updated. Accordingly, it may be recognized that certain features will commonly be detected on a variety of websites, such as input forms (e.g., which are often found on a contact page of a website or on a survey page of a website), photo galleries, event calendars (e.g., which provide a listing of events along with times and dates for the events), RSS feeds, or product listings (e.g., which list products and/or services that are being sold along with related data such as pricing information and product descriptions). Since these features are common on many websites, preassembled modules may be provided for each of these features for a variety of different application types.
  • input forms e.g., which are often found on a contact page of a website or on a survey page of a website
  • event calendars e.g., which provide a listing of events along with times and dates for the events
  • preassembled modules may be provided for adding an input form to HTML 5 application, iPhone application, Android application, NetTV application, Autonet application, or other type of application. If the user 105 was creating an HTML 5 application from the website content, a preassembled module for providing an input form in an HTML 5 application may automatically be selected and added to the user's application in response to the website analyzer 220 detecting an input form on the website. The website content may then be utilized to customize the preassembled module that was added.
  • the name of the particular fields of the input form e.g., name, email address, comments, etc.
  • the attributes of the input fields e.g., color or size of text boxes
  • This may be performed by extracting information from the attributes of form tags (i.e., ⁇ form> tag) or input tags (i.e., ⁇ input> tags), or by extracting text that immediately precedes or follows these tags.
  • the preassembled module associated with the input form may be customized or tailored to provide an input form for the application which is the same or similar to the form located on the website.
  • a preassembled event calendar module specifically designed for an iPhone application may be added to the iPhone application being created. Thereafter, the dates and times (and other event information) specified by the event calendar located on the website may be extracted and utilized to populate the preassembled module for the event calendar.
  • Preassembled modules may be provided for nearly any type of website feature.
  • preassembled modules can be provided for shopping carts, photo galleries, video galleries, product listings or any other type of website feature that may be included in an application 160 .
  • any of the preassembled modules can be customized or tailored with the information from the website content in a similar manner to the examples described above.
  • the conversion templates may also be utilized to convert an application 160 having a first application type into an equivalent or similar application 160 having a second application type.
  • website content may initially be incorporated into a particular type of application 160 (e.g., a web application implemented in HTML 5) and then the user 105 may be provided with options for converting the initial application into other types of applications (e.g., Android application or Autonet applications for vehicles).
  • the conversion templates may be utilized to convert or translate the initial application 160 into different types of applications 160 .
  • the conversion templates may indicate how application features (e.g., text, images, input forms, calendars, RSS feeds, shopping carts, etc.) which are present in the first application are to be incorporated into a corresponding second application having a different application type.
  • application features e.g., text, images, input forms, calendars, RSS feeds, shopping carts, etc.
  • This may be performed in a similar manner to that which is described herein with respect to converting website features into features of an application (e.g., by detecting features of the first application and incorporating the same or similar features into the second application).
  • the build tools 270 may permit a user 105 to customize (e.g., add, delete or modify) the application modules and/or website features that have been incorporated into the application 160 . This may include modifying the content, appearance or functionality provided by the application modules.
  • the build tools 270 may further permit the user 105 to add new modules that are not derived from the website content 135 .
  • the application distributor 260 may assist the user 105 with distributing the application 160 .
  • the application distributor 260 may transmit the application 160 to a target device 120 over a network 190 .
  • the application distributor 260 may also be configured to submit the application 160 to one or more application marketplaces that permit individuals to download and/or purchase applications.
  • Exemplary application marketplaces may include the Android Market, the Apple App Store, or any other service that permits users to download and/or purchase applications 160 .
  • FIGS. 3A-3C illustrate exemplary interfaces that may be displayed by the application builder 150 to a user 105 in order to permit the user 105 to create or update an application 160 .
  • FIG. 3A discloses an exemplary interface 300 A that may initially be displayed to a user 105 when the user 105 accesses the application builder 150 (e.g., by accessing a website provided on a app building server 140 which provides the application builder 150 to the user 105 ).
  • a user 105 may select a first option 301 for creating a new application 160 from scratch, a second option 203 for importing content from an existing website to begin creating an application 160 , and a third option 303 for updating an existing application 160 .
  • the build tools 270 may permit the user 105 to construct an application 160 in various ways.
  • the build tools 270 may be permit the user 105 to design interfaces for the application and add various types of preassembled modules to the application 160 .
  • the build tools 270 may also include application templates that may be customized by the user 105 for designing the application. For example, a user 105 may select an application template for creating an application 160 for a particular type of business (e.g., restaurant, law firm, accounting, construction company, etc.) or for a particular topic or hobby (e.g., a photo album).
  • the application templates may include a plurality of preassembled modules or interfaces.
  • an application template for a law firm may include preassembled modules that provide an About Us module (e.g., which can be customized by the user 105 to provide a description of the firm), Contact module (e.g., which can be customized by the user 105 to provide contact information), an Employee module (e.g., which can be customized to describe the attorneys who work at the firm), a Consultation Form module (e.g., which permits potential clients to fill out an input form designed by the user 105 and to send comments to an email address specified by the user 105 ), and other types of modules.
  • an About Us module e.g., which can be customized by the user 105 to provide a description of the firm
  • Contact module e.g., which can be customized by the user 105 to provide contact information
  • an Employee module e.g., which can be customized to describe the attorneys who work at the firm
  • a Consultation Form module e.g., which permits potential clients to fill out an input form designed by the user 105 and to send comments to an email address specified
  • a user 105 may select different options (e.g., using check boxes or radio buttons), enter information into text input fields (e.g., name, contact info, etc.) and/or upload content (e.g., images, videos, etc.) to populate the preassembled modules associated with the application template.
  • text input fields e.g., name, contact info, etc.
  • content e.g., images, videos, etc.
  • the user 105 may be presented with an interface that permits the user 105 to identify website content that is to be converted into an application 160 .
  • the website content may be located on one or more separate websites.
  • a user may identify one or more individual web pages to be utilized in creating the application.
  • the user 105 may also be permitted to enter a particular domain name or identify the index page of a website (or other page of a website) and the website crawler 230 will traverse the links on the website based on a set of crawling rules in order to identify web pages that will be incorporated into an application 160 being constructed.
  • the user 105 may also be permitted to enter a URL that specifies the site map for a website or the site map reader 240 may automatically search for and identify a site map for the website.
  • the site map reader 240 will utilize the information in the site map to determine which web pages are to be incorporated into the application 160 .
  • a separate module or interface may be established for one or more of the web pages and the modules may be populated with features which are the same or similar to those included on the web pages. In some cases, preassembled modules may be utilized to facilitate the incorporation of particular website features.
  • the user 105 may be presented with a list of one or more applications 160 that the user 105 had previously created or had begun creating. The user 105 may then select an application 160 from the list, and utilize the build tools 270 to update or modify the selected application 160 . The user 105 may also be provided with an selection for identifying website content that should be utilized to supplement the existing application 160 . If user 105 opts to supplement the application 160 with website content, the user 105 may identify the website content in the same manner described above.
  • FIG. 3B illustrates an exemplary interface 300 B that may be displayed by the application builder 150 to a user 105 after the website integrator 155 has created application modules from website content that was identified by the user 105 .
  • the website analyzer 220 scanned a website for a construction company which included four web pages: an About Us page (e.g., which may also be the homepage or other web page describing the company), a Contact page, a Photo Gallery page (e.g., showing photos of completed construction projects), and a Services page (e.g., which describes the services performed by the construction company).
  • an About Us page e.g., which may also be the homepage or other web page describing the company
  • a Contact page e.g., showing photos of completed construction projects
  • a Services page e.g., which describes the services performed by the construction company.
  • the website integrator 155 created four modules (i.e., an About Us module, a Contact Page module, a Photo Gallery module and a Services module) for the application 160 .
  • Each of four web pages may have been identified by either the website crawler 230 or the site map reader 240 .
  • the conversion templates may specify that each of the modules created by the application builder 150 are to be named based on the title of the web page (e.g., which is located between the ⁇ title> and ⁇ /title> tags in the website content) or headings found on the web page (e.g., which may be specified using the ⁇ h1> tag or other heading tags).
  • the modules may be named based on the information in a site map for the web site which specifies the name of the web page.
  • the interface 300 B includes two primary windows: a page detail window 320 and a simulation window 330 .
  • the simulation window 330 illustrates how the application 160 being created will appear and function when the application 160 is downloaded and/or installed on a target device 120 or executed on a target device 120 .
  • the simulation window 330 may display the interfaces that will be displayed when the application 160 is executed on a target device 120 .
  • the interface displayed in the simulation window 330 in FIG. 3B may represent the home menu for an application that permits an individual to select or access different modules for the application.
  • the user 105 may select (e.g., with a mouse or by tapping a touch screen) the icons in the simulation window 330 in order to access or view the interface that would be displayed on a target device 120 if that particular icon had been selected. For example, clicking on the camera icon would cause the simulation window 330 to display the photo gallery page in the same or similar manner as it would be displayed on a target device 160 .
  • the page detail window 320 provides a list of buttons (i.e., About Us button 320 A, Contact page button 320 B, Photo Gallery button 320 C, and Services button 320 D), each of which is associated with a particular application module that has been created for the application 160 .
  • the buttons 320 A- 320 D correspond to the icons in the simulation window 330 .
  • Each one of the button includes a remove option 321 that permits a user to delete the entire application module. Assuming the user 105 does not wish to delete an application module, the user 105 may click on or otherwise select a button in the page detail window 320 in order to edit the contents of the associated module.
  • the user 105 may be presented with a form (e.g., which included text boxes, radio buttons, check boxes, etc.) that permits the user to edit the text and images displayed on the About Us page of the application 160 .
  • a form e.g., which included text boxes, radio buttons, check boxes, etc.
  • the user 105 clicked on the Photo Gallery button 320 C the user 105 may be presented with a form that permits the user to upload new photos to the gallery or delete existing photos in the gallery, or to make other types of modifications to the Photo Gallery module (e.g., such as changing the heading or text). Selecting a button 320 A- 320 D may also permit the user 105 to modify the titles 335 , fonts, color schemes, headings, alignment settings and other aspects of the application modules.
  • Each of the modules that have been created may be associated with a particular web page of the website that may be utilized to populate the content for the module.
  • the website integrator 155 may extract text, hyperlinks, images, and other content from the About Us page on the website and incorporate this content into the About Us module.
  • the content from the website may also be utilized to populate portions of preassembled modules used for constructing certain types of modules.
  • the application builder 150 may include a preassembled module for providing a photo gallery.
  • a preassembled photo gallery module can utilized to create a photo gallery for the application 160 .
  • the preassembled module may already include functionality for displaying a photo gallery but may not include any images to be displayed in the photo gallery.
  • the images from the photo gallery on the website can be extracted and utilized to populate the preassembled module for the photo gallery.
  • FIG. 3C illustrates an exemplary interface 300 C that may be displayed in response to a user 105 selecting the contact icon in the simulation window 330 .
  • the simulation window 330 may display the contact module that has been populated by the website integrator 155 with content from the Contact page on the construction website.
  • FIG. 4 illustrates a corresponding web page 400 for the construction company which served as a basis for creating and populating the Contact module for the application 160 which is displayed in the simulation window 330 of FIG. 3C .
  • the text on the Contact page 400 of the website provides contact information (e.g., street address, email address, phone number, etc.) for the construction company.
  • the browser rendering the website may include a title bar 410 that displays the name of the company or other information.
  • the web page 400 includes a heading 431 , a menu 450 of hyperlinks, and an input form 430 that permits individuals to send comments to the company (e.g., the input provided to the form may be emailed to the company associated with the website).
  • the input form 430 includes a first input field 435 A for providing a name, a second input field 435 B for providing an email address, and a third input field 435 C for specifying comments.
  • the user may press the “Submit” button to send the contents of the form to the company (e.g., via email).
  • the Contact module derived from the Contact page may represent a preassembled module for creating a contact page that has been populated with website features that were detected by the website analyzer. Before being populated with the website features, the preassembled contact module may reserve variables for specifying certain features, namely the module title, text that is displayed by the module, and links on a menu that is displayed by the module. The preassembled contact module may also include function for creating a contact form.
  • One or more conversion templates may be utilized to populate the variables of the preassembled contact module.
  • the variable associated with display text may be populated with contact information (e.g., the address, phone number and email) that was displayed on the web page 400 .
  • the website analyzer 220 may utilize the rule set 210 to detect the text that is displayed on the web page 400 and may further utilize a conversion template to copy the text to the appropriate variable associated with the preassembled contact module.
  • the title 331 or name of the module was determined by the heading 431 which was specified on the website (in other cases the title bar 410 may serve as the basis for naming the module).
  • the website analyzer 220 may utilize the rule set 210 to detect the heading that is displayed on the web page 400 (e.g., by detecting the text that is associated with the ⁇ h1> tag) and may further utilize a conversion template to copy the heading to the appropriate variable associated with the preassembled contact module.
  • a menu 333 displayed at the bottom of the module includes similar links to the menu 450 that was displayed on the web page 400 (although the links are not shown in detail in FIG. 3C ).
  • the website analyzer 220 may utilize the rule set 210 to detect the menu 450 displayed on the web page 400 (e.g., by detecting hyperlinks and the associated ⁇ a href> tags) and may further utilize a conversion template to populate variables associated with the preassembled contact module.
  • the variables may define the name of the menu items (e.g., About Us, Photo Gallery, Contact Page and Services) which are displayed on the menu 330 and the URLs associated with the with menu items.
  • the conversion template extract the “href” attribute associated with the hyperlink tag to specify URLs that should be associated with the menu items in the module menu 333 .
  • the conversion template may associate the menu items with internal links to other application modules that have been created for the application.
  • the Contact module also includes the contact form 430 that was displayed on the web page 400 .
  • the website analyzer 220 may search the website content (e.g., utilizing regular expressions and/or string querying operations) for particular types of HTML tags (e.g., ⁇ form> tags and ⁇ input> tags) that are associated with the form in accordance with the rule set 210 .
  • the conversion template may provide this information (e.g., which indicates the number of input fields, the type of input fields, the names of the input fields, etc.) to a function that generates an equivalent or similar form.
  • the conversion template may determine that the contents of the module contact form should be sent to the same destination (e.g., e-mail address) that was specified by the “action” attribute of the form tag (i.e., ⁇ form>) in the website content for the web page 400 .
  • the build tools 270 provided by the application builder 150 may permit a user 105 to modify the modules that have been created by the website integrator 155 .
  • the build tools 270 may also permit the user to add additional modules to the application 160 .
  • the user 150 may click on a button 310 to create a new page or module.
  • the user may be permitted to select from a plurality of preassembled modules.
  • the user 105 can select a preassembled module for creating an image gallery, a links page, a contact page, an RSS feed and other types of pages or modules.
  • the user 105 may then customize the module by filling out a form (e.g., which include text boxes, radio buttons, or other HTML input elements) and/or uploading multimedia data to populate the contents of the module.
  • a form e.g., which include text boxes, radio buttons, or other HTML input elements
  • the application distributor 260 may be configured to assist a user 105 in distributing an application 160 to a target device 120 and/or an application marketplace that permits individuals to download or purchase applications 160 .
  • an application marketplace may be provided by a app building server 140 that was utilized to create and/or update the application.
  • the application marketplace may be provided by a server which is located remotely or externally from the app building server 140 .
  • FIG. 5 illustrates an exemplary method 500 for creating or updating an application 160 (or portion thereof) using website content in accordance with certain embodiments.
  • a user 105 may select an option for creating or updating an application using website content 135 (step 510 ).
  • a user 105 may select a button or link that permits the user 105 to create a new application using the content of one or more websites (e.g., similar to the second option 302 in FIG. 3A ), or to supplement a pre-existing application with the content of from one or more websites (e.g., similar to the third option 303 in FIG. 3A ).
  • the interface providing the options may be provided to the user over a network 190 from a app building server 140 or by an application running on a personal computing device 110 .
  • the URL of the website content may be provided by the user 105 to identify a website that is to be utilized in creating the application 160 (step 520 ). For example, the user 105 may input the URL for the index page for the website or the URL for the site map for the website. If the user desires, a plurality of URLs may be submitted (e.g., in the case where multiple websites are being incorporated into an application 160 that is being constructed). It should be noted that in other embodiments, the user may identify one or more individual web pages that may be utilized in creating or updating an application (rather than identifying an entire website).
  • a check may be performed to determine whether or not the URL that was submitted is a valid URL (step 530 ). For example, a check may be performed to determine whether the URL actually identifies a web page or whether the URL has been typed improperly. If the URL submitted by the user 105 is not valid, then the method 500 proceeds back to step 520 and the user 105 may once again be prompted to enter another URL.
  • one or more web pages are identified that are to be converted into modules for application (step 540 ). This may involve identifying a site map (either automatically or by input from a user) and processing or scanning the site map (e.g., using the site map reader 240 ) to determine the web pages that are to be converted into modules for the application 160 . Some or all of the web pages identified in the site map may be converted into modules for the application 160 . Identifying web pages that are to be converted into modules for the application 160 may also involve crawling or scanning a website 160 (e.g., using website crawler 230 ) to identify the web pages that comprise the website. This may include crawling the hyperlinks on a website based on a set of crawling rules as described above.
  • the web site content 135 associated with the identified web pages may be analyzed in accordance with a rule set 210 to detect website features associated with the web pages (step 550 ). In certain embodiments, this may be performed by the website analyzer 220 described above.
  • the website content that is analyzed may include multimedia data, HyperText Markup Language (HTML) code and tags (and tag attributes), event triggers, style sheets, scripting code and any other data associated with a website or web page. Based on the analysis of the website content, one or more website features may be detected.
  • HTML HyperText Markup Language
  • the website features that are detected by analyzing the website content may encompass nearly any feature that may be displayed on a web page.
  • the website features may include multimedia data (e.g., text, images, video, audio recordings, etc.) that is displayed on the web pages.
  • the detected website features also include menus, input forms, social media links (e.g., links to web pages on social networks such as FacebookTM, TwitterTM or LinkedInTM), photo galleries, shopping carts, event calendars, RSS feeds, product listings, hyperlinks, web page titles, web page headings, blogs, contact lists, or other features that are displayed on a web page.
  • the website features may then be incorporated into the modules that are being created or updated (step 560 ).
  • One or more conversion templates may be utilized to incorporate the website features into the application 160 .
  • separate application modules may be constructed for each of the web pages that were identified using the site map or crawling operations described above.
  • the application module created for a particular web page may be customized to incorporate the multimedia data included on the web page, along with any other website feature (e.g., input forms, hyperlinks, photo galleries, etc.) that is included on the web page.
  • preassembled modules may be populated with multimedia content from a web page.
  • a module for a photo gallery may be populated with images extracted from a web page if a photo gallery was detected on the web page
  • a module for an event calendar may be populated with event data (e.g., event name, date, time, etc.) extracted from a web page if an event calendar was detected on the web page.
  • event data e.g., event name, date, time, etc.
  • the user 105 utilizing the application builder 150 to construct the application 160 may also be provided with a set of build tools 270 that permit the user 105 to edit the application modules, and to supplement the application 160 with additional modules (step 570 ).
  • the build tools 270 may permit the user 105 to edit the application modules associated with an application 160 in various ways.
  • the build tools 270 may permit the user 105 to modify (e.g., add, delete, edit) multimedia data displayed on the interfaces associated with the application modules, and to supplement the interfaces to include nearly any type of website feature (e.g., input forms, calendars, RSS feeds, etc.).

Abstract

The disclosure herein relates to systems and methods for creating or updating applications using website content. An input may be received that identifies website content to be utilized in creating or updating an application. One or more application modules may be derived from the website content. The website content may be analyzed in accordance with a rule set to detect website features associated with the website. The website features may be incorporated into the one or more application modules. The application modules may then be compiled into an application such as a mobile application or HTML 5 application.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • The present application is a continuation of U.S. patent application Ser. No. 13/831,111 filed on Mar. 14, 2013. The present application is also related to U.S. patent application Ser. No. 13/922,944 filed on Jun. 20, 2013 (now, U.S. Pat. No. 8,788,935) and U.S. patent application Ser. No. 13/831,125 filed on Mar. 14, 2013. All of the above-identified applications are incorporated herein by reference in their entirety.
  • COPYRIGHT NOTICE
  • A portion of the disclosure of this patent document contains material, which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever.
  • FIELD OF THE INVENTION
  • The present principles are directed to systems and methods for creating applications, and more particularly, to systems and methods for creating an application, or portion thereof, using website content. In certain embodiments, the applications created or updated with the content of a website may include mobile applications and web applications, including HTML 5 applications.
  • BACKGROUND OF THE INVENTION
  • In modern times, businesses, organizations, governmental agencies and other entities often utilize websites and computing applications to further their goals and objectives. For example, a single company may provide a website, a mobile application for a smart phone, a television application for a smart television and even a desktop application that can be installed on a desktop computer or laptop. The information and functionality performed by the company's website is often the same or similar to some extent. For example, the company's website and computing applications may both advertise the company's goods and services, provide a contact form that permits an individual to transmit comments to the company, display a listing of products for purchase, provide a shopping cart which permits someone to add and remove goods to be purchased, or disseminate information on a particular topic.
  • Despite the overlap in content and functionality between the website and the applications, a company (or other entity) is typically faced with hiring separate developers to handle the creation of the website and the applications. For example, a website development company may be hired to create a website, and a software development company specializing in mobile applications will be hired to create a mobile application for the company. Furthermore, since applications are generally not compatible across different platforms, additional software development expenses will be incurred if the company desires other types of applications (e.g., applications for televisions, kiosks or vehicles) as well. Consequently, the creation of a website and computing applications can be very expensive.
  • In addition, from the perspective of the software development companies, the creation of computing applications can be an extremely complex and time-consuming task. In order to build an application, a programmer must have a certain level of technical knowledge (e.g., knowledge of programming languages and knowledge of particular hardware devices that execute the application). Moreover, even if a programmer has sufficient knowledge to create an application for one type of particular device (e.g., an iPhone), it is often the case that the programmer does not possess sufficient knowledge to create applications for other types of devices (e.g., Android devices or for a particular type of television). Depending upon the complexity of the application, programmers can spend weeks, months or even years developing a single application.
  • Hence, there is a need for a software creation tool that has the ability to generate one or more computing applications in an expedited, cost-effective manner that does not require technical knowledge.
  • SUMMARY OF THE INVENTION
  • Systems and methods are provided for a platform that facilitates the generation of computing or software applications in an expedited, cost-effective manner. The applications created or updated with the website content may include mobile applications and web applications, including HTML 5 applications. A software development platform may also permit users having little or no programming or technical knowledge to create various types of applications
  • The systems and methods disclosed herein may utilize website content to create or update applications. An input may be received that identifies website content to be utilized in creating or updating an application. In certain embodiments, the input may identify a uniform resource locator (URL) or site map associated with website content. The website content may be analyzed in accordance with a rule set to detect website features associated with the website. This may include analyzing HTML source code, scripting code, stylesheets, and other types of website content. Exemplary website features that are detected within the website content may include multimedia content, social media links, font information, alignment information and hyperlinks, in addition to functional website features such as forms, photo galleries, shopping carts, RSS feeds, Atom feeds, event calendars, checkout pages, and product listings. The detected website features may then be incorporated into the one or more application modules for the application that is being created or updated.
  • In accordance with certain embodiments, a method is provided for creating or updating an application using website content. An input may initially be received that identifies website content to be utilized in creating or updating the application. The identified website content may be analyzed in accordance with a rule set to detect website features within the website content. The detected website features may then be incorporated into one or more application modules associated with the application.
  • In accordance with certain embodiments, a system is provided for creating or updating a software application using website content. The system comprises a processor that is configured to receive an input that identifies website content to be utilized in creating or updating the application, and to analyze the identified website content in accordance with a rule set to detect website features within the website. The processor may further be configured to incorporate the detected website features into one or more application modules associated with the application.
  • In accordance with the certain embodiments, a computer storage medium is provided which comprises program instructions for creating or updating an application using website content. When executed on a computer, the program instructions cause the computer to receive an input that identifies website content to be utilized in creating or updating the application, and to analyze the identified website content in accordance with a rule set to detect website features within the website content. The program instructions may further cause the computer to incorporate the detected website features into one or more application modules associated with the application.
  • These and other features and advantages will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings.
  • BRIEF DESCRIPTION OF DRAWINGS
  • The inventive principles are illustrated in the figures of the accompanying drawings which are meant to be exemplary and not limiting, in which like references are intended to refer to similar or corresponding parts, and in which:
  • FIG. 1 is a block diagram of a system for generating an application using website content in accordance with certain embodiments.
  • FIG. 2 is a block diagram illustrating a detailed view of an application builder in accordance with certain embodiments.
  • FIGS. 3A-3C illustrate exemplary interfaces that may be provided by an application builder to create an application using website content in accordance with certain embodiments.
  • FIG. 4 is a web page that may be utilized to create the application module displayed in the simulation window of FIG. 3C in accordance with certain embodiments.
  • FIG. 5 is a flow chart illustrating a method for creating an application using website content in accordance with certain embodiments.
  • DETAILED DESCRIPTION OF THE EMBODIMENTS
  • In the following description, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration specific embodiments in which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the present invention.
  • In accordance with the principles described herein, a software development platform is provided for creating or updating an application, or portion thereof, using website content. In certain embodiments, the software development platform may be integrated with or may use the ones described in U.S. patent application Ser. No. 13/396,392 filed on Feb. 14, 2012 and U.S. patent application Ser. No. 13/396,368 (now, U.S. Pat. No. 8,261,231) filed on Feb. 14, 2012, both of which are herein incorporated by reference in their entirety. For example, the principles disclosed herein with respect to creating or updating applications using website content may be incorporated as a feature of the software development platforms described in these references.
  • More specifically, in accordance with certain embodiments, a software development and distribution platform and corresponding arrangement may be provided that allows non-technical users and application developers to develop applications through the platform that may be built and compiled to run on multiple mobile operating systems and/or devices and utilize the various device and operating system specific features, without the need for programming knowledge or expertise. Certain of these embodiments allow users to highly customize the applications developed through the platform by selecting and combining various predefined components, features, application designs, and content and/or creating new components, such as app-types and modules. Certain embodiments allow users to deploy applications developed through the platform by submitting the compiled applications to digital distribution platforms associated with one or more types of operating systems and/or devices. Certain of these embodiments, allow the compilation to comprise an identifying reference and/or other basic information, rather than the application data itself, which may be used to retrieve application data from a remote source, and build and configure the application when end users download or execute the application. Certain embodiments allow users and developers to modify or update the applications and their content directly through the development platform.
  • A user may initially identify the website content that will be used to create or update the application. In certain embodiments, the user may be permitted to identify one or more web pages that can be utilized in creating or updating the application, or the user can identify an entire website that is to be utilized in creating or updating the application. The website content may be identified by specifying a uniform resource locator (URL) for a particular webpage or for a particular website (e.g., by specifying a URL that identifies the index page or site map for the website), by selecting the website from a list of websites, or in other ways. In certain embodiments, the identified website content may be retrieved over a network (e.g., the Internet) from a server hosting the website and stored on an app building device that is configured to analyze the website content and create or update an application using the website content.
  • The website content (e.g., HTML code, text, images, videos, scripting code, style sheets, etc.) may be scanned by the app building device according to a rule set in order to detect the presence of particular features within the website content. Generally speaking, the rule set comprises a set of rules for detecting website features. The rule set may utilize a variety of different analysis tools (e.g., regular expressions, string querying functions, crawlers, etc.) to scan the website content and detect website features.
  • Any type of file or data associated with a website or web page may be analyzed to detect the presence of website features. In certain embodiments, the source code for a web page may be analyzed in accordance with the rule set to detect the website features. This may include analyzing particular HTML tags (e.g., <title> tags, <form> tags, <input> tags, <div> tags, <table> tags, <body> tags, <head> tags, <font> tags, or any other tag in any version of the HTML specification) within the source code, attributes of the HTML tags, or event triggers associated with the HTML tags (e.g., associated with the onClick HTML event, on MouseOver HTML event or any other type of event). Even further, the analyzing operations may include analyzing scripting code (e.g., JavaScript code, PHP code or other types of scripting code) included in the source code for a web page or in separate files within a web directory for the website, as well as analyzing style sheets (e.g., CSS style sheets) that may be utilized to control the look or appearance of a website or web page.
  • The rule set may be capable of detecting various types of website features. For example, the rule set may include rules for detecting multimedia data (e.g., text, images, videos, audio recordings, or other types of multimedia data) that is displayed on a website. The rule set may further include rules for detecting fonts utilized on the website, sizes of different website elements (e.g., font size, image size, table size, or other size related information), alignment data (e.g., alignment of text, images, tables, etc.), hyperlinks (including hyperlinks to web pages associated with social media website such as Facebook™, Twitter™ or LinkedIn™) and associated URLs, or any other feature that may be derived from an HTML tag, XML tag or markup tag. The rule set may also be utilized to detect more complex functional website features that are included with the website content. For example, the website content may be analyzed to detect input forms, photo galleries, shopping carts, RSS/Atom feeds, event calendars, checkout pages, product listings (e.g., included in an auction), contact lists, blogs or any other type of functional feature that may be provided by a website. In certain cases, these features may be identified by analyzing HTML tags, scripting code and/or text that is provided on a website.
  • After the website features have been detected, a user may be permitted to select the website features that are to be incorporated into an application or portion of an application that is being created or updated. In certain embodiments, the detected website features may be presented to the user on an interface and the user may be permitted to identify the website features that are to be included in the application by selecting/unselecting check boxes or other types of input elements (e.g., radio buttons).
  • In certain embodiments, an application module may be created for each web page that is analyzed, and the application module may include all of the website features associated with the web page. The application module may represent an interface for the application being created or updated that corresponds to the web page. For instance, if a contact page for a website (e.g., which includes contact information and a contact form for submitting comments) was analyzed, a corresponding application module may be created that includes the website features that were detected on the web page (e.g., which includes the contact information and contact form). The user can select to include or exclude the entire application module from the application, or to include or exclude particular website features that are associated with the application module.
  • The manner in which the website features are incorporated into the application being created may vary. In certain cases, the features may simply be copied from the website and incorporated into the application. For example, any multimedia data that is displayed on a website may be copied and incorporated into the application. Other basic types of website features (e.g., titles, headings, fonts, etc.) can also be incorporated into the application in a relatively straightforward manner by extracting the information associated with applicable HTML tags and/or CSS style sheet data and utilizing the extracted information to populate the application parameters.
  • In other cases, preassembled modules may be added to applications in order to incorporate particular types of website features (e.g., input forms, photo galleries, event calendars, RSS or Atom feeds, etc.). For example, a preassembled module may be provided for incorporating an input form into an application. Thus, if an input form was detected on the website, then the preassembled module for the input form may be added to the application. Once added, the preassembled modules may automatically be customized or tailored to reflect the input form on the website (e.g., the form may be customized to include the same input fields as the form on the website). Preassembled modules may be utilized to incorporate any website feature described herein.
  • In certain embodiments, the website content may initially be utilized to create or update a web application (e.g., an application implemented in HTML 5 or other web-based language). After the web application is generated from the website content, a user may specify that the web application is to be converted or translated into a different application for a specific device (e.g., converted to an application that is compatible with a particular type of smart phone or smart television).
  • In certain embodiments, the website content may initially be utilized to create or update a generic application. The generic application may represent an application having a standardized format that stores the features for the application in a uniform manner to facilitate conversion of the generic application into other types of native applications (e.g., applications for mobile devices such as an iPhone™ device, Android™ device or Blackberry™ device). Thus, after the generic application is generated using the website content, a user may specify that the generic application is to be converted or translated into a different application for a specific device (e.g., converted to an application that is compatible with a particular type of smart phone or smart television).
  • In certain embodiments, the generic application which is created or updated using the content of a website may be represented and/or stored using the exemplary data model described in FIG. 4 (along with the corresponding description of this figure in the specification) of U.S. patent application Ser. No. 13/396,392 and U.S. patent application Ser. No. 13/396,368 (now, U.S. Pat. No. 8,261,231), both of which are incorporated by reference in their entirety.
  • For example, in utilizing such a data model, the application components, design elements, contents, settings, and other data utilized by developers to design, create, modify, and customize applications through the development platform and corresponding systems and methods described and illustrated herein may be organized and stored in a relational and/or hierarchical manner. In certain of these embodiments applications developed through the platform may include and/or be represented by a set of application components, content element, and/or design elements, each of which, in turn, may include, or be associated with, one or more other application components, content elements, and/or design elements and so on. For example, each application may be associated with an app-type, which includes one or more modules, each of which, in turn, includes one or more layouts and one or more features.
  • In certain embodiments, the application components, design elements, content elements, and other data, as well as their relationships to each other, may be represented and stored in a database, such as relational database. In certain other embodiments, these relationships and the application data may be represented and/or stored in any other suitable format and/or medium, such as in tables, trees, sets of links, or other similar structures. By storing this information in a relational manner, applications developed through the development and distribution platform can be easily stored, retrieved, built, and updated simply by representing each application through a series of relationships between the application's components, elements and other data. Moreover, this data model or architecture enables new application components, content elements, and design elements created or customized by developers or other third parties to be added to the development and deployment platform and used by developers in the development of future applications.
  • In other embodiments, a user may specify the type of application that is to be created from the website content. For example, the user may be provided with a list of available application types that are specific to particular devices, operating systems and/or device platforms. Hence, the user may specify that the application being constructed from the website content is an application intended to be executed by a particular mobile phone, desktop computer, television, motor vehicle device, aircraft device, kiosk or other device. The user may select additional design parameters associated with constructing the application such as the programming language that the application will be implemented in.
  • If the user is updating an existing application using the website content, the system may automatically recognize the application type for the application that is being updated. In other embodiments, a user may specify the application type for an application (e.g., by selecting from a list of application types) that is being supplemented with the website content. Regardless of how the application type of an existing application is determined, the application is supplemented with the website content in a manner that is compatible with the application type for the application.
  • In certain embodiments, a set of conversion templates may be utilized to transform or convert the website content into different types of applications. For example, separate conversion templates can be provided for converting or translating the website content into an HTML 5 application, an iPhone application, an Android application, a NetTV application, a Facebook application, or other types of applications. The conversion templates may indicate how a particular website feature (e.g., input form, calendar, shopping cart, etc.) which was detected within the website content is to be incorporated into the application being constructed. For example, the conversion templates may specify rules for copying a website feature into an application or for incorporating a website feature utilizing a preassembled module. The conversion templates may provide a means for converting source code (e.g., HTML mark up or scripting code) into a programming language that is compliant with a particular target device and which is compatible with development frameworks provided for particular devices.
  • Conversion templates may also be utilized to convert an application having a first format into an application having a second format. Thus, website content may initially be converted into a specific application type. After this initial conversion, the application created from the website content may be converted or translated into an application having a second format. For example, the website content may be utilized to create an initial application in a generic application format (e.g., a generic format which includes a listing of the application features). A conversion template may then be applied to convert the application having the generic application format into an application format for iPhone application. As another example, the website content may initially be utilized to create a web application (e.g., an HTML 5 application). A conversion template may then be applied to convert the web application into an Android application or application for particular type of television system. Thus, the conversion templates may also be utilized facilitate this type of conversion.
  • In certain embodiments, a site map for a website may be utilized to assist with the construction of the application. For example, a site map may be scanned to determine the names and URLs of the web pages that are to be incorporated into the application. A separate application module or interface may be created for each web page identified by the site map. The website features included on a particular web page may be utilized to populate the module that has been created for the web page.
  • Rather than, or in addition to, utilizing a site map to determine the web pages that are to be incorporated into an application, a web crawler or web bot may crawl the hyperlinks on a website to determine the web pages that comprise the website. In this case, a set of crawling rules can be utilized to limit the scope of the crawling operation. The crawling rules may limit the number and the type of modules created for the application. For example, the scope of the crawling operation may be limited to web pages that share a particular domain name or may be limited only to web pages that are identified by hyperlinks on the index page of a website. Other types of crawling rules may also be utilized.
  • After the site map and/or crawler is utilized to determine the set of modules that will be created for the application from the website content, the user may select the web site features and/or application modules that are to be included in the application. The website features (e.g., text, input forms, images, shopping carts, headings, etc.) may then be incorporated into the modules that are created for the application. Once the modules are populated with equivalent or similar features as those which were detected on the website, a user may further customize and edit the application and the associated modules. For example, the user may be presented with tools that permit the user to add, edit or delete particular website features that have been added to the modules. Fonts, color schemes, and location of website features on the module interfaces can also be altered. Multimedia items, such as text, images, and videos, can also be added, deleted or edited.
  • In certain embodiments, one or more web pages (included in the website that was utilized to create the application) are converted into separate modules for the application. The user may further add preassembled application modules to the application in order to supplement the functionality of the application. For example, the user may add preassembled modules to the application that provide a calendar of events, shopping cart, checkout page, photo gallery, upload form, or other website features, even if such features were not part of the website that was utilized in creating the application. These additional modules which are added to the application may also be customized by the user. For example, the user may add text, images or other types of multimedia data to populate the modules or select from a list of options for customizing the modules.
  • After a user has finished creating or updating an initial version of the application, the user may utilize a synching feature that facilitates the automatic updating of an application in response to detecting updates on a website or web page. The user may be permitted to select an option that specifies whether the user would like an application to be synched with a website or web page that was utilized to create the application. Assuming the user selects the option, an application or application module would automatically be updated to reflect changes that are made to the website or web page in the future. For example, if website features were added to a webpage or website at some later time, the application would automatically be updated to include these features. To determine whether a website or web page has been updated, the website or web page that was utilized in creating the application or application module may be periodically reviewed, or may be reviewed in response to a command or request to check for updates.
  • It should be apparent that the application creation techniques described throughout this disclosure do not require a user to have any technical knowledge or programming knowledge. A user may simply identify a website or web page, and the website content associated with the identified website or web page may utilized to create or update an application. A set of build tools may permit the user to further customize the application and supplement the application with additional content. All of this may be performed in a user-friendly manner by providing some basic input (e.g., by selecting checkboxes or typing data into a text input field), and without requiring the user to write a single line of program code.
  • Embodiments described herein may be hardware-based, software-based and preferably comprise a mixture of both hardware and software elements. Thus, while the description herein may describe certain embodiments, features or components as being implemented in software or hardware, it should be recognized that any embodiment, feature or component that is described in the figures or description of the present application may be implemented in hardware and/or software. In certain embodiments, particular aspects are implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
  • Embodiments may include a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. A computer-usable or computer readable medium may include any apparatus that stores, communicates, propagates, or transports the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be magnetic, optical, electronic, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. The medium may include a computer-readable storage medium such as a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk, etc.
  • A data processing system suitable for storing and/or executing program code may include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code to reduce the number of times code is retrieved from bulk storage during execution. Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) may be coupled to the system either directly or through intervening I/O controllers.
  • Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
  • Referring now to the drawings in which like numerals represent the same or similar elements and initially to FIG. 1, a system 100 is disclosed for creating or updating an application using website content in accordance with certain embodiments. As shown therein, a personal computing device 110, target device 120, website hosting server 130 and app building server 140 are connected to a network 190. Each of these devices may be configured to communicate via wired or wireless links, or a combination of the two. Each of these devices may also include one or more processors (e.g., central processing units) and one or more non-transitory computer storage devices (e.g., RAM, ROM, PROM, SRAM, etc.). The network 190 may be any type of network such as one that includes the Internet, a local area network (LAN), a wide area network (WAN), an intranet, etc.
  • A user 105 may operate the personal computing device 110 to communicate with the app building server 140 for the purpose of creating or updating an application 160. The app building server 140 includes an application builder 150 that may provide a set of build tools for constructing an application 160. Amongst other things, the build tools may permit the user 105 to design the application 160 by adding multimedia content (e.g., text, images, video, audio, etc.) to the application, designing the appearance of the application and adding functionality to the application.
  • The target device 120 may represent any device that is capable of executing an application 160. The application builder 150 may permit the user 105 to design and construct applications 160 for any type of target device 120 including, but not limited to, mobile devices (e.g., applications for an iPhone, Android device or Blackberry), televisions (e.g., applications for NetTV, Google TV device, Apple TV device, or particular televisions such as Samsung 8000 Smart TV), kiosks, desktop computers, or computing devices that provide access to applications in cars, planes or other vehicles.
  • To assist with building an application 160, the application builder 150 may include a website integrator 155. The website integrator 155 may analyze website content associated with a web page or website on a website hosting server 130. In certain embodiments, the website integrator 155 may create or update one or more application modules for the application 160 using the website content. For example, the website integrator 155 may determine that modules should be created for one or more of the web pages comprising a website (e.g., the Contact page or the About Us page on the website). The website integrator 155 may further be configured to scan the website content associated with a web page or website to detect one or more website features (e.g., multimedia data, input forms, photo galleries, shopping carts, etc.). The website features may then be incorporated into one or more modules that are being created for the application 160. In the case that an application is being updated, any application modules which were previously created may be updated with the detected website features. Further details regarding the manner in which website content may be utilized to create or update an application 160 are discussed in further detail below.
  • The personal computing device 110 may represent a desktop computer, laptop computer, mobile phone, tablet device, or other type of computing device. The personal computing device 110 may include a display and one or more input devices (e.g., keyboard, microphone, camera, video camera, analyzer, joystick, remote control device, etc). The personal computing device 110 may also include a web browser that is able to access the application builder 150 on the app building server 140. A user may manipulate interfaces served to the web browser by the app building server 140 in order to interact with the application builder 150 in constructing and/or updating applications 160.
  • The app building server 140 may generally represent any type of computing device. In certain embodiments, the app building server 140 comprises one or more mainframe computing devices that execute a web server configured to communicate with personal computing devices 110 over the Internet. A computer storage medium on the app building server 140 may store applications or software code that is configured to provide assistance to users in performing tasks related to creating or updating an application. Specifically, the app building server 140 may be configured to provide the application builder 150 to users 105 via an interface displayed on the personal computing devices 110. As mentioned above, the application builder 150 on the app building server 140 may include a website integrator 155 that is configured to incorporate website content into an application 160 or to supplement an existing application with the content from a website or web page.
  • In certain embodiments, the website content may be stored on a computer storage medium provided by a website hosting server 130. Like the app building server 140, the website hosting server 130 may represent one or more mainframe computing devices that execute a web server or other type of computing device.
  • It should be noted that the system in FIG. 1 is merely meant to demonstrate an embodiment of an operating environment that can be utilized in conjunction with the principles disclosed herein, and should not be construed as limiting in any manner whatsoever. The particular configuration in FIG. 1 can be altered in numerous ways without departing from the principles herein.
  • For example, the manner in which the application builder 150 is provided to the user 105 may vary. Rather, than making the application builder 150 accessible to a user 105 over a network 190, the application builder 150 may represent an application that resides on the personal computing device 110 being operated by the user 105. In such embodiments, the application builder 150 residing on the personal computing device 110 may directly access website content 135 over the network 190 without interacting with a app building server 140. Thus, any functionality of the app building server 140 which is described herein can alternatively be implemented by a personal computing device 110.
  • Moreover, in certain embodiments, it may not be necessary to access website content 135 over a network 190. For example, a personal computing device 110 may store website files or website content directly on the personal computing device 110, or such may be obtained form a external storage medium (e.g., CD, DVD, USB flash drive, external hard drive, etc.). In such embodiments, an application builder 150 stored on the personal computing device 110 can convert the website content 135 into an application 160 without accessing the website content over the network 190.
  • Even further, although it may be preferable to have one or more target devices 120 connected to the network 190 in order to transfer an application 160, or updates to an application, directly to the target device 120 after the application 160 has been created, it is not necessary for the target device 120 to be connected to the network 190. The application 160 or associated updates may be transferred to the target device 120 in other ways (e.g., by downloading or storing the application on an external storage medium and utilizing the storage medium to transfer the application or associated updates to the target device 120).
  • It should also be understood that while the disclosure herein may primarily discuss utilizing website content 135 to create, generate, or build an application, it should be understood that the principles discussed herein may also utilize website content 135 to update or supplement an existing application. Thus, any reference to creating, generating or building an application should also be understood to apply to updating or supplementing an existing application.
  • Based on the above, it should be apparent that the system 100 illustrated in FIG. 1 may be varied in numerous other ways in addition to those modifications explicitly mentioned in this disclosure.
  • Moving on to FIG. 2, a detailed view of a system 200 for providing an application builder 150 is disclosed in accordance with certain embodiments of the present invention. As shown therein, a plurality of software components (e.g., website integrator 155, build tools 270, application distributor 260, etc.) comprising computer readable software instructions are stored on a computer storage device 201 (e.g., RAM, ROM, PROM, SRAM, etc). The storage device 201 is in communication with one or more processors 202 that may be configured to execute the instructions associated with software components.
  • It should be noted that although the components on the storage device 201 may be described throughout this disclosure as software modules, such is not necessary. As explained above, embodiments described herein may be hardware-based, software-based and or a mixture of both hardware and software elements. Furthermore, while the components may be illustrated as separate and distinct components, it should be recognized the components can be combined in any manner (e.g., all of the components may be executed as a part of a single program or as separately executing processes or threads) and that the functions performed by these components may overlap in some instances. To demonstrate the functionality performed by these components, reference will be made to FIGS. 3A-3C, which disclose exemplary interfaces associated with providing an application builder 150.
  • Amongst other things, the application builder 150 includes a website integrator 155, an application distributor 260 and a set of build tools 270. The website integrator 155 may be configured to analyze website content 135 and utilized the website content 135 to create or update, an application 160 that may be executed by a target device 120. A user 105 may initially select or identify website content 135 that is to be used. For example, the user may identify URLs for one or more web pages that may be utilized to create or update an application 160. In certain embodiments, the user may specify that the website content 135 for an entire website should be utilized in creating or updating an application 160. In this case, the website may be selected by specifying the URL of the index page for the website, or by specifying the URL of a site map for the website.
  • A user may identify website content 135 to be incorporated into a website in other ways as well. For example, in the case that the website content 135 is not publicly available over the Internet (e.g., is stored locally on the personal computing device 110), a user 105 may upload files to the app building server 140 or identify the locally stored files in other ways. In addition, it should be recognized that a user may specify multiple sources of website content 135 to be utilized in creating or updating an application 160. For example, the user may specify that website content from a variety of different websites may be utilized to create or update a single application. Regardless of how a user identifies the website content 135, some or all of the identified website content 135 may be retrieved over a network 190 (e.g., the Internet) from a website hosting server 130 and stored on a app building server 140 or device that is configured to convert the website content 135 into an application 160 or portion of an application 160.
  • In the case that a user has identified a website that will be used in creating or updating an application 160, a website crawler 230 and site map reader 240 may be utilized to determine the application modules that are to be created (or updated) for an application 160 using the content from the website 145. For example, the website crawler 230 and site map reader 240 may identify one or more web pages that are to be converted into modules for the application 160 or one or more web pages that may be used to update modules that have already been created. In certain embodiments, each module that is created may be associated with a particular web page and populated with the website features included on the associated web page.
  • Generally speaking, a site map is an file (typically, an XML file) that lists the names and URLs for a website along with additional metadata about each URL (e.g., when it was last updated, how often it usually changes, the names or titles of a web page, and how important it is relative to other URLs in the site). Thus, in certain embodiments, the site map reader 240 may scan this file to determine the web pages that are to be converted into modules for the application 160, and may create a separate application module for one or more of the web pages identified in the site map. The names or titles of the web pages may be utilized to name the application modules that are created.
  • The web site crawler 230 may also be utilized to determine the web pages that are to be incorporated into an application 160 or utilized to update an application 160. In certain cases, the web site crawler 230 may be utilized if a site map is unavailable for a particular website, or may be utilize to supplement the data that is extracted from the site map. To determine the web pages that are to be used in creating or updating application modules for an application 160, the web site crawler 230 may initially traverse or crawl the hyperlinks on a website in order to identify the web pages which comprise the website. The website crawler 230 may include a set of crawling rules that determine the scope of the crawling operation. For example, a crawling rule may be included which specifies that only web pages having a particular domain name should be utilized to create or update application modules for the application 160. Another crawling rule may specify that the application 160 should only utilize web pages that are identified by hyperlinks on the index page of a website. Other types of crawling rules may be utilized as well. In certain embodiments, a user may be permitted to select and/or define the crawling rules which are applied. Regardless of which particular crawling rules are applied, the crawling operations of the web site crawler 230 may be utilized to identify web pages that are to be converted into modules for the application 160.
  • After the website integrator 155 has determined the web pages that are to be utilized in creating or updating the application 160, the website analyzer 220 may analyze or scan the website content (e.g., the HTML source code, scripting code, style sheets, multimedia data, or other type of website content) associated with the identified web pages to identify website features. For example, the website analyzer 220 may analyze website content including multimedia content, HTML tags (e.g., <form> tags or <href> tags), event triggers (e.g., onClick HTML event or on MouseOver HTML event), style sheets, scripting code and other types of website content.
  • The website analyzer 220 may utilize a rule set 210 in analyzing the website content to detect the website features. The rule set 210 may represent a set of rules or policies which are utilized to identify website features which are present in the website content. For example, the website analyzer 220 may identify website features such as multimedia content that is displayed on the website, functional website features (e.g., forms, RSS feeds, scrollers, photo galleries, shopping carts, etc.) that are provided by the website, font characteristics for text on the website (e.g., size, style, etc.), titles of web pages or sections of web page, navigation menus utilized by the website, or any other type of website feature that may be displayed on a website. After the scanning operations have been performed, the website integrator 155 may copy particular types of website features (e.g., text and images) into the application 160 or may incorporate equivalent or similar features into the application 160 (e.g., using the preassembled modules).
  • In analyzing the website content 135, the website integrator 155 utilize a variety of different analysis tools (e.g., regular expressions, string querying functions, crawlers, etc.) to detect website features. For example, in order to detect images that are present on a web page, the rule set 210 may include rules which utilize regular expressions or string querying operations to search the website content (e.g., the HTML source code) for particular image file extensions (e.g., .jpg, .gif., or .png) and/or which search the website content for HTML image tags (i.e., <img> tag).
  • Likewise, in order to detect the presence of an input form on a website, the rule set 210 may include one or more rules that may be utilized to search the website content for an input form. For example, the rule set 210 may include rules which define regular expressions (or other searching tools) for detecting the tag associated with the beginning of an input form (i.e., <form> tag) and the tag associated with the end a form (i.e., </form> tag). The rule set 210 may further include rules that search for any HTML input tags (i.e., <input> tags) occurring between the beginning and ending form tags which may identify input elements (e.g., text boxes, check boxes, radio buttons, hidden input elements or other types of input elements) associated with the form.
  • Some or all of the website features detected in the website content may be incorporated into the application 160 that is being created or updated. In certain embodiments, a set of conversion templates may be utilized to convert the website content 135 into different types of applications 160. Separate conversion templates can be provided for converting or translating the website into an HTML 5 application, an iPhone application, an Android application, a NetTV application, a Facebook application, an application for a particular type of kiosk, an application for used in a vehicle device (e.g., car device or plane device), and other types of applications.
  • In some instances, the conversion template 250 may include functions for converting or translating the source code (e.g., HTML and scripting code) associated with a web page or website into another language associated with a particular application type. For example, in that case that website content is being converted into a web application, a conversion template 250 may be utilized for converting the source code into an HTML 5 application that may be executed in a web browser. As another example, in the case that a website is being converted into an iPhone application, a conversion template may be selected for converting the website source code into an application that is written in programming language such as Objective C. This conversion template 250 for converting website source code to an iPhone application may provide instructions for utilizing a development framework, such as the Cocoa Touch API, which is provided to assist developers in constructing applications for the iPhone.
  • A conversion template 250 for a particular type of application may indicate how a website attribute or feature (e.g., text, images, input form, calendar, RSS feed, shopping cart, etc.) which was detected in the website content is to be incorporated into the particular application type associated with the template. For example, the conversion templates 250 may specify rules for directly copying a website feature into an application or for utilizing a preassembled module to incorporate a website feature into an application.
  • The manner in which the website features are incorporated into the application being created may vary depending upon the complexity of the website feature. Less complex website features, such any multimedia data, may be incorporated into the application by copying the data directly into the modules of the application or by including a reference to the multimedia data in the modules. For example, an image can be directly copied into an application 160 by copying the file identified by the “src” attribute within an image tag (i.e., <img> tag). Rather, than copying the image, the application 160 may simply include a reference to the location of the image file as identified by the URL.
  • Likewise, the conversion templates 250 may be able to extract other types of website features (e.g., titles, headings, fonts, etc.) from HTML tags (and their associated attributes) in a relatively simplistic manner by utilizing regular expressions. The extracted information associated with the website feature can then be utilized to define or populate appropriate parameters for an application module. For example, if an application module was created for a web page titled “Homepage”, the title may be extracted from the website content (e.g., by extracting the information between the <title> and </title> tags) and utilized to populate a parameter for naming the application module. Similarly, to determine a font that should be applied to text that has been extracted from a website, the conversion template 250 may define rules for detecting the font tag (i.e., <font>) immediately preceding the text and extracting the relevant attributes of the font tag (e.g., extract the “face” and “size” attributes within the font tag). The extracted attributes that may then be utilized to assign values to parameters or variables for the application 160 which define the font that is to be utilized.
  • In some embodiments, preassembled modules may be utilized for incorporating website features into an application 160. These modules may be particularly useful when incorporating complex or functional website features into an application 160 that is being created or updated. Accordingly, it may be recognized that certain features will commonly be detected on a variety of websites, such as input forms (e.g., which are often found on a contact page of a website or on a survey page of a website), photo galleries, event calendars (e.g., which provide a listing of events along with times and dates for the events), RSS feeds, or product listings (e.g., which list products and/or services that are being sold along with related data such as pricing information and product descriptions). Since these features are common on many websites, preassembled modules may be provided for each of these features for a variety of different application types.
  • For example, in the case of an input form, separate preassembled modules may be provided for adding an input form to HTML 5 application, iPhone application, Android application, NetTV application, Autonet application, or other type of application. If the user 105 was creating an HTML 5 application from the website content, a preassembled module for providing an input form in an HTML 5 application may automatically be selected and added to the user's application in response to the website analyzer 220 detecting an input form on the website. The website content may then be utilized to customize the preassembled module that was added. For example, the name of the particular fields of the input form (e.g., name, email address, comments, etc.) and the attributes of the input fields (e.g., color or size of text boxes) can be customized to mimic the attributes of the input form that was included on the website. This may be performed by extracting information from the attributes of form tags (i.e., <form> tag) or input tags (i.e., <input> tags), or by extracting text that immediately precedes or follows these tags. In doing so, the preassembled module associated with the input form may be customized or tailored to provide an input form for the application which is the same or similar to the form located on the website.
  • As another example, suppose that an event calendar was detected on a website that was being transformed into an iPhone application. In this case, a preassembled event calendar module specifically designed for an iPhone application may be added to the iPhone application being created. Thereafter, the dates and times (and other event information) specified by the event calendar located on the website may be extracted and utilized to populate the preassembled module for the event calendar.
  • Preassembled modules may be provided for nearly any type of website feature. For example, preassembled modules can be provided for shopping carts, photo galleries, video galleries, product listings or any other type of website feature that may be included in an application 160. Likewise, to assist with converting a website into an application 160, any of the preassembled modules can be customized or tailored with the information from the website content in a similar manner to the examples described above.
  • In addition to transforming website content into an application, the conversion templates may also be utilized to convert an application 160 having a first application type into an equivalent or similar application 160 having a second application type. As mentioned above, in certain embodiments, website content may initially be incorporated into a particular type of application 160 (e.g., a web application implemented in HTML 5) and then the user 105 may be provided with options for converting the initial application into other types of applications (e.g., Android application or Autonet applications for vehicles). Thus, after the initial application is generated, the conversion templates may be utilized to convert or translate the initial application 160 into different types of applications 160. To accomplish this, the conversion templates may indicate how application features (e.g., text, images, input forms, calendars, RSS feeds, shopping carts, etc.) which are present in the first application are to be incorporated into a corresponding second application having a different application type. This may be performed in a similar manner to that which is described herein with respect to converting website features into features of an application (e.g., by detecting features of the first application and incorporating the same or similar features into the second application).
  • After all the contents of a website have been incorporated into modules for the application 160, the build tools 270 may permit a user 105 to customize (e.g., add, delete or modify) the application modules and/or website features that have been incorporated into the application 160. This may include modifying the content, appearance or functionality provided by the application modules. The build tools 270 may further permit the user 105 to add new modules that are not derived from the website content 135.
  • Once the user 105 is done customizing the application 160 and the application 160 is finalized, the application distributor 260 may assist the user 105 with distributing the application 160. For example, the application distributor 260 may transmit the application 160 to a target device 120 over a network 190. The application distributor 260 may also be configured to submit the application 160 to one or more application marketplaces that permit individuals to download and/or purchase applications. Exemplary application marketplaces may include the Android Market, the Apple App Store, or any other service that permits users to download and/or purchase applications 160.
  • FIGS. 3A-3C illustrate exemplary interfaces that may be displayed by the application builder 150 to a user 105 in order to permit the user 105 to create or update an application 160. FIG. 3A discloses an exemplary interface 300A that may initially be displayed to a user 105 when the user 105 accesses the application builder 150 (e.g., by accessing a website provided on a app building server 140 which provides the application builder 150 to the user 105). As shown therein, a user 105 may select a first option 301 for creating a new application 160 from scratch, a second option 203 for importing content from an existing website to begin creating an application 160, and a third option 303 for updating an existing application 160.
  • If the user selects the first option 301, the user may be presented with a set of build tools 270 for creating an application. The build tools 270 may permit the user 105 to construct an application 160 in various ways. The build tools 270 may be permit the user 105 to design interfaces for the application and add various types of preassembled modules to the application 160. The build tools 270 may also include application templates that may be customized by the user 105 for designing the application. For example, a user 105 may select an application template for creating an application 160 for a particular type of business (e.g., restaurant, law firm, accounting, construction company, etc.) or for a particular topic or hobby (e.g., a photo album). The application templates may include a plurality of preassembled modules or interfaces.
  • For example, an application template for a law firm may include preassembled modules that provide an About Us module (e.g., which can be customized by the user 105 to provide a description of the firm), Contact module (e.g., which can be customized by the user 105 to provide contact information), an Employee module (e.g., which can be customized to describe the attorneys who work at the firm), a Consultation Form module (e.g., which permits potential clients to fill out an input form designed by the user 105 and to send comments to an email address specified by the user 105), and other types of modules. In customizing these modules, a user 105 may select different options (e.g., using check boxes or radio buttons), enter information into text input fields (e.g., name, contact info, etc.) and/or upload content (e.g., images, videos, etc.) to populate the preassembled modules associated with the application template.
  • If the user 105 selects the second option 302 (i.e., “Import content from existing website”), the user 105 may be presented with an interface that permits the user 105 to identify website content that is to be converted into an application 160. The website content may be located on one or more separate websites. In certain embodiments, a user may identify one or more individual web pages to be utilized in creating the application. The user 105 may also be permitted to enter a particular domain name or identify the index page of a website (or other page of a website) and the website crawler 230 will traverse the links on the website based on a set of crawling rules in order to identify web pages that will be incorporated into an application 160 being constructed. The user 105 may also be permitted to enter a URL that specifies the site map for a website or the site map reader 240 may automatically search for and identify a site map for the website. The site map reader 240 will utilize the information in the site map to determine which web pages are to be incorporated into the application 160. Once the website integrator 155 identifies the web pages that are to be incorporated into the application 160, a separate module or interface may be established for one or more of the web pages and the modules may be populated with features which are the same or similar to those included on the web pages. In some cases, preassembled modules may be utilized to facilitate the incorporation of particular website features.
  • If the third option 303 (i.e., “Update Existing Application”) is selected, the user 105 may be presented with a list of one or more applications 160 that the user 105 had previously created or had begun creating. The user 105 may then select an application 160 from the list, and utilize the build tools 270 to update or modify the selected application 160. The user 105 may also be provided with an selection for identifying website content that should be utilized to supplement the existing application 160. If user 105 opts to supplement the application 160 with website content, the user 105 may identify the website content in the same manner described above.
  • FIG. 3B illustrates an exemplary interface 300B that may be displayed by the application builder 150 to a user 105 after the website integrator 155 has created application modules from website content that was identified by the user 105. In the exemplary interface 300B, the website analyzer 220 scanned a website for a construction company which included four web pages: an About Us page (e.g., which may also be the homepage or other web page describing the company), a Contact page, a Photo Gallery page (e.g., showing photos of completed construction projects), and a Services page (e.g., which describes the services performed by the construction company). As a result, the website integrator 155 created four modules (i.e., an About Us module, a Contact Page module, a Photo Gallery module and a Services module) for the application 160. Each of four web pages may have been identified by either the website crawler 230 or the site map reader 240.
  • In certain cases, the conversion templates may specify that each of the modules created by the application builder 150 are to be named based on the title of the web page (e.g., which is located between the <title> and </title> tags in the website content) or headings found on the web page (e.g., which may be specified using the <h1> tag or other heading tags). In other embodiments, the modules may be named based on the information in a site map for the web site which specifies the name of the web page.
  • The interface 300B includes two primary windows: a page detail window 320 and a simulation window 330. The simulation window 330 illustrates how the application 160 being created will appear and function when the application 160 is downloaded and/or installed on a target device 120 or executed on a target device 120. For example, the simulation window 330 may display the interfaces that will be displayed when the application 160 is executed on a target device 120. The interface displayed in the simulation window 330 in FIG. 3B may represent the home menu for an application that permits an individual to select or access different modules for the application. The user 105 may select (e.g., with a mouse or by tapping a touch screen) the icons in the simulation window 330 in order to access or view the interface that would be displayed on a target device 120 if that particular icon had been selected. For example, clicking on the camera icon would cause the simulation window 330 to display the photo gallery page in the same or similar manner as it would be displayed on a target device 160.
  • The page detail window 320 provides a list of buttons (i.e., About Us button 320A, Contact page button 320B, Photo Gallery button 320C, and Services button 320D), each of which is associated with a particular application module that has been created for the application 160. The buttons 320A-320D correspond to the icons in the simulation window 330. Each one of the button includes a remove option 321 that permits a user to delete the entire application module. Assuming the user 105 does not wish to delete an application module, the user 105 may click on or otherwise select a button in the page detail window 320 in order to edit the contents of the associated module. For example, if the user clicked on the About Us button 320A, the user 105 may be presented with a form (e.g., which included text boxes, radio buttons, check boxes, etc.) that permits the user to edit the text and images displayed on the About Us page of the application 160. Likewise, if the user 105 clicked on the Photo Gallery button 320C, the user 105 may be presented with a form that permits the user to upload new photos to the gallery or delete existing photos in the gallery, or to make other types of modifications to the Photo Gallery module (e.g., such as changing the heading or text). Selecting a button 320A-320D may also permit the user 105 to modify the titles 335, fonts, color schemes, headings, alignment settings and other aspects of the application modules.
  • Each of the modules that have been created may be associated with a particular web page of the website that may be utilized to populate the content for the module. For example, in generating the About Us module, the website integrator 155 may extract text, hyperlinks, images, and other content from the About Us page on the website and incorporate this content into the About Us module. As explained above, the content from the website may also be utilized to populate portions of preassembled modules used for constructing certain types of modules. For example, the application builder 150 may include a preassembled module for providing a photo gallery. Thus, if the website analyzer 220 detects a photo gallery web page, a preassembled photo gallery module can utilized to create a photo gallery for the application 160. Initially, the preassembled module may already include functionality for displaying a photo gallery but may not include any images to be displayed in the photo gallery. Thus, the images from the photo gallery on the website can be extracted and utilized to populate the preassembled module for the photo gallery.
  • FIG. 3C illustrates an exemplary interface 300C that may be displayed in response to a user 105 selecting the contact icon in the simulation window 330. In response to a user selecting the contact icon in the simulation window 330, the simulation window 330 may display the contact module that has been populated by the website integrator 155 with content from the Contact page on the construction website. FIG. 4 illustrates a corresponding web page 400 for the construction company which served as a basis for creating and populating the Contact module for the application 160 which is displayed in the simulation window 330 of FIG. 3C.
  • The text on the Contact page 400 of the website provides contact information (e.g., street address, email address, phone number, etc.) for the construction company. The browser rendering the website may include a title bar 410 that displays the name of the company or other information. The web page 400 includes a heading 431, a menu 450 of hyperlinks, and an input form 430 that permits individuals to send comments to the company (e.g., the input provided to the form may be emailed to the company associated with the website). The input form 430 includes a first input field 435A for providing a name, a second input field 435B for providing an email address, and a third input field 435C for specifying comments. After the user 105 has filled out the form 430, the user may press the “Submit” button to send the contents of the form to the company (e.g., via email).
  • The Contact module derived from the Contact page may represent a preassembled module for creating a contact page that has been populated with website features that were detected by the website analyzer. Before being populated with the website features, the preassembled contact module may reserve variables for specifying certain features, namely the module title, text that is displayed by the module, and links on a menu that is displayed by the module. The preassembled contact module may also include function for creating a contact form.
  • One or more conversion templates may be utilized to populate the variables of the preassembled contact module. For example, the variable associated with display text may be populated with contact information (e.g., the address, phone number and email) that was displayed on the web page 400. To accomplish this, the website analyzer 220 may utilize the rule set 210 to detect the text that is displayed on the web page 400 and may further utilize a conversion template to copy the text to the appropriate variable associated with the preassembled contact module. The title 331 or name of the module was determined by the heading 431 which was specified on the website (in other cases the title bar 410 may serve as the basis for naming the module). To accomplish this, the website analyzer 220 may utilize the rule set 210 to detect the heading that is displayed on the web page 400 (e.g., by detecting the text that is associated with the <h1> tag) and may further utilize a conversion template to copy the heading to the appropriate variable associated with the preassembled contact module.
  • Similarly, a menu 333 displayed at the bottom of the module includes similar links to the menu 450 that was displayed on the web page 400 (although the links are not shown in detail in FIG. 3C). To accomplish this, the website analyzer 220 may utilize the rule set 210 to detect the menu 450 displayed on the web page 400 (e.g., by detecting hyperlinks and the associated <a href> tags) and may further utilize a conversion template to populate variables associated with the preassembled contact module. The variables may define the name of the menu items (e.g., About Us, Photo Gallery, Contact Page and Services) which are displayed on the menu 330 and the URLs associated with the with menu items. In some cases, the conversion template extract the “href” attribute associated with the hyperlink tag to specify URLs that should be associated with the menu items in the module menu 333. In other cases, the conversion template may associate the menu items with internal links to other application modules that have been created for the application.
  • The Contact module also includes the contact form 430 that was displayed on the web page 400. In order to incorporate the contact form 430 into the Contact module, the website analyzer 220 may search the website content (e.g., utilizing regular expressions and/or string querying operations) for particular types of HTML tags (e.g., <form> tags and <input> tags) that are associated with the form in accordance with the rule set 210. The conversion template may provide this information (e.g., which indicates the number of input fields, the type of input fields, the names of the input fields, etc.) to a function that generates an equivalent or similar form. The conversion template may determine that the contents of the module contact form should be sent to the same destination (e.g., e-mail address) that was specified by the “action” attribute of the form tag (i.e., <form>) in the website content for the web page 400.
  • After the website content is converted to application content, the build tools 270 provided by the application builder 150 may permit a user 105 to modify the modules that have been created by the website integrator 155. The build tools 270 may also permit the user to add additional modules to the application 160. For example, if the user 105 desired to add a module to the application 160 that was not derived from the website content, the user 150 may click on a button 310 to create a new page or module. In order to allow the user 105 to quickly create a module, the user may be permitted to select from a plurality of preassembled modules. For example, the user 105 can select a preassembled module for creating an image gallery, a links page, a contact page, an RSS feed and other types of pages or modules. The user 105 may then customize the module by filling out a form (e.g., which include text boxes, radio buttons, or other HTML input elements) and/or uploading multimedia data to populate the contents of the module.
  • As mentioned above, the application distributor 260 may be configured to assist a user 105 in distributing an application 160 to a target device 120 and/or an application marketplace that permits individuals to download or purchase applications 160. In certain embodiments, an application marketplace may be provided by a app building server 140 that was utilized to create and/or update the application. In other embodiments, the application marketplace may be provided by a server which is located remotely or externally from the app building server 140.
  • Moving on, FIG. 5 illustrates an exemplary method 500 for creating or updating an application 160 (or portion thereof) using website content in accordance with certain embodiments. A user 105 may select an option for creating or updating an application using website content 135 (step 510). For example, a user 105 may select a button or link that permits the user 105 to create a new application using the content of one or more websites (e.g., similar to the second option 302 in FIG. 3A), or to supplement a pre-existing application with the content of from one or more websites (e.g., similar to the third option 303 in FIG. 3A). In certain embodiments, the interface providing the options may be provided to the user over a network 190 from a app building server 140 or by an application running on a personal computing device 110.
  • The URL of the website content may be provided by the user 105 to identify a website that is to be utilized in creating the application 160 (step 520). For example, the user 105 may input the URL for the index page for the website or the URL for the site map for the website. If the user desires, a plurality of URLs may be submitted (e.g., in the case where multiple websites are being incorporated into an application 160 that is being constructed). It should be noted that in other embodiments, the user may identify one or more individual web pages that may be utilized in creating or updating an application (rather than identifying an entire website).
  • After the user 105 specifies a URL, a check may be performed to determine whether or not the URL that was submitted is a valid URL (step 530). For example, a check may be performed to determine whether the URL actually identifies a web page or whether the URL has been typed improperly. If the URL submitted by the user 105 is not valid, then the method 500 proceeds back to step 520 and the user 105 may once again be prompted to enter another URL.
  • Assuming that the URL which was submitted is valid, one or more web pages are identified that are to be converted into modules for application (step 540). This may involve identifying a site map (either automatically or by input from a user) and processing or scanning the site map (e.g., using the site map reader 240) to determine the web pages that are to be converted into modules for the application 160. Some or all of the web pages identified in the site map may be converted into modules for the application 160. Identifying web pages that are to be converted into modules for the application 160 may also involve crawling or scanning a website 160 (e.g., using website crawler 230) to identify the web pages that comprise the website. This may include crawling the hyperlinks on a website based on a set of crawling rules as described above.
  • Regardless of how the web pages which are to be converted into application modules are identified, the web site content 135 associated with the identified web pages may be analyzed in accordance with a rule set 210 to detect website features associated with the web pages (step 550). In certain embodiments, this may be performed by the website analyzer 220 described above. The website content that is analyzed may include multimedia data, HyperText Markup Language (HTML) code and tags (and tag attributes), event triggers, style sheets, scripting code and any other data associated with a website or web page. Based on the analysis of the website content, one or more website features may be detected.
  • The website features that are detected by analyzing the website content may encompass nearly any feature that may be displayed on a web page. For example, the website features may include multimedia data (e.g., text, images, video, audio recordings, etc.) that is displayed on the web pages. The detected website features also include menus, input forms, social media links (e.g., links to web pages on social networks such as Facebook™, Twitter™ or LinkedIn™), photo galleries, shopping carts, event calendars, RSS feeds, product listings, hyperlinks, web page titles, web page headings, blogs, contact lists, or other features that are displayed on a web page.
  • The website features may then be incorporated into the modules that are being created or updated (step 560). One or more conversion templates may be utilized to incorporate the website features into the application 160. In certain embodiments, separate application modules may be constructed for each of the web pages that were identified using the site map or crawling operations described above. The application module created for a particular web page may be customized to incorporate the multimedia data included on the web page, along with any other website feature (e.g., input forms, hyperlinks, photo galleries, etc.) that is included on the web page.
  • In certain embodiments, to facilitate the construction of the application modules, preassembled modules may be populated with multimedia content from a web page. For example, a module for a photo gallery may be populated with images extracted from a web page if a photo gallery was detected on the web page, or a module for an event calendar may be populated with event data (e.g., event name, date, time, etc.) extracted from a web page if an event calendar was detected on the web page. Other types of preassembled modules may also be utilized.
  • Once the application modules are derived from the website content 135, the user 105 utilizing the application builder 150 to construct the application 160 may also be provided with a set of build tools 270 that permit the user 105 to edit the application modules, and to supplement the application 160 with additional modules (step 570). As explained above, the build tools 270 may permit the user 105 to edit the application modules associated with an application 160 in various ways. For example, the build tools 270 may permit the user 105 to modify (e.g., add, delete, edit) multimedia data displayed on the interfaces associated with the application modules, and to supplement the interfaces to include nearly any type of website feature (e.g., input forms, calendars, RSS feeds, etc.).
  • While there have shown and described and pointed out various novel features of the invention as applied to particular embodiments thereof, it will be understood that various omissions and substitutions and changes in the form and details of the systems and methods described and illustrated, may be made by those skilled in the art without departing from the spirit of the invention. Amongst other things, the steps shown in the methods may be carried out in a different orders in many cases where such may be appropriate. Those skilled in the art will recognize, based on the above disclosure and an understanding therefrom of the teachings of the invention, that the particular hardware and devices that are part of the system described herein, and the general functionality provided by and incorporated therein, may vary in different embodiments of the invention. Accordingly, the particular system components shown in the figures are for illustrative purposes to facilitate a full and complete understanding and appreciation of the various aspects and functionality of particular embodiments of the invention as realized in system and method embodiments thereof. Those skilled in the art will appreciate that the invention can be practiced in other than the described embodiments, which are presented for purposes of illustration and not limitation.

Claims (29)

What is claimed is:
1. A method for creating or updating a mobile application using website content, comprising:
receiving an input that identifies a site map file that includes uniform resource locators and metadata associated with website content for a website;
examining the site map file to identify one or more web pages to be utilized in creating or updating a web application that can be converted to the mobile application;
analyzing, with a processor, the web pages identified using the site map file in accordance with a rule set to detect website features within the website content;
utilizing a first conversion template to create the web application, the first conversion template including functions for selecting one or more application modules that correspond to the web pages identified using the site map file and incorporating the detected website features into the one or more application modules associated with the web application;
transmitting data for displaying a list of application types;
receiving a selection that identifies an application type for the mobile application;
selecting a second conversion template based on the identified application type specified by the selection, the second conversion template including functions for converting the web application into the mobile application having the identified application type; and
applying, with a processor, the second conversion template to incorporate application features associated with the web application into the mobile application being created or updated.
2. The method of claim 1, wherein the method further comprises:
crawling hyperlinks specified in the website content in accordance with a set of crawling rules to identify at least one additional web page, wherein the crawling rules determine a scope of a crawling operation carried out on hyperlinks specified in the website content, the crawling operation being applied to identify the web pages that are to be used in creating or updating the web application.
3. The method of claim 2, wherein the crawling rules limit the scope of the crawling operation to include web pages that are identified by hyperlinks pointing to a particular domain name.
4. The method of claim 2, wherein the crawling rules limit the scope of the crawling operation to include web pages identified by hyperlinks included on an index page of a website.
5. The method of claim 1, further comprising:
analyzing the website content with the rule set to detect a website feature selected from the group consisting of:
multimedia data;
an input form;
a photo gallery;
a video gallery;
a blog;
a social media link;
a RSS feed;
an Atom feed;
an event calendar; and
a shopping cart.
6. The method of claim 1, further comprising:
populating a preassembled module with multimedia data to incorporate at least one website feature into the one or more application modules.
7. The method of claim 1, further comprising:
providing a set of build tools to permit a user to modify the one or more application modules and website features.
8. The method of claim 1, wherein analyzing the website content includes analyzing HTML source code, scripting code or CSS style sheet data to detect the website features associated with the website content.
9. The method of claim 1, further comprising:
transmitting data for rendering a manager interface that provides a list of the one or more application modules; and
receiving a selection via the manager interface to modify an interface associated with the one or more application modules.
10. The method of claim 1, further comprising:
transmitting data for rendering a simulation window that simulates how the detected website features are to be displayed on interfaces associated with the one or more application modules when the mobile application is executed on a target device.
11. The method of claim 1, wherein the second conversion template includes instructions for utilizing an application development framework associated with a particular type of mobile application or particular target device.
12. The method of claim 1, further comprising:
receiving an input that identifies supplementary website content to be utilized in updating the mobile application;
analyzing the supplementary website content with the rule set to detect additional website features;
updating the one or more of the selected application modules with the additional website features; and
generating updated compiled data for the mobile application.
13. The method of claim 1, wherein the one or more application modules are each configured to provide a separate interface for the mobile application that corresponds to one of the identified web pages.
14. The method of claim 1, wherein the first conversion template includes functions for adding pre-assembled modules to the web application based on detected web page types.
15. The method of claim 14, wherein each of the application modules are pre-assembled application modules that are configured to implement an interface corresponding to a particular web page type and the method further comprises at least one of:
selecting a pre-assembled application module associated with implementing an contact page interface in response to identifying a web page that provides contact information;
selecting a pre-assembled application module associated with implementing a photo gallery interface in response to identifying a web page that provides a photo gallery;
selecting a pre-assembled application module associated with implementing a product listing interface in response to identifying a web page that provides a listing of products or services; or
selecting a pre-assembled application module associated with implementing a shopping cart interface in response to identifying a web page that provides a shopping cart.
16. The method of claim 15, further comprising:
populating variables associated with the selected pre-assembled application module to customize a corresponding interface in a manner that incorporates the website features detected on the web page.
17. The method of claim 1, wherein the first conversion template includes rules for adding pre-assembled modules to the web application and the method further comprises:
applying the first conversion template for selecting at least one pre-assembled application module to be added to the web application;
adding the at least one selected pre-assembled application module to the web application being created or updated in response to detecting a particular web page type or functional feature; and
populating variables of the at least one selected pre-assembled application module to customize one or more interfaces associated with the at least one selected pre-assembled application module.
18. A system for creating or updating a mobile application using website content, comprising:
a processor configured to:
receive an input that identifies a site map file that includes uniform resource locators and metadata associated with website content for a website;
examine the site map file to identify one or more web pages to be utilized in creating or updating a web application that can be converted to the mobile application;
analyze the web pages identified using the site map file in accordance with a rule set to detect website features within the website;
utilize a first conversion template to create the web application, the first conversion template including functions for selecting one or more application modules that correspond to the web pages identified using the site map file and incorporating the detected website features into one or more application modules associated with the web application;
transmit data for displaying a list of application types;
receive a selection that identifies an application type for the mobile application;
select a second conversion template based on the identified application type specified by the selection, the second conversion template including functions for converting the web application into the mobile application having the identified application type; and
apply the second conversion template to incorporate application features associated with the web application into the mobile application being created or updated.
19. The system of claim 18, wherein the processor is further configured to crawl hyperlinks specified in the website content in accordance with a set of crawling rules to identify at least one additional web page, wherein the crawling rules determine a scope of a crawling operation carried out on hyperlinks specified in the website content, the crawling operation being applied to identify the web pages that are to be used in creating or updating the web application.
20. The system of claim 19, wherein the crawling rules limit the scope of the crawling operation to include web pages that are identified by hyperlinks pointing to a particular domain name.
21. The system of claim 19, wherein the crawling rules limit the scope of the crawling operation to include web pages identified by hyperlinks included on an index page of a website.
22. The system of claim 18, the website content is analyzed with the rule set to detect a website feature selected from the group consisting of:
multimedia data;
an input form;
a photo gallery;
a video gallery;
a blog;
a social media link;
a RSS feed;
an Atom feed;
an event calendar; and
a shopping cart.
23. The system of claim 18, wherein a preassembled module is populated with multimedia data to incorporate at least one website feature into the one or more application modules.
24. The system of claim 18, wherein a set of build tools are provided to permit a user to modify the one or more application modules and website features.
25. The system of claim 18, wherein analyzing the website content includes analyzing HTML source code, scripting code, or CSS style sheet data to detect the website features associated with the website content.
26. A non-transitory computer storage medium comprising program instructions for creating or updating a mobile application using website content, wherein the program instructions, when executed on a computer, cause the computer to:
receive an input that identifies a site map file that includes uniform resource locators and metadata associated with website content for a website;
examine the site map file to identify one or more web pages to be utilized in creating or updating a web application that can be converted to the mobile application;
analyze the web pages identified using the site map file in accordance with a rule set to detect website features within the website content;
utilize a first conversion template to create the web application, the first conversion template including functions for selecting one or more application modules that correspond to the web pages identified using the site map file and incorporating the detected website features into one or more application modules associated with the web application;
transmit data for displaying a list of application types;
receive a selection that identifies an application type for the mobile application;
select a second conversion template based on the identified application type specified by the selection, the second conversion template including functions for converting the web application into the mobile application having the identified application type; and
apply the second conversion template to incorporate application features associated with the web application into the mobile application being created or updated.
27. The computer storage medium of claim 26, wherein the program instructions further cause the computer to crawl hyperlinks specified in the website content in accordance with a set of crawling rules to identify at least one additional web page, wherein the crawling rules determine a scope of a crawling operation carried out on hyperlinks specified in the website content, the crawling operation being applied to identify the web pages that are to be used in creating or updating the web application.
28. The computer storage medium of claim 27, wherein the crawling rules limit the scope of the crawling operation to include web pages that are identified by hyperlinks pointing to a particular domain name.
29. The computer storage medium of claim 27, wherein the crawling rules limit the scope of the crawling operation to include web pages identified by hyperlinks included on an index page of a website.
US14/559,780 2013-03-14 2014-12-03 Systems and methods for creating or updating an application using website content Abandoned US20150089339A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/559,780 US20150089339A1 (en) 2013-03-14 2014-12-03 Systems and methods for creating or updating an application using website content

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US13/831,111 US20140281886A1 (en) 2013-03-14 2013-03-14 Systems and methods for creating or updating an application using website content
US13/831,125 US20140282371A1 (en) 2013-03-14 2013-03-14 Systems and methods for creating or updating an application using a pre-existing application
US13/922,944 US8788935B1 (en) 2013-03-14 2013-06-20 Systems and methods for creating or updating an application using website content
US14/559,780 US20150089339A1 (en) 2013-03-14 2014-12-03 Systems and methods for creating or updating an application using website content

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US13/831,111 Continuation US20140281886A1 (en) 2013-03-14 2013-03-14 Systems and methods for creating or updating an application using website content

Publications (1)

Publication Number Publication Date
US20150089339A1 true US20150089339A1 (en) 2015-03-26

Family

ID=51178068

Family Applications (3)

Application Number Title Priority Date Filing Date
US13/831,111 Abandoned US20140281886A1 (en) 2013-03-14 2013-03-14 Systems and methods for creating or updating an application using website content
US13/922,944 Active US8788935B1 (en) 2012-06-20 2013-06-20 Systems and methods for creating or updating an application using website content
US14/559,780 Abandoned US20150089339A1 (en) 2013-03-14 2014-12-03 Systems and methods for creating or updating an application using website content

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US13/831,111 Abandoned US20140281886A1 (en) 2013-03-14 2013-03-14 Systems and methods for creating or updating an application using website content
US13/922,944 Active US8788935B1 (en) 2012-06-20 2013-06-20 Systems and methods for creating or updating an application using website content

Country Status (2)

Country Link
US (3) US20140281886A1 (en)
WO (1) WO2014160095A1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110471657A (en) * 2018-05-11 2019-11-19 北京三快在线科技有限公司 The generation method and device of Website page
US10496381B2 (en) * 2017-11-27 2019-12-03 Microsoft Technology Licensing, Llc Progressive web app auto-ingestion
US11347500B2 (en) 2020-06-17 2022-05-31 Bank Of America Corporation Software code converter for resolving conflicts during code development
US11573775B2 (en) 2020-06-17 2023-02-07 Bank Of America Corporation Software code converter for resolving redundancy during code development
US11782685B2 (en) 2020-06-17 2023-10-10 Bank Of America Corporation Software code vectorization converter
US11895138B1 (en) * 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof

Families Citing this family (188)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012054786A1 (en) 2010-10-20 2012-04-26 Playspan Inc. Flexible monetization service apparatuses, methods and systems
US9134964B2 (en) 2011-04-06 2015-09-15 Media Direct, Inc. Systems and methods for a specialized application development and deployment platform
US8261231B1 (en) 2011-04-06 2012-09-04 Media Direct, Inc. Systems and methods for a mobile application development and development platform
US10438176B2 (en) 2011-07-17 2019-10-08 Visa International Service Association Multiple merchant payment processor platform apparatuses, methods and systems
US10318941B2 (en) 2011-12-13 2019-06-11 Visa International Service Association Payment platform interface widget generation apparatuses, methods and systems
US10096022B2 (en) * 2011-12-13 2018-10-09 Visa International Service Association Dynamic widget generator apparatuses, methods and systems
US9953378B2 (en) * 2012-04-27 2018-04-24 Visa International Service Association Social checkout widget generation and integration apparatuses, methods and systems
US11188509B2 (en) 2012-02-20 2021-11-30 Wix.Com Ltd. System and method for generating a visual data structure associated with business information based on a hierarchy of components
US9639507B2 (en) * 2012-11-26 2017-05-02 Intuit Inc. Method and system for providing a net effect platform for developing and correcting screen scraping parser scripts
TWI501137B (en) * 2012-12-11 2015-09-21 Inst Information Industry Editing system, method of interactive page templates and storage medium thereof
CN104035753B (en) * 2013-03-04 2018-11-02 优视科技有限公司 A kind of method and system of double WebView displayings customized web pages
US9880983B2 (en) * 2013-06-04 2018-01-30 X1 Discovery, Inc. Methods and systems for uniquely identifying digital content for eDiscovery
US9164877B2 (en) * 2013-06-21 2015-10-20 Sap Se Business application inspection and modification
US9858321B2 (en) 2013-09-20 2018-01-02 Oracle International Corporation Accessing application services from forms
US9588742B2 (en) 2013-09-20 2017-03-07 Oracle International Corporation Rule-based automatic class generation from a JSON message
US10127023B2 (en) * 2013-09-20 2018-11-13 Oracle International Corporation Computer-aided development of native mobile application code
US20150149582A1 (en) * 2013-11-25 2015-05-28 International Business Machines Corporation Sending mobile applications to mobile devices from personal computers
CN105208442B (en) * 2014-06-27 2018-06-26 贝壳网际(北京)安全技术有限公司 A kind of video broadcasting method and device of video playing application program
US20160026366A1 (en) * 2014-07-22 2016-01-28 Runfeng LUAN Method and system for customizing mobile terminal application
US9729583B1 (en) 2016-06-10 2017-08-08 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US10191889B2 (en) * 2014-07-29 2019-01-29 Board Of Regents, The University Of Texas System Systems, apparatuses and methods for generating a user interface by performing computer vision and optical character recognition on a graphical representation
US9524089B1 (en) * 2014-10-30 2016-12-20 Amazon Technologies, Inc. Common web component
US9448776B1 (en) 2015-01-08 2016-09-20 AppNotch LLC Method and apparatus for converting a website into a native mobile application
US9672032B2 (en) * 2015-02-04 2017-06-06 Sap Se Mobile enabled application
US11216468B2 (en) 2015-02-08 2022-01-04 Visa International Service Association Converged merchant processing apparatuses, methods and systems
US9645814B1 (en) * 2015-05-04 2017-05-09 Amazon Technologies, Inc. Generating and publishing applications for multiple platforms
US9757900B2 (en) * 2015-05-20 2017-09-12 Xerox Corporation Pin-actuated printhead
BR112018002054A2 (en) 2015-07-30 2018-09-18 Wix.Com Ltd. system, website creation system, and method
EP3329398A4 (en) * 2015-07-30 2018-07-25 Wix.com Ltd. System integrating a mobile device application creation, editing and distribution system with a website design system
US9514205B1 (en) * 2015-09-04 2016-12-06 Palantir Technologies Inc. Systems and methods for importing data from electronic data files
US10706447B2 (en) 2016-04-01 2020-07-07 OneTrust, LLC Data processing systems and communication systems and methods for the efficient generation of privacy risk assessments
US20220164840A1 (en) 2016-04-01 2022-05-26 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11004125B2 (en) 2016-04-01 2021-05-11 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11244367B2 (en) 2016-04-01 2022-02-08 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
WO2017203521A1 (en) * 2016-05-22 2017-11-30 Fornova Ltd. System and method for automatic detection and filling of online calendars
US11328092B2 (en) 2016-06-10 2022-05-10 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US10706379B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems for automatic preparation for remediation and related methods
US10565161B2 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for processing data subject access requests
US10776517B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Data processing systems for calculating and communicating cost of fulfilling data subject access requests and related methods
US10592648B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Consent receipt management systems and related methods
US11520928B2 (en) 2016-06-10 2022-12-06 OneTrust, LLC Data processing systems for generating personal data receipts and related methods
US11651104B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Consent receipt management systems and related methods
US11651106B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11057356B2 (en) 2016-06-10 2021-07-06 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US10606916B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10592692B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Data processing systems for central consent repository and related methods
US11544667B2 (en) 2016-06-10 2023-01-03 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11151233B2 (en) 2016-06-10 2021-10-19 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11354435B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US10740487B2 (en) 2016-06-10 2020-08-11 OneTrust, LLC Data processing systems and methods for populating and maintaining a centralized database of personal data
US10726158B2 (en) 2016-06-10 2020-07-28 OneTrust, LLC Consent receipt management and automated process blocking systems and related methods
US10242228B2 (en) 2016-06-10 2019-03-26 OneTrust, LLC Data processing systems for measuring privacy maturity within an organization
US10353673B2 (en) 2016-06-10 2019-07-16 OneTrust, LLC Data processing systems for integration of consumer feedback with data subject access requests and related methods
US11200341B2 (en) 2016-06-10 2021-12-14 OneTrust, LLC Consent receipt management systems and related methods
US10839102B2 (en) 2016-06-10 2020-11-17 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US11416589B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10762236B2 (en) 2016-06-10 2020-09-01 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10284604B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing and scanning systems for generating and populating a data inventory
US10318761B2 (en) 2016-06-10 2019-06-11 OneTrust, LLC Data processing systems and methods for auditing data request compliance
US11295316B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US11586700B2 (en) 2016-06-10 2023-02-21 OneTrust, LLC Data processing systems and methods for automatically blocking the use of tracking tools
US11392720B2 (en) 2016-06-10 2022-07-19 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11222142B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for validating authorization for personal data collection, storage, and processing
US10997315B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11228620B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10496846B1 (en) 2016-06-10 2019-12-03 OneTrust, LLC Data processing and communications systems and methods for the efficient implementation of privacy by design
US10706174B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems for prioritizing data subject access requests for fulfillment and related methods
US11403377B2 (en) 2016-06-10 2022-08-02 OneTrust, LLC Privacy management systems and methods
US11461500B2 (en) 2016-06-10 2022-10-04 OneTrust, LLC Data processing systems for cookie compliance testing with website scanning and related methods
US10796260B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Privacy management systems and methods
US11188862B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Privacy management systems and methods
US10282559B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US10169609B1 (en) 2016-06-10 2019-01-01 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11675929B2 (en) 2016-06-10 2023-06-13 OneTrust, LLC Data processing consent sharing systems and related methods
US11210420B2 (en) 2016-06-10 2021-12-28 OneTrust, LLC Data subject access request processing systems and related methods
US10510031B2 (en) 2016-06-10 2019-12-17 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US11074367B2 (en) 2016-06-10 2021-07-27 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US10642870B2 (en) 2016-06-10 2020-05-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US10798133B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10706176B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data-processing consent refresh, re-prompt, and recapture systems and related methods
US11146566B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11087260B2 (en) 2016-06-10 2021-08-10 OneTrust, LLC Data processing systems and methods for customizing privacy training
US10509894B2 (en) 2016-06-10 2019-12-17 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11134086B2 (en) 2016-06-10 2021-09-28 OneTrust, LLC Consent conversion optimization systems and related methods
US10909488B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Data processing systems for assessing readiness for responding to privacy-related incidents
US11410106B2 (en) 2016-06-10 2022-08-09 OneTrust, LLC Privacy management systems and methods
US10776518B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Consent receipt management systems and related methods
US10873606B2 (en) 2016-06-10 2020-12-22 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10846433B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing consent management systems and related methods
US10282700B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11100444B2 (en) 2016-06-10 2021-08-24 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US11475136B2 (en) 2016-06-10 2022-10-18 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US10503926B2 (en) 2016-06-10 2019-12-10 OneTrust, LLC Consent receipt management systems and related methods
US11343284B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US11238390B2 (en) 2016-06-10 2022-02-01 OneTrust, LLC Privacy management systems and methods
US11294939B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US10713387B2 (en) 2016-06-10 2020-07-14 OneTrust, LLC Consent conversion optimization systems and related methods
US11416590B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11138299B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10706131B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems and methods for efficiently assessing the risk of privacy campaigns
US11416109B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US11188615B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Data processing consent capture systems and related methods
US11438386B2 (en) 2016-06-10 2022-09-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11157600B2 (en) * 2016-06-10 2021-10-26 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10769301B2 (en) 2016-06-10 2020-09-08 OneTrust, LLC Data processing systems for webform crawling to map processing activities and related methods
US10454973B2 (en) 2016-06-10 2019-10-22 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10607028B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US11636171B2 (en) 2016-06-10 2023-04-25 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10585968B2 (en) 2016-06-10 2020-03-10 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11336697B2 (en) 2016-06-10 2022-05-17 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10803200B2 (en) 2016-06-10 2020-10-13 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US10565397B1 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11144622B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Privacy management systems and methods
US10878127B2 (en) 2016-06-10 2020-12-29 OneTrust, LLC Data subject access request processing systems and related methods
US10783256B2 (en) 2016-06-10 2020-09-22 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US11222309B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10565236B1 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11562097B2 (en) 2016-06-10 2023-01-24 OneTrust, LLC Data processing systems for central consent repository and related methods
US11366909B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11222139B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems and methods for automatic discovery and assessment of mobile software development kits
US10416966B2 (en) 2016-06-10 2019-09-17 OneTrust, LLC Data processing systems for identity validation of data subject access requests and related methods
US10848523B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10944725B2 (en) 2016-06-10 2021-03-09 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US10949565B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10572686B2 (en) 2016-06-10 2020-02-25 OneTrust, LLC Consent receipt management systems and related methods
US10496803B2 (en) 2016-06-10 2019-12-03 OneTrust, LLC Data processing systems and methods for efficiently assessing the risk of privacy campaigns
US11227247B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US10885485B2 (en) 2016-06-10 2021-01-05 OneTrust, LLC Privacy management systems and methods
US10853501B2 (en) 2016-06-10 2020-12-01 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11023842B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US11481710B2 (en) 2016-06-10 2022-10-25 OneTrust, LLC Privacy management systems and methods
US11025675B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US10614247B2 (en) 2016-06-10 2020-04-07 OneTrust, LLC Data processing systems for automated classification of personal information from documents and related methods
US10586075B2 (en) 2016-06-10 2020-03-10 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US10909265B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Application privacy scanning systems and related methods
US11354434B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11727141B2 (en) 2016-06-10 2023-08-15 OneTrust, LLC Data processing systems and methods for synching privacy-related user consent across multiple computing devices
US10997318B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for generating and populating a data inventory for processing data access requests
US11301796B2 (en) 2016-06-10 2022-04-12 OneTrust, LLC Data processing systems and methods for customizing privacy training
US10949170B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for integration of consumer feedback with data subject access requests and related methods
US10776514B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Data processing systems for the identification and deletion of personal data in computer systems
US10467432B2 (en) 2016-06-10 2019-11-05 OneTrust, LLC Data processing systems for use in automatically generating, populating, and submitting data subject access requests
US11416798B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US11341447B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Privacy management systems and methods
US11366786B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing systems for processing data subject access requests
US11625502B2 (en) 2016-06-10 2023-04-11 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US11418492B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US11038925B2 (en) 2016-06-10 2021-06-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10896394B2 (en) 2016-06-10 2021-01-19 OneTrust, LLC Privacy management systems and methods
US10708305B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Automated data processing systems and methods for automatically processing requests for privacy-related information
US11277448B2 (en) 2016-06-10 2022-03-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11138242B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US10685140B2 (en) 2016-06-10 2020-06-16 OneTrust, LLC Consent receipt management systems and related methods
US10678945B2 (en) 2016-06-10 2020-06-09 OneTrust, LLC Consent receipt management systems and related methods
US10509920B2 (en) 2016-06-10 2019-12-17 OneTrust, LLC Data processing systems for processing data subject access requests
BR112019001343A2 (en) * 2016-07-27 2019-04-30 Wix.Com Ltd. website creation system and method for a website creation system
EP3282374A1 (en) 2016-08-17 2018-02-14 Palantir Technologies Inc. User interface data sample transformer
US10664336B2 (en) * 2016-09-28 2020-05-26 International Business Machines Corporation System, method and computer program product for adaptive application log analysis
US10007490B1 (en) * 2016-12-14 2018-06-26 Facebook, Inc. Automatic generation of native E-commerce applications for mobile devices
US11880413B2 (en) * 2017-06-02 2024-01-23 Qualtrics, Llc Transforming datasets for visualization within widgets across multiple platforms and software applications
US11392896B2 (en) * 2017-06-02 2022-07-19 Apple Inc. Event extraction systems and methods
US10013577B1 (en) 2017-06-16 2018-07-03 OneTrust, LLC Data processing systems for identifying whether cookies contain personally identifying information
US10754820B2 (en) 2017-08-14 2020-08-25 Palantir Technologies Inc. Customizable pipeline for integrating data
WO2019036652A1 (en) * 2017-08-18 2019-02-21 CML Media Corp. Systems, media, and methods for conducting intelligent web presence redesign
US11263263B2 (en) 2018-05-30 2022-03-01 Palantir Technologies Inc. Data propagation and mapping system
US11036476B2 (en) * 2018-08-03 2021-06-15 Vmware, Inc. Systems and methods for building an application from a console
US11144675B2 (en) 2018-09-07 2021-10-12 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US10803202B2 (en) 2018-09-07 2020-10-13 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US11544409B2 (en) 2018-09-07 2023-01-03 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
CN109739534B (en) * 2018-12-28 2022-02-08 武汉思普崚技术有限公司 Method and device for judging application update in application feature library
CN111949307B (en) * 2020-07-06 2021-06-25 北京大学 Optimization method and system of open source project knowledge graph
WO2022011142A1 (en) 2020-07-08 2022-01-13 OneTrust, LLC Systems and methods for targeted data discovery
US11444976B2 (en) 2020-07-28 2022-09-13 OneTrust, LLC Systems and methods for automatically blocking the use of tracking tools
WO2022032072A1 (en) 2020-08-06 2022-02-10 OneTrust, LLC Data processing systems and methods for automatically redacting unstructured data from a data subject access request
WO2022060860A1 (en) 2020-09-15 2022-03-24 OneTrust, LLC Data processing systems and methods for detecting tools for the automatic blocking of consent requests
US20230334158A1 (en) 2020-09-21 2023-10-19 OneTrust, LLC Data processing systems and methods for automatically detecting target data transfers and target data processing
WO2022099023A1 (en) 2020-11-06 2022-05-12 OneTrust, LLC Systems and methods for identifying data processing activities based on data discovery results
US11687528B2 (en) 2021-01-25 2023-06-27 OneTrust, LLC Systems and methods for discovery, classification, and indexing of data in a native computing system
US11442906B2 (en) 2021-02-04 2022-09-13 OneTrust, LLC Managing custom attributes for domain objects defined within microservices
WO2022170254A1 (en) 2021-02-08 2022-08-11 OneTrust, LLC Data processing systems and methods for anonymizing data samples in classification analysis
WO2022173912A1 (en) 2021-02-10 2022-08-18 OneTrust, LLC Systems and methods for mitigating risks of third-party computing system functionality integration into a first-party computing system
US11481202B2 (en) 2021-02-16 2022-10-25 X Development Llc Transformation templates to automate aspects of computer programming
US11775348B2 (en) 2021-02-17 2023-10-03 OneTrust, LLC Managing custom workflows for domain objects defined within microservices
WO2022178219A1 (en) 2021-02-18 2022-08-25 OneTrust, LLC Selective redaction of media content
EP4305539A1 (en) 2021-03-08 2024-01-17 OneTrust, LLC Data transfer discovery and analysis systems and related methods
US11562078B2 (en) 2021-04-16 2023-01-24 OneTrust, LLC Assessing and managing computational risk involved with integrating third party computing functionality within a computing system
US11816452B2 (en) * 2022-04-04 2023-11-14 Microsoft Technology Licensing, Llc. Natively-integrated application content customization for enterprises
US11620142B1 (en) 2022-06-03 2023-04-04 OneTrust, LLC Generating and customizing user interfaces for demonstrating functions of interactive user environments

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6311194B1 (en) * 2000-03-15 2001-10-30 Taalee, Inc. System and method for creating a semantic web and its applications in browsing, searching, profiling, personalization and advertising
US20050055420A1 (en) * 2000-02-01 2005-03-10 Infogin Ltd. Methods and apparatus for analyzing, processing and formatting network information such as web-pages
US20060167860A1 (en) * 2004-05-17 2006-07-27 Vitaly Eliashberg Data extraction for feed generation
US20090125469A1 (en) * 2007-11-09 2009-05-14 Microsoft Coporation Link discovery from web scripts
US20100180213A1 (en) * 2008-11-19 2010-07-15 Scigen Technologies, S.A. Document creation system and methods
US20100199197A1 (en) * 2008-11-29 2010-08-05 Handi Mobility Inc Selective content transcoding
US7899847B2 (en) * 2008-12-17 2011-03-01 International Business Machines Corporation System and method for authoring new lightweight web applications using application traces on existing websites
US20120159310A1 (en) * 2010-12-16 2012-06-21 Electronics And Telecommunications Research Institute Method for converting mobile web application into native application and apparatus using the same
US20130174012A1 (en) * 2012-01-03 2013-07-04 Vistaprint Technologies Limited Automated generation of mobile optimized website
US20140032263A1 (en) * 2012-07-25 2014-01-30 Indix Corporation Adaptive gathering of structured and unstructured data system and method
US20140129534A1 (en) * 2012-11-02 2014-05-08 Swiftype, Inc. Automatically Modifying a Custom Search Engine for a Web Site Based on User Input

Family Cites Families (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5652440U (en) 1979-09-29 1981-05-09
AU4688996A (en) 1994-12-22 1996-07-10 Bell Atlantic Network Services, Inc. Authoring tools for multimedia application development and network delivery
US5880733A (en) 1996-04-30 1999-03-09 Microsoft Corporation Display system and method for displaying windows of an operating system to provide a three-dimensional workspace for a computer system
US5950167A (en) 1998-01-26 1999-09-07 Lucent Technologies Inc. Screen-less remote voice or tone-controlled computer program operations via telephone set
GB2348568A (en) 1999-03-31 2000-10-04 Ibm Enabling conformance to legislative requirements for mobile devices
US20080015955A1 (en) 1999-05-19 2008-01-17 I.D. Systems, Inc. Mobile asset data management system
US6332163B1 (en) 1999-09-01 2001-12-18 Accenture, Llp Method for providing communication services over a computer network system
US7313782B2 (en) 2000-05-05 2007-12-25 @Hand Corporation Method for distributing, integrating, and hosting a software platform
US6741672B2 (en) 2000-11-22 2004-05-25 Ge Medical Systems Global Technology Company, Llc K-space based graphic application development system for a medical imaging system
US20060036941A1 (en) 2001-01-09 2006-02-16 Tim Neil System and method for developing an application for extending access to local software of a wireless device
US7904468B2 (en) 2008-02-27 2011-03-08 Research In Motion Limited Method and software for facilitating interaction with a personal information manager application at a wireless communication device
US7085736B2 (en) * 2001-02-27 2006-08-01 Alexa Internet Rules-based identification of items represented on web pages
US8365230B2 (en) 2001-09-19 2013-01-29 Tvworks, Llc Interactive user interface for television applications
DE10159398A1 (en) 2001-12-04 2003-06-12 Giesecke & Devrient Gmbh Store and access data in a mobile device and a user module
TWI238348B (en) 2002-05-13 2005-08-21 Kyocera Corp Portable information terminal, display control device, display control method, and recording media
JP4248913B2 (en) 2003-03-31 2009-04-02 株式会社エヌ・ティ・ティ・ドコモ Terminal device, program, and communication system
US20040224674A1 (en) 2003-04-07 2004-11-11 O'farrell Robert System and method for context sensitive mobile data and software update
US7240327B2 (en) 2003-06-04 2007-07-03 Sap Ag Cross-platform development for devices with heterogeneous capabilities
CN1833437A (en) 2003-08-06 2006-09-13 松下电器产业株式会社 Program recommendation apparatus
JP2007510979A (en) 2003-11-06 2007-04-26 インテュウェーブ リミテッド A method for rapid software application development for wireless mobile devices
USD496370S1 (en) 2003-12-23 2004-09-21 Pioneer Research Center Usa, Inc. Setup display for a screen
USD495339S1 (en) 2004-01-12 2004-08-31 Pioneer Research Center Usa, Inc. Program guide display for a screen
US8146156B2 (en) 2004-04-01 2012-03-27 Google Inc. Archive of text captures from rendered documents
EP1766824A4 (en) 2004-06-30 2009-11-11 Jumpstart Wireless Corp System and method for extending business systems to a mobile workforce
US7590997B2 (en) 2004-07-30 2009-09-15 Broadband Itv, Inc. System and method for managing, converting and displaying video content on a video-on-demand platform, including ads used for drill-down navigation and consumer-generated classified ads
US20060044307A1 (en) 2004-08-24 2006-03-02 Kyuman Song System and method for visually representing project metrics on 3-dimensional building models
US20060129972A1 (en) 2004-11-30 2006-06-15 Tyburski John C Application developer and method for generating platform independent code
GB0426736D0 (en) 2004-12-06 2005-01-12 Omnifone Ltd MyFone
US7890926B2 (en) 2005-01-04 2011-02-15 Vaakya Technologies Private Limited System and method for application development and deployment
USD587720S1 (en) 2005-05-05 2009-03-03 Bgc Partners, Inc. User interface for an electronic trading system for a computer screen
US7801881B1 (en) * 2005-05-31 2010-09-21 Google Inc. Sitemap generating client for web crawler
US20070016925A1 (en) 2005-06-20 2007-01-18 Arthur Vaysman Interactive TV application display method and apparatus
US20070174818A1 (en) 2005-08-18 2007-07-26 Pasula Markus I Method and apparatus for generating application programs for multiple hardware and/or software platforms
USD548743S1 (en) 2005-09-01 2007-08-14 Matsushita Electric Industrial Co., Ltd. Television receiver display layout
CA2622900C (en) 2005-09-15 2014-04-29 Biap, Inc. Self-contained mini-applications system and method for digital television
US7724399B2 (en) 2005-09-19 2010-05-25 Silverbrook Research Pty Ltd Method of downloading and installing a software object
US20070100648A1 (en) 2005-11-03 2007-05-03 Anthony Borquez Systems and Methods for Delivering Content Customized for a Plurality of Mobile Platforms
US20070099658A1 (en) 2005-11-03 2007-05-03 Blue Label Interactive Systems and methods for developing, delivering and using video applications for a plurality of mobile platforms
US20070106764A1 (en) 2005-11-08 2007-05-10 Carl Mansfield System and method for device configuration using a portable flash memory storage device with an infrared transmitter
US8255901B2 (en) 2005-12-16 2012-08-28 Sap Ag Methods and systems for configuring software applications
US8607287B2 (en) 2005-12-29 2013-12-10 United Video Properties, Inc. Interactive media guidance system having multiple devices
US7716634B2 (en) 2006-01-19 2010-05-11 Medseek Inc. System and method for building and modifying software applications
US7913234B2 (en) 2006-02-13 2011-03-22 Research In Motion Limited Execution of textually-defined instructions at a wireless communication device
US20070261090A1 (en) 2006-03-24 2007-11-08 Miller Eric B Interactive television application distribution, control, and communication system and methods
US7966182B2 (en) 2006-06-20 2011-06-21 Lunis Orcutt Voiced programming system and method
US20080016176A1 (en) 2006-07-13 2008-01-17 Ofir Leitner System for development of games for mobile devices and distribution thereof
US7920852B2 (en) 2006-07-21 2011-04-05 Research In Motion Limited Compression of data transmitted between server and mobile device
WO2008021496A2 (en) 2006-08-17 2008-02-21 Philip Chidel Interactive television framework utilizing program-synchronous trigers and standard messaging and presence-detection protocols
US7665033B2 (en) 2006-08-31 2010-02-16 Sun Microsystems, Inc. Using a zooming effect to provide additional display space for managing applications
US20090210631A1 (en) 2006-09-22 2009-08-20 Bea Systems, Inc. Mobile application cache system
ITMI20062325A1 (en) 2006-12-04 2008-06-05 Mario Quintilio MULTIFUNCTIONAL EQUIPMENT FOR VISUAL HANDICAPERS
USD555660S1 (en) 2006-12-08 2007-11-20 Espeed, Inc. User interface for an electronic trading system for a computer screen
CA2578466A1 (en) 2007-01-12 2008-07-12 Truecontext Corporation Method and system for customizing a mobile application using a web-based interface
US8381096B2 (en) * 2007-03-15 2013-02-19 Yahoo! Inc. Managing list tailoring for a mobile device
USD590407S1 (en) 2007-04-20 2009-04-14 Sony Computer Entertainment, Inc. Computer generated image for display panel
USD621845S1 (en) 2007-06-23 2010-08-17 Apple Inc. Graphical user interface for a display screen or portion thereof
JP2009104568A (en) 2007-10-20 2009-05-14 Movell Software Inc Platform for application production for mobile phone
US20090125977A1 (en) 2007-10-31 2009-05-14 Docomo Communications Laboratories Usa, Inc. Language framework and infrastructure for safe and composable applications
WO2009061399A1 (en) * 2007-11-05 2009-05-14 Nagaraju Bandaru Method for crawling, mapping and extracting information associated with a business using heuristic and semantic analysis
US8275419B2 (en) 2007-11-14 2012-09-25 Yahoo! Inc. Advertisements on mobile devices using integrations with mobile applications
US8811968B2 (en) 2007-11-21 2014-08-19 Mfoundry, Inc. Systems and methods for executing an application on a mobile device
US20120167047A1 (en) * 2007-12-17 2012-06-28 Infogin Ltd. System and method for automatic creation of web content for mobile communicators
USD604740S1 (en) 2007-12-19 2009-11-24 Joseph Matheny Computer generated image for a display screen
US20090259940A1 (en) 2008-02-14 2009-10-15 Moraes Ian M Mobile video application service creation tool
US20090228862A1 (en) 2008-03-04 2009-09-10 Anders Bertelrud Modularized integrated software development environments
CN101276276A (en) 2008-05-05 2008-10-01 天栢宽带网络科技(上海)有限公司 Digital television applied development model apparatus
US20090307679A1 (en) 2008-06-10 2009-12-10 Lg Electronics Inc. Communication device and a host device, a method of processing signal in the communication device and the host device, and a system having the communication device and the host device
US8769553B2 (en) 2008-07-18 2014-07-01 Sybase, Inc. Deploy anywhere framework for heterogeneous mobile application development
CN101686427A (en) 2008-09-27 2010-03-31 北京掌易迅移动软件技术有限责任公司 Mobile service platform
US20100138784A1 (en) 2008-11-28 2010-06-03 Nokia Corporation Multitasking views for small screen devices
JP5257311B2 (en) 2008-12-05 2013-08-07 ソニー株式会社 Information processing apparatus and information processing method
US20100251292A1 (en) 2009-03-27 2010-09-30 Sudharshan Srinivasan Smartphone for interactive television
USD631887S1 (en) 2009-03-27 2011-02-01 T-Mobile Usa, Inc. Portion of a display screen with a user interface
WO2010115941A1 (en) 2009-04-08 2010-10-14 Vidiactive Limited An improved television and video system
US20100281475A1 (en) 2009-05-04 2010-11-04 Mobile On Services, Inc. System and method for mobile smartphone application development and delivery
US9445036B2 (en) 2009-06-30 2016-09-13 Rovi Guides, Inc. Methods and systems for content scheduling across multiple devices
US8229984B2 (en) 2009-07-24 2012-07-24 Ensequence, Inc. Method for application authoring employing a pre-certified multi-platform master application template
CA2698066A1 (en) 2009-07-31 2011-01-31 Nitobi Software Inc. System and method for remotely compiling multi-platform native applications for mobile devices
US8849725B2 (en) * 2009-08-10 2014-09-30 Yahoo! Inc. Automatic classification of segmented portions of web pages
CA2699345C (en) 2009-08-26 2012-01-17 Mobiroo Inc. Digital device advertising system and method
US20110078715A1 (en) 2009-09-29 2011-03-31 Rovi Technologies Corporation Identifying a movie of interest from a widget used with movie commericials
USD633921S1 (en) 2009-09-30 2011-03-08 Htc Corporation Graphic user interface for a display screen
WO2011040981A1 (en) * 2009-10-02 2011-04-07 David Drai System and method for search engine optimization
US8364795B2 (en) * 2009-12-11 2013-01-29 Microsoft Corporation Search service administration web service protocol
US8719776B2 (en) 2009-12-30 2014-05-06 Foneclay, Inc. System for creation and distribution of software applications usable on multiple mobile device platforms
US20110167336A1 (en) 2010-01-04 2011-07-07 Hit Development Llc Gesture-based web site design
US8433828B2 (en) 2010-02-26 2013-04-30 Apple Inc. Accessory protocol for touch screen device accessibility
US8370878B2 (en) 2010-03-17 2013-02-05 Verizon Patent And Licensing Inc. Mobile interface for accessing interactive television applications associated with displayed content
USD645871S1 (en) 2010-04-13 2011-09-27 Vivotech, Inc. Graphical user interface for a display screen or portion thereof
USD642586S1 (en) 2010-04-30 2011-08-02 American Teleconferencing Services, Ltd. Portion of a display screen with a user interface
US9071370B2 (en) 2010-05-20 2015-06-30 CSC Holdings, LLC System and method for set top box viewing data
US9906838B2 (en) 2010-07-12 2018-02-27 Time Warner Cable Enterprises Llc Apparatus and methods for content delivery and message exchange across multiple content delivery networks
US20120023131A1 (en) 2010-07-26 2012-01-26 Invidi Technologies Corporation Universally interactive request for information
US9158650B2 (en) 2010-08-04 2015-10-13 BoxTone, Inc. Mobile application performance management
US20120036494A1 (en) 2010-08-06 2012-02-09 Genwi, Inc. Web-based cross-platform wireless device application creation and management systems, and methods therefor
US9936333B2 (en) 2010-08-10 2018-04-03 Microsoft Technology Licensing, Llc Location and contextual-based mobile application promotion and delivery
US20120060087A1 (en) * 2010-09-02 2012-03-08 Mohamad Jame System and method for converting an existing website into a mobile compatible website
US20120089933A1 (en) 2010-09-14 2012-04-12 Apple Inc. Content configuration for device platforms
US20120066601A1 (en) 2010-09-14 2012-03-15 Apple Inc. Content configuration for device platforms
US20120078874A1 (en) * 2010-09-27 2012-03-29 International Business Machine Corporation Search Engine Indexing
US9501100B2 (en) 2010-09-30 2016-11-22 Apple Inc. Communicating sensor data between electronic devices
US8261231B1 (en) * 2011-04-06 2012-09-04 Media Direct, Inc. Systems and methods for a mobile application development and development platform

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050055420A1 (en) * 2000-02-01 2005-03-10 Infogin Ltd. Methods and apparatus for analyzing, processing and formatting network information such as web-pages
US6311194B1 (en) * 2000-03-15 2001-10-30 Taalee, Inc. System and method for creating a semantic web and its applications in browsing, searching, profiling, personalization and advertising
US20060167860A1 (en) * 2004-05-17 2006-07-27 Vitaly Eliashberg Data extraction for feed generation
US20090125469A1 (en) * 2007-11-09 2009-05-14 Microsoft Coporation Link discovery from web scripts
US20100180213A1 (en) * 2008-11-19 2010-07-15 Scigen Technologies, S.A. Document creation system and methods
US20100199197A1 (en) * 2008-11-29 2010-08-05 Handi Mobility Inc Selective content transcoding
US7899847B2 (en) * 2008-12-17 2011-03-01 International Business Machines Corporation System and method for authoring new lightweight web applications using application traces on existing websites
US20120159310A1 (en) * 2010-12-16 2012-06-21 Electronics And Telecommunications Research Institute Method for converting mobile web application into native application and apparatus using the same
US20130174012A1 (en) * 2012-01-03 2013-07-04 Vistaprint Technologies Limited Automated generation of mobile optimized website
US20140032263A1 (en) * 2012-07-25 2014-01-30 Indix Corporation Adaptive gathering of structured and unstructured data system and method
US20140129534A1 (en) * 2012-11-02 2014-05-08 Swiftype, Inc. Automatically Modifying a Custom Search Engine for a Web Site Based on User Input

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Appsbar; "About Us" http://www.appsbar.com/AboutUs.php retrieved 2/20/2014; 2 pages *
Eliot Van Buskirk, evolver.fm, "Appsbar Lets Bands Make Apps to Sell Music", September 12, 2011, 4 pages, http://web.archive.org/web/20130203154841/http://evolver.fm/2011/09/12/appsbar-lets-bands-make-apps-to-sell-music/ *
Kevin Casey, InformationWeek, "Appsbar Helps SMBs Build Mobile Apps", 4/28/2011, 6 pages, http://www.informationweek.com/mobile/appsbar-helps-smbs-build-mobile-apps/d/d-id/1097435? *
Scott Hirsch; "In the News"; http://scotthirsch.com/news.html; retrieved 2/20/2014 ; 1 page *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11895138B1 (en) * 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof
US10496381B2 (en) * 2017-11-27 2019-12-03 Microsoft Technology Licensing, Llc Progressive web app auto-ingestion
CN110471657A (en) * 2018-05-11 2019-11-19 北京三快在线科技有限公司 The generation method and device of Website page
US11347500B2 (en) 2020-06-17 2022-05-31 Bank Of America Corporation Software code converter for resolving conflicts during code development
US11573775B2 (en) 2020-06-17 2023-02-07 Bank Of America Corporation Software code converter for resolving redundancy during code development
US11782685B2 (en) 2020-06-17 2023-10-10 Bank Of America Corporation Software code vectorization converter

Also Published As

Publication number Publication date
US8788935B1 (en) 2014-07-22
US20140281886A1 (en) 2014-09-18
WO2014160095A1 (en) 2014-10-02

Similar Documents

Publication Publication Date Title
US8788935B1 (en) Systems and methods for creating or updating an application using website content
US10936179B2 (en) Methods and systems for web content generation
US11620114B2 (en) Responsive self-service template
US20230259956A1 (en) Systems and Methods for Managing and Modifying Web Content
US20140282371A1 (en) Systems and methods for creating or updating an application using a pre-existing application
US20100251143A1 (en) Method, system and computer program for creating and editing a website
AU2014202725B2 (en) Methods and apparatus for translating forms to native mobile applications
US20190171696A1 (en) Web-intrinsic interactive documents
US20130019189A1 (en) Augmented editing of an online document
US11822615B2 (en) Contextual editing in a page rendering system
US20160259630A1 (en) Systems, apparatus and methods for sharing visual model-based applications
US20230205979A1 (en) E-pub creator
Anderson et al. Pro business applications with silverlight 4
Díaz et al. Generating blogs out of product catalogues: An MDE approach
KR20150098215A (en) Method for providing webpage in SaaS ENVIRONMENT, Computer program for the same, and Recording medium storing computer program for the same
KR100962342B1 (en) System and method for providing creation, registration and management service of homepage
Paternò et al. Exploiting web service annotations in model-based user interface development
US9934211B2 (en) System and methods for generating derivative websites
TWI524197B (en) Method for generating web program and corresponding form interface form annotation of table filed
Ragupathi Learning ASP. NET Core MVC Programming
US20220180452A1 (en) Automated Web Content Publishing
West Professional Sitecore Development
Jenkins et al. Dreamweaver CS5 All-in-one for Dummies
KR20130040167A (en) System for producing homepage in saas environment, a computer-readable storage medium therefor
Yan Geospatial Metadata Community Adaptor--Applying XSLT Technologies to Geographic Metadata to Address Interoperability and Compatibility Issues

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION