Patent Publication Number: US-2015089339-A1

Title: Systems and methods for creating or updating an application using website content

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&#39;s website is often the same or similar to some extent. For example, the company&#39;s website and computing applications may both advertise the company&#39;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., &lt;title&gt; tags, &lt;form&gt; tags, &lt;input&gt; tags, &lt;div&gt; tags, &lt;table&gt; tags, &lt;body&gt; tags, &lt;head&gt; tags, &lt;font&gt; 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&#39;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., &lt;form&gt; tags or &lt;href&gt; 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., &lt;img&gt; 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., &lt;form&gt; tag) and the tag associated with the end a form (i.e., &lt;/form&gt; tag). The rule set  210  may further include rules that search for any HTML input tags (i.e., &lt;input&gt; 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., &lt;img&gt; 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 &lt;title&gt; and &lt;/title&gt; 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., &lt;font&gt;) 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&#39;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., &lt;form&gt; tag) or input tags (i.e., &lt;input&gt; 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  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 ). 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  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 . In the exemplary interface  300 B, 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 &lt;title&gt; and &lt;/title&gt; tags in the website content) or headings found on the web page (e.g., which may be specified using the &lt;h1&gt; 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  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 . 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  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. For example, if the user clicked on the About Us button  320 A, 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  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. 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  300 C 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  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. 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 &lt;h1&gt; 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 &lt;a href&gt; 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., &lt;form&gt; tags and &lt;input&gt; 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., &lt;form&gt;) 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.