Apparatus, method and recording medium storing instructions for releasing a mobile application

TW202636277AActive Publication Date: 2026-09-01COUPANG CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
TW114108851
Authority / Receiving Office
TW · TW
Patent Type
Applications
Current Assignee / Owner
Priority Date
2025-02-24
Filing Date
2025-03-11
Publication Date
2026-09-01
Estimated Expiration
2045-03-10

AI Technical Summary

Technical Problem

Existing mobile application updates lack an efficient method to determine the optimal initial rollout ratio, leading to potential issues with user feedback diversity and defect management.

Method used

An apparatus and method for determining the initial rollout ratio of a mobile application version by analyzing pull requests and code changes, considering deactivation codes and line modifications, to optimize the initial user exposure based on risk assessment.

Benefits of technology

Enhances the management of user feedback diversity and defect detection by setting an optimal initial rollout ratio, ensuring a balanced user exposure to minimize risks and facilitate effective update management.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure TWG2TA001074131_001
    Figure TWG2TA001074131_001
  • Figure TWG2TA001074131_002
    Figure TWG2TA001074131_002
  • Figure TWG2TA001074131_003
    Figure TWG2TA001074131_003
Patent Text Reader

Abstract

The present invention provides an apparatus comprising one or more processors and one or more memories storing commands to be executed by the one or more processors. The apparatus is configured such that, when executing the commands, the one or more processors perform the following: receiving a request to determine the initial launch rate of a first version of a mobile application that will be released, wherein the initial launch rate is the ratio of users who become the target of release at the first point in time of the first release of the first version of the mobile application; and receiving first information of one or more pull requests, wherein the one or more pull requests correspond to the first version of the mobile application... If a mobile application has one or more changes compared to a second version of the mobile application that is a predecessor to the first version, each of the above-mentioned pull requests requests to merge the corresponding changes into the code used to implement the first version of the mobile application; obtain second information about the code used to implement the first version of the mobile application; determine the initial launch rate of the first version of the mobile application based on the first information and the second information; and, upon determining the initial launch rate, transmit third information indicating the initial launch rate to other servers.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to a technique for publishing mobile applications. Prior Technology

[0002] Once a mobile application is released to users, they can utilize the features it offers. Administrators of mobile applications can update them by resolving issues, adding or changing features, and releasing updated versions through app stores to provide better service to users. Summary of the Invention

[0003] [The problem the invention aims to solve] At least one embodiment of the present invention can generate information for publishing mobile applications.

[0004] The technical subject matter of this invention is not limited to the technical subject matter mentioned above. Those skilled in the art can clearly understand other technical subject matter not mentioned based on the description of this invention. [Technical means to solve the problem]

[0005] An apparatus according to one embodiment of the present invention may include: one or more processors; and one or more memories storing commands for execution by the one or more processors. The apparatus can be configured such that, when executing the commands, the one or more processors: receive a request to determine the initial rollout ratio of the first version of the mobile application to be released, the initial rollout ratio being the ratio of users who become the target of the release at the first point in time of the first release of the first version of the mobile application; receive one or more pull requests. The first information of the pull request is that the one or more pull requests correspond to one or more changes in the mobile application version 1 compared to the mobile application version 2, which is the previous version of the mobile application version 1. Each of the one or more pull requests is a request to merge its corresponding change into the code used to implement the mobile application version 1. The second information is to obtain the code used to implement the mobile application version 1. Based on the first information and the second information, the initial launch ratio of the mobile application version 1 is determined. As the initial launch ratio is determined, the third information indicating the initial launch ratio is transmitted to other servers.

[0006] In one embodiment, the above-mentioned apparatus can be configured such that, when determining the initial push ratio, the one or more processors perform the following: based on the first information, determine whether the code information of each of the one or more pull requests includes a deactivation code that disables the corresponding change; determine the ratio of pull requests that do not include the deactivation code, i.e., the first ratio, in the one or more pull requests; and determine the initial push ratio based on the first ratio.

[0007] In one embodiment, the above-described apparatus can be configured such that, when determining the initial ejection ratio, the one or more processors determine the initial ejection ratio as follows: the higher the first ratio, the smaller the initial ejection ratio.

[0008] In one embodiment, the above-described apparatus can be configured such that, when determining the initial launch ratio, the one or more processors perform the following: based on the second information, based on one or more first lines included in the first code for implementing the first version of the mobile application and one or more second lines included in the second code for implementing the second version of the mobile application, determine the lines in the first version of the mobile application that have changed compared to the second version of the mobile application; determine the ratio of the lines that have changed in the one or more first lines, i.e., the second ratio; and determine the initial launch ratio based on the second ratio.

[0009] In one embodiment, the above-described apparatus can be configured such that, when determining the initial ejection ratio, the one or more processors determine the initial ejection ratio as follows: the higher the second ratio, the smaller the initial ejection ratio.

[0010] In one embodiment, the above-described apparatus can be configured such that, when determining the initial ejection ratio, the processor determines the initial ejection ratio as follows: the larger the sum of the value obtained by multiplying the first ratio by the first weighted value and the value obtained by multiplying the second ratio by the second weighted value, the smaller the initial ejection ratio is; and each of the first weighted value and the second weighted value is 0 or more and 1 or less, and the sum of the first weighted value and the second weighted value is 0 or more and 1 or less.

[0011] In one embodiment, the first weighted value may be a value greater than the second weighted value.

[0012] In one embodiment, the above-mentioned device can be configured such that the one or more processors transmit fourth information to the other servers after the release of the mobile application according to the initial release ratio at the first time point. The fourth information is that the release ratio increases from the day following the date to which the first time point belongs until the second time point when the new updated version of the mobile application is released. The release ratio is the percentage of users who accept the release of the first version of the mobile application among all users.

[0013] In one embodiment, the fourth piece of information may be information that causes the launch rate to increase equally every day from the day following the date to which the first time point belongs until the second time point.

[0014] In one embodiment, the fourth piece of information may be information that increases the launch rate at the second point in time to indicate that 100% of the information has been released to all users.

[0015] In one embodiment, the above-mentioned device can be configured such that the one or more processors determine whether a notification indicating an error exists in the first version of the mobile application is received from the other server during the period from the first time point to the second time point.

[0016] In one embodiment, the above-mentioned device can be configured such that the one or more processors are configured to: based on the determination that the notification has been received from the other server at a third time point between the first time point and the second time point, transmit fifth information to the other server that interrupts the release of the first version of the mobile application.

[0017] In one embodiment, the fifth piece of information may further include information about publishing the second version of the mobile application to all users.

[0018] The method of one embodiment of the present invention can be implemented in an apparatus including one or more processors and one or more memories storing commands for execution by the one or more processors. The above method may include the following steps, namely, the one or more processors as follows: obtaining a request to determine the initial launch ratio of the first version of the mobile application to be released, the initial launch ratio being the ratio of users who become the target of release at the first point in time of the first release of the first version of the mobile application; obtaining first information of one or more pull requests, the one or more pull requests corresponding to one or more changes in the first version of the mobile application compared to the second version of the mobile application, which is a previous version of the first version, each of the one or more pull requests requesting the incorporation of its corresponding changes into the code used to implement the first version of the mobile application; obtaining second information of the code used to implement the first version of the mobile application; determining the initial launch ratio of the first version of the mobile application based on the first information and the second information; and, upon determining the initial launch ratio, transmitting third information indicating the initial launch ratio to other servers.

[0019] In one embodiment of the present invention, the recording medium may be a non-transitory computer-readable recording medium that records commands that, when executed by one or more processors, cause the one or more processors to perform actions. The above command can be configured such that one or more processors as follows: receive a request to determine the initial launch rate of the first version of the mobile application to be released, the initial launch rate being the percentage of users who become the target of release at the first point in time of the first release of the first version of the mobile application; receive first information of one or more pull requests, the pull requests corresponding to one or more changes in the first version of the mobile application compared to the second version of the mobile application, which is a previous version of the first version, each of the pull requests requesting the incorporation of its corresponding changes into the code used to implement the first version of the mobile application; receive second information of the code used to implement the first version of the mobile application; determine the initial launch rate of the first version of the mobile application based on the first information and the second information; and, upon determining the initial launch rate, transmit third information instructing the initial launch rate to other servers. [Effects of the Invention]

[0020] According to at least one embodiment of the present invention, information for publishing mobile applications can be generated.

[0021] The effects of the technical concept of this invention are not limited to those mentioned above. Those skilled in the art can clearly understand other effects not mentioned based on the description of this invention. Simple Explanation of the Diagram

[0022] Figure 1 is a system diagram illustrating various embodiments of the present invention. Figure 2 is a diagram illustrating an example of an apparatus according to an embodiment of the present invention. Figure 3 is a sequence diagram illustrating the operation methods of the apparatus according to various embodiments of the present invention. Figure 4 is a sequence diagram illustrating one example of a method for determining the initial ejection ratio. Figure 5 is a sequence diagram illustrating one example of a method for determining the initial ejection ratio. Figure 6 is a sequence diagram illustrating one example of the operation method of the first terminal, device and other servers in various embodiments of the present invention. Figure 7 is a sequence diagram illustrating one example of the operation method of the apparatus and other servers according to various embodiments of the present invention. Figure 8 is a sequence diagram illustrating one example of the operation method of the apparatus and other servers according to various embodiments of the present invention. Implementation

[0023] The various embodiments described herein are illustrative of the technical concept of the invention and are not intended to limit them to specific implementation methods. The technical concept of the invention includes various modifications, equivalents, alternatives, and embodiments obtained by selectively combining all or part of the embodiments described herein. Furthermore, the scope of the invention is not limited to the various embodiments presented below or their specific descriptions.

[0024] The terms used herein, including technical or scientific terms, shall have the meaning commonly understood by one of common knowledge in the technical field to which this invention pertains, unless otherwise defined.

[0025] The use of terms such as "including," "may include," "possibly possess," "may possess," "has," and "may have" in this document implies the presence of object characteristics (e.g., functions, actions, or constituent elements), and does not exclude the possibility of other additional characteristics. That is, the above-mentioned expressions should be understood as open-ended terms that have the possibility of including other embodiments.

[0026] The singular expressions used herein may include the meaning of the plural form unless otherwise stated in the context, and this also applies to the singular expressions described in the claims of this invention.

[0027] The terms "first," "second," "first," and "second" used in this article are used to distinguish one object from others when referring to multiple objects of the same kind, unless otherwise specified in the context, and are not used to define the order or importance of the corresponding objects.

[0028] As used herein, expressions such as "A, B and C", "A, B or C", "A, B and / or C", "at least one of A, B and C", "at least one of A, B or C", "at least one of A, B and / or C" may refer to each of the listed items or all combinations thereof. For example, "at least one of A or B" may refer to (1) at least one A, (2) at least one B, or (3) at least one A and at least one B.

[0029] The term "based on" as used in this article refers to one or more factors described in the statement or article that affect a certain behavior or action, and does not exclude other factors that affect the corresponding certain behavior or action.

[0030] The expression used herein to describe a constituent element (e.g., the first constituent element) as "connected" or "linked" to another constituent element (e.g., the second constituent element) may mean that the aforementioned constituent element is directly connected to or linked to the aforementioned other constituent element, or is connected to or linked to the aforementioned other constituent element through a new constituent element (e.g., the third constituent element).

[0031] Depending on the context, the phrase "configured to" as used herein can mean "configured in a certain way," "possessing the ability to perform certain actions," "modified in a certain way," "made in a certain way," or "capable of performing certain actions." This phrase is not limited to the meaning of "specially designed in hardware." For example, a processor 210 configured to perform a specific action can refer to a generic-purpose processor that can perform that specific action by executing software.

[0032] Hereinafter, various embodiments of the present invention will be described with reference to the accompanying drawings. In the drawings and descriptions thereof, the same or substantially equivalent constituent elements may be given the same reference numerals. Furthermore, in the following descriptions of various embodiments, repeated descriptions of the same or corresponding constituent elements may be omitted, but this does not mean that such constituent elements are not included in the embodiments.

[0033] Figure 1 is a diagram illustrating a system 100 according to various embodiments of the present invention. In one embodiment, system 100 may include at least one of a device 110, a first terminal 120, one or more second terminals 130, or other servers 140. The device 110, the first terminal 120, one or more second terminals 130, and other servers 140 may be devices capable of connecting to the Internet. For example, the device 110, the first terminal 120, one or more second terminals 130, and other servers 140 may exchange various information via the network. On the other hand, Figure 1 only shows an example of system 100, and the present invention is not limited thereto. For example, other configurations not shown in Figure 1 may also be included in system 100.

[0034] Device 110 may be a device for managing data related to mobile applications. In one embodiment, device 110 may be a server device for managing code used to implement mobile applications. In one embodiment, device 110 may include a repository for storing information about the code used to implement mobile applications. For example, the repository may store various data required for the development, modification, and updating of mobile applications, such as various code and metadata. In one embodiment, the repository may be implemented as the memory of device 110. In another embodiment, the repository may also be implemented as a distributed version management system distributed across one or more external memories connected to device 110 via a network, whereby device 110 may distribute and store mobile application information across one or more external memories.

[0035] In one embodiment, device 110 can modify an existing version of a mobile application to generate a new version of the mobile application. The existing version of the mobile application may refer to a mobile application already released to users, while the new version of the mobile application refers to a mobile application that will be released to users in the future. Releasing the mobile application to users may mean uploading the mobile application to a mobile application store so that users can download or update the corresponding mobile application through their respective user terminals.

[0036] The first terminal 120 may be a terminal used to generate various requests for publishing mobile applications. For example, the first terminal 120 may be a terminal used by an administrator to manage the publishing process of mobile applications. For example, the first terminal 120 may be a portable communication device, a computer device, a portable multimedia device, a home appliance device, or a combination of one or more of the above devices. For example, the first terminal 120 may further include an input device. The input device may be a device for receiving data from an external source for transmitting to at least one component of the first terminal 120. For example, the input device may include a mouse, keyboard, touch panel, etc. The first terminal 120 can be configured to generate various information or requests transmitted to the device 110 based on user input input via the input device. For example, the first terminal 120 may further include a display device. The display device may be a device for providing various data to the user in a visual form. For example, the display device may include a monitor, projector, hologram, etc. The first terminal 120 can display various information and / or information related to information processing implemented in the device 110 via a display device.

[0037] Each of the two or more second terminals 130 can be a terminal used by one or more developers involved in the development of the mobile application. That is, a second terminal 130 serves as a terminal corresponding to a local branch managed in a developer's local environment, allowing the developer to independently develop, modify, and / or test the mobile application code. For example, each of the two or more second terminals 130 can be a portable communication device, a computer device, a portable multimedia device, a home appliance device, or a combination of one or more of the above devices. In one embodiment, each of the two or more second terminals 130 can generate a pull request corresponding to changes made to the mobile application by the developer and transmit it to device 110. In this invention, a pull request can be a request to incorporate changes made to the mobile application by the developer into the code used to implement the mobile application. Changes may include changes to new features of the mobile application, changes to address defects in existing versions, etc. For example, developers can use the second terminal 130 in their respective local environments to develop code for changes to the mobile application, and can transmit pull requests to the network-connected device 110, requesting the merging of the change code into the code used to implement the mobile application. That is, device 110 can be a device corresponding to the main branch that manages the source code used to implement the mobile application.

[0038] Device 110 may receive pull requests from one or more second terminals 130. For example, device 110 may determine, for each pull request received from one or more second terminals 130, whether to merge the code corresponding to the change into the code used to implement the mobile application. In one embodiment, device 110 may provide a pull request received from a specific developer's second terminal 130 to other developers' second terminals 130, thereby requesting review of the code corresponding to the pull request. Each developer may use their respective second terminal 130 to review the code corresponding to the pull requests of other developers, and transmit the review results to device 110. For example, for a specific developer's pull request, other developers may review the code corresponding to the change in the pull request for whether there are errors, whether there is a better algorithm, whether there are redundant lines, etc., and transmit information indicating the review results to device 110. In one embodiment, device 110 can determine whether to merge the code of one or more pull requests based on the review results obtained from one or more second terminals 130. For example, if a developer completes a review for a specific pull request, the administrator can confirm the review results through first terminal 120, determine whether to approve the merging of the code corresponding to the changes in the pull request, and first terminal 120 can transmit information indicating the approval of the merging of the code for the changes to device 110.

[0039] In one embodiment, device 110 may merge the code of a change into the code of an existing mobile application to determine the code used to implement a new version of the mobile application. For example, device 110 may determine to merge at least one of one or more changes corresponding to one or more pull requests, and merge the code of at least one change to be merged in the code of the existing version of the mobile application to determine the code used to implement the new version of the application.

[0040] In one embodiment, when releasing a new version of a mobile application, the first terminal 120 may generate a request to determine the initial launch ratio and transmit it to the device 110. In this invention, the initial launch ratio may refer to the percentage of users who are the recipients of the release at the time the new version of the mobile application is first released through a mobile application store. For example, at the first point in time of the first release of the new version (version 1) of the mobile application, version 1 may be released only to a portion of all users, while the older version (version 2) may be released to the remaining portion of all users. In this case, the initial launch ratio may refer to the percentage of all users who accept the release of version 1. For example, if the initial launch ratio is 10%, then version 1 of the mobile application may be released to 10% of all users on the first date corresponding to the first point in time. In one embodiment, in response to the request, the device 110 may determine the initial launch ratio, generate information indicating the initial launch ratio, and transmit it to other servers 140. Depending on whether any issues arise with the released version of the mobile application after its release, the number of releases can be increased gradually or temporarily. If no issues arise in the corresponding version of the mobile application after a fixed period (e.g., 1 week) following release, the release rate can be increased to 100%. On the other hand, if issues arise in the corresponding version of the mobile application, the release of that version can be withdrawn.

[0041] Other servers 140 may be servers operating app stores used to distribute mobile applications to users. For example, other servers 140 may be servers operating AOS (Android Operating System), IOS (Iphone Operating System; Internetwork Operating System), etc. In one embodiment, device 110 may transmit mobile application information to other servers 140, which then distribute the mobile application to users based on the information obtained from device 110. With the mobile application distributed on other servers 140, users accessing those servers can download or update the mobile application using their respective user terminals. Each user terminal can connect to other servers 140 via a wireless network or the Internet.

[0042] In one embodiment, device 110 may transmit information indicating an initial rollout ratio to other servers 140. The information indicating the initial rollout ratio may be such that, at the time of the first release of a new version of the mobile application, other servers initially target a subset of all users based on the initial rollout ratio. For example, other servers 140 may, based on the rollout ratio information obtained from device 110, select users from the entire user base who will receive the release at the time of the first release, and roll out the new version of the mobile application update only to the selected users. Subsequently, while collecting feedback from users using the new version of the mobile application, other servers 140 may periodically release the new version of the mobile application to the remaining users.

[0043] When releasing a new version of a mobile application, it is necessary to optimize the initial rollout ratio to effectively collect user feedback and verify system stability. If the initial rollout ratio is too low, the limited user sample will result in a lack of diversity in the collected feedback, making it difficult to fully grasp the potential problems of the new mobile application version. Conversely, if the initial rollout ratio is too high, too many user complaints may be received simultaneously due to potential defects, potentially leading to chaos in the problem-solving process. Therefore, considering both efficiently collecting user feedback and quickly verifying system stability, the initial rollout ratio needs to be determined at the optimal level.

[0044] In various embodiments of the present invention, the initial rollout ratio can be optimized. In one embodiment of the present invention, if the potential for errors in the new version of the mobile application (hereinafter referred to as "risk") is low, the initial rollout value can be set higher, thereby ensuring that the new version of the mobile application is accessible to a large number of users from the time of its initial release. In another embodiment of the present invention, if the risk of the new version of the mobile application is high, the initial rollout value can be set lower, thereby ensuring that it is released to only a small number of users at the time of its initial release.

[0045] Figure 2 is a diagram illustrating an example of a device 110 according to an embodiment of the present invention. The device 110 according to an embodiment of the present invention may include a processor 210 and / or memory 220. At least one of the components included in the device 110 may be omitted, or other components may be added to the device 110. For example, the device 110 may further include a communication circuit 230 for communicating with an external device. The device 110 may be implemented by additionally or alternatively integrating some of its components, or implemented as a single or multiple entities. At least some of the components within the device 110 may be interconnected via buses, GPIO (General Purpose Input / Output), SPI (Serial Peripheral Interface), or MIPI (Mobile Industry Processor Interface), etc., to transmit and receive data and / or signals.

[0046] The processor 210 of device 110 can perform various information processing operations related to the present invention (e.g., determining, calculating, judging, generating, calculating, correcting, updating, and controlling other constituent elements). The processor 210 can execute commands stored in memory 220 to perform these operations. That is, the processor 210 can cause device 110 to implement embodiments of the present invention according to the executed commands. In one embodiment, the processor 210 can be configured to determine an initial ejection ratio based on various information from a mobile application and generate information indicating the initial ejection ratio.

[0047] In this invention, processor 210 is hardware configured to perform the aforementioned actions. Processor 210 can refer to a general-purpose processor capable of performing specific actions by executing commands, or a special-purpose processor constructed through programming to perform such actions. For example, processor 210 can be a circuit including a CPU (Central Processing Unit), GPU (Graphics Processing Unit), NPU (Neural Processing Unit), integrated circuits, microprocessor, ASICs (Application Specific Integrated Circuits), FPGA (Field-Programmable Gate Array), conventional circuitry, or a combination thereof. That is, processor 210 can be implemented as a circuit including transistors, integrated circuits, or other circuits.

[0048] The memory 220 of device 110 may store commands for actions of processor 210. Data stored in memory 220, as data obtained, processed, or used by at least one component of device 110, may include software (e.g., a program). Memory 220 may include volatile and / or non-volatile memory. Memory 220 may also store information processed during the operation of processor 210. In various embodiments, memory 220 may store commands for execution in processor 210 and information processed in processor 210, and processor 210 performs the following methods of action by executing commands. The processor 210 disclosed herein may also refer to a collection of more than one processor 210.

[0049] The device 110 may further include a communication circuit 230 as an additional configuration. The communication circuit 230 of the device 110 can establish a wired or wireless communication channel with an external device (e.g., user terminal 110) to send and receive various data. According to one embodiment, the communication circuit 230, for wired communication with an external device, may include at least one port for connecting to the external device via a wired cable. In the above case, the communication circuit 230 can communicate with the wired external device via at least one port. According to one embodiment, the communication circuit 230 can be configured to include a cellular communication module and be connected to a cellular network (e.g., 3G, LTE, 5G, Wibro, or WiMAX). According to various embodiments, the communication circuit 230 may include a short-range communication module to send and receive data with an external device using short-range communication (e.g., Wi-Fi, Bluetooth, Bluetooth Low Energy (BLE), UWB), but is not limited thereto. According to one embodiment, the communication circuit 230 may include a contactless communication module for performing contactless communication. Contactless communication may include, for example, at least one short-range contactless communication technology such as NFC (Near Field Communication), RFID (Radio Frequency Identification), or MST (Magnetic Secure Transmission).

[0050] Figure 3 is a sequence diagram illustrating the operation methods of the apparatus according to various embodiments of the present invention. In one embodiment, the processor 210 of the apparatus 110 can be configured to perform the following operation method: determine the initial launch rate of the new version, i.e., version 1, of the mobile application, and transmit information indicating the initial launch rate to other servers 140.

[0051] In step S310, the processor 210 may receive a request to determine the initial release ratio of the first version of the mobile application. The first version of the mobile application may be a new version of the mobile application that will be released. For example, the first version of the mobile application may be a mobile application that has implemented more than one change compared to the previous version, the second version.

[0052] In one embodiment, the initial launch ratio may be the ratio of users who are targeted for release at point 1. Point 1 may refer to the time when the first version of the mobile application is released (or the date to which that time belongs). The point 1 for the first release of a new version of the mobile application may be determined differently by each of the other servers 140 operating the mobile application store according to their respective operating policies. For example, the date to which the point 1 for the first release of the first version of the mobile application on the first other server (e.g., the iOS operating server) belongs may be different from the date to which the point 1 for the first release of the first version of the mobile application on the second other server (e.g., the AOS operating server).

[0053] In step S320, the processor 210 may obtain first information of one or more pull requests. The first information may be pull request information corresponding to one or more changes in the first version of the mobile application compared to the second version. In one embodiment, the first information may include code information of the changes corresponding to each of the one or more pull requests. For example, as the first pull request generated in the second terminal 130 of the first developer and the second pull request generated in the second terminal 130 of the second developer are approved, the first change corresponding to the first pull request and the second change corresponding to the second pull request can be merged into the first version of the mobile application. In this case, the first information may include code information of the first change and code information of the second change. For example, the code information of the change may include one or more lines written in a computer language readable by a computer (or, the user's user terminal).

[0054] In one embodiment, the processor 210 may obtain the first information from the memory 220 of the device 110. In another embodiment, the processor 210 may obtain the first information from at least one of more external memories connected to the device 110 via a network.

[0055] In step S330, the processor 210 obtains second information about the code used to implement the first version of the mobile application. The second information may be information about the code of the first version of the mobile application that includes one or more lines. For example, the second information may include one or more lines written in a computer language readable by a computer (or, the user's user terminal) so that the mobile application can be implemented on the user's user terminal.

[0056] In one embodiment, the processor 210 may obtain the second information from the memory 220 of the device 110. In another embodiment, the processor 210 may obtain the second information from at least one of more external memories connected to the device 110 via a network.

[0057] In step S340, the processor 210 may determine the initial rollout ratio of the first version of the mobile application based on the first information and / or the second information. In one embodiment, the processor 210 may determine, based on the first information, whether each of one or more pull requests corresponding to one or more changes that have occurred in the first version of the mobile application includes deactivation code, thereby determining the initial rollout ratio. In one embodiment, the processor 210 may determine, based on the second information, the lines in one or more lines of code included in the first version of the mobile application that have changed compared to the code of the second version of the mobile application, thereby determining the initial rollout ratio. In one embodiment, the processor 210 may also determine the initial rollout ratio based on both the first and second information. The specific methods by which the processor 210 determines the initial rollout ratio will be described below using various diagrams.

[0058] In step S350, processor 210 may transmit the third information indicating the initial rollout ratio to other servers 140. In one embodiment, processor 210 may further generate information for publishing the first version of the mobile application to users and transmit it to other servers 140. For example, the information for publishing the first version of the mobile application may include a version number corresponding to the first version of the mobile application, a description of one or more changes made in the first version, and information for uploading the first version of the mobile application. For example, the information for uploading the first version of the mobile application may be file information for converting the file format to a mobile application format suitable for the operating system of other servers 140.

[0059] Figure 4 is a sequence diagram illustrating one example of a method for determining the initial rollout ratio. In step S410, the processor 210 can determine, based on the first information, whether to include a deactivation code for the code information of one or more pull requests. The deactivation code can be a code that disables a change merged into the mobile application. For example, the deactivation code can be a feature flag indicating whether one or more features of a change are activated. For example, when one or more feature flags of a change indicate an activated state, the mobile application can be in a state where the change is applied. For example, when one or more feature flags of a change indicate a deactivated state, the mobile application can be in a state where the change is not applied. The administrator managing the mobile application can change the feature flag value in the code of the change that includes the deactivation code to indicate an activated or deactivated state.

[0060] When the code information for a change includes deactivation codes, if defects or other problems are discovered in the change after the mobile application that has implemented the change has been released, the administrator can use the deactivation codes to perform a rollback in the mobile application, restoring it to the state before the change was implemented. However, when the code information for a change does not include deactivation codes, even if errors related to the core actions or functions of the mobile application occur, it may be difficult to handle. For example, even if a problem with a core action is discovered, the following problem may exist: the problematic mobile application must continue to be used until a version of the mobile application with code that resolves the problem is released. In various embodiments of the present invention, the initial rollout ratio can be optimized based on whether deactivation codes are present in the code of the change.

[0061] In step S420, the processor 210 can determine the ratio of pull requests that do not include deactivation codes, i.e., the first ratio, among one or more pull requests. For example, if 30 out of 100 pull requests corresponding to 100 changes made to the first version of the mobile application do not include deactivation codes, the processor 210 can determine the first ratio as 0.3.

[0062] In step S430, processor 210 may determine an initial ejection ratio based on a first ratio. In one embodiment, the higher the first ratio, the smaller the initial ejection ratio that processor 210 can determine. For example, processor 210 may determine the initial ejection ratio as the value obtained by subtracting the value equivalent to the first ratio from "1". In one embodiment, when the first ratio is above a first reference value but below a second reference value, processor 210 may determine the initial ejection value as the first value; when the first ratio is above a second reference value, processor 210 may determine the initial ejection value as the second value, and the first value is less than the second value. Here, the first reference value, the second reference value, the first value, and / or the second value may change according to the settings of the mobile application administrator.

[0063] A higher first ratio can refer to a higher percentage of changes in the first version of the mobile application that do not include deactivation codes. In various embodiments of the present invention, the higher the first ratio of changes that do not include deactivation codes, the smaller the initial rollout ratio can be set, thereby enabling mobile application administrators to manage the risks arising from changes that do not include deactivation codes.

[0064] Figure 5 is a sequence diagram illustrating one example of a method for determining the initial rollout ratio. In step S510, the processor 210 may, based on the second information, determine the changed lines in one or more first lines included in the first code used to implement the first version of the mobile application. In one embodiment, the processor 210 may obtain information on the second code used to implement the second version of the mobile application, which is a previous version. The information on the second code may be information on one or more second lines included in the second code.

[0065] In one embodiment, processor 210 can determine the changed line based on one or more first lines included in the first code and one or more second lines included in the second code. In one embodiment, processor 210 can determine whether there is a line identical to each of the one or more first lines in one or more second lines. Processor 210 can determine the changed line as a line in one or more first lines that is determined to have no identical line in one or more second lines. For example, a line newly added to the first code compared to the second code can be determined as a changed line. As another example, when a line in the first code modifies or corrects a portion of a line in the second code, it can also be determined as a changed line.

[0066] In step S520, the processor 210 may determine a second ratio, which is the ratio of the number of changed lines in one or more first lines. In one embodiment, the second ratio may be the ratio of the number of changed lines to the number of first lines included in the first code. For example, if the first code includes 1000 first lines and 300 of the 1000 first lines are identified as changed lines, the processor 210 may determine the second ratio to be 0.3.

[0067] In step S530, processor 210 may determine the initial ejection ratio based on the second ratio. In one embodiment, the higher the second ratio, the smaller the initial ejection ratio that processor 210 can determine. For example, processor 210 may determine the initial ejection ratio as the value obtained by subtracting the value equivalent to the second ratio from "1". In one embodiment, when the second ratio is above the first reference value but below the second reference value, processor 210 may determine the initial ejection value as the first value; when the second ratio is above the second reference value, processor 210 may determine the initial ejection value as the second value, and the first value is less than the second value. Here, the first reference value, the second reference value, the first value, and / or the second value may change according to the settings of the mobile application administrator.

[0068] A higher second ratio can refer to a higher proportion of newly added or modified lines in the code used to implement version 1 of the mobile application compared to the second code of the previous version. In various embodiments of the present invention, the higher the second ratio of modified lines in the first code of the first version of the mobile application, the smaller the initial rollout ratio can be set, thereby enabling mobile application administrators to manage the risks caused by the modified lines.

[0069] In one embodiment, processor 210 may determine an initial push value based on a first ratio (the ratio of pull requests that do not include deactivation codes in one or more pull requests) and a second ratio (the ratio of lines that are changed in one or more first lines). The first ratio may be the first ratio determined in step S430 of FIG4 above, and the second ratio may be the second ratio determined in step S520 of FIG5 above. In one embodiment, the higher the sum of the first ratio and the second ratio, the smaller the initial push ratio that processor 210 can determine. In one embodiment, the larger the sum of the first ratio multiplied by the first weighted value and the second ratio multiplied by the second weighted value, the smaller the initial push ratio that processor 210 can determine. Each of the first weighted value and the second weighted value may be greater than 0 and less than 1, and the sum of the first weighted value and the second weighted value may be greater than 0 and less than 1. For example, the initial push ratio may be determined according to the following formula 1.

[0070]

Formula 1

[0071] In Formula 1, K can be the initial expulsion ratio, a is the first ratio, w1 is the first weighted value, b is the second ratio, and w2 is the second weighted value.

[0072] In one embodiment, the first weighted value may be greater than the second weighted value. Depending on the situation, the risk arising from the omission of deactivation codes in the changes needs to be managed more centrally than the risk arising from changes in code lines. For example, code changes that do not include deactivation codes may cause serious problems with the existing operation or functionality of a mobile application. To address this, in various embodiments of the invention, when determining the initial push value, the first weighted value multiplied by the first ratio may be set to a value greater than the second weighted value multiplied by the second ratio. Furthermore, as needed, there may be situations where the risk arising from changes in code lines needs to be managed at a higher level than the risk arising from the omission of deactivation codes in the changes. In such cases, when determining the initial push value, the second weighted value multiplied by the second ratio may be set to a value greater than the first weighted value multiplied by the first ratio. In various embodiments of the present invention, the initial rollout ratio can be determined based on a first ratio of the code of the changed items that does not include the deactivation code and a second ratio of the lines of change that occur in the first code of the first version of the mobile application, thereby enabling the administrator of the mobile application to manage the overall risk of the first version of the mobile application.

[0073] Figure 6 is a sequence diagram illustrating an example of an operation method of a first terminal, device, and other servers according to various embodiments of the present invention. In step S610, the first terminal 120 may generate a request to determine the initial launch rate of the first version of the mobile application. In one embodiment, the first terminal 120 may generate the request as user input from the user of the first terminal 120 is obtained via the input device of the first terminal 120. For example, an administrator managing the release process of the mobile application may input user input to generate the request via the input device of the first terminal 120.

[0074] In step S620, a request may be transmitted from the first terminal 120 to the device 110. In one embodiment, the first terminal 120 may transmit the request to the device 110 via a network.

[0075] In step S630, in response to the request, device 110 may determine the initial ejection ratio and generate third information indicating the initial ejection ratio. When device 110 determines the initial ejection ratio, the processor 210 of device 110 may perform the various methods described above to determine the initial ejection ratio.

[0076] In step S640, the third information can be transmitted from device 110 to other servers 140. In one embodiment, as the initial launch ratio is determined, device 110 can immediately transmit the third information to other servers 140. In one embodiment, device 110 can transmit the third information at the same time as the information used to release the first version of the mobile application is transmitted to other servers 140. In one embodiment, after the initial launch ratio is determined, device 110 can transmit the third information to other servers 140 at a preset time. In one embodiment, the preset time may be determined differently depending on the operating policy of the server operating the mobile application store. For example, the first other server may predetermine the first period as the period for collecting information on the new version of the mobile application; in this case, device 110 can transmit the third information to the first server at any time within the first period. For example, the second server may predetermine the second period as the period for collecting information on the new version of the mobile application. In this case, the device 110 may transmit the third information to the first server at any point during the second period.

[0077] In step S650, other servers 140 may release the first version of the mobile application to users through their mobile application stores. In one embodiment, other servers 140 may determine, based on the third information and the initial rollout ratio, a portion of all users who accept the release of the first version of the mobile application, and may release the first version to a portion of users at the first point in time when the first version of the mobile application is first released on other servers 140, and release the existing version, i.e., the second version of the mobile application, to the remaining portion of all users.

[0078] Figure 7 is a sequence diagram illustrating an example of the operation method of the apparatus and other servers according to various embodiments of the present invention. In step S710, the apparatus 110 may generate fourth information that increases the ejection ratio.

[0079] In one embodiment, the fourth information may be information indicating the percentage of all users who accepted the release of version 1 of the mobile application from the day following the date to the second time point after the first time point. The second time point may be the time point after the release of version 1 of the mobile application according to the initial launch ratio at time 1, and after the release of version 1 at time 1, when a new updated version, i.e., version 3, of the mobile application is released. For example, version 1 of the mobile application may be released to a portion of all users on the first date corresponding to time 1 according to the initial launch ratio, and from the day following the first date to the date corresponding to time 2, the number of users among the remaining users who accepted the release of version 1 of the mobile application gradually increases. In one embodiment, the fourth information may be information that causes the launch ratio to increase equally each day from the day following the date corresponding to time 1 until time 2. For example, from the day following the date to which point 1 belongs (i.e., date 1) to point 2 (i.e., date 2), the rollout rate can increase by 10% daily. In one embodiment, the fourth piece of information can be information indicating that the rollout rate at point 2 has been increased to 100% of all users. For example, from the day following the date to which point 1 belongs (i.e., date 1) to point 2 (i.e., date 2), the rollout rate can increase daily by a predetermined value, and the predetermined value can be a value obtained by subtracting the initial rollout rate from 100 and dividing it by the number of dates belonging to the period from date 1 to date 2.

[0080] In step S720, the fourth information can be transmitted from device 110 to other servers 140. In one embodiment, device 110 can transmit the fourth information to other servers 140 via a network.

[0081] In step S730, other servers 140 may, based on the fourth information, distribute the first version of the mobile application to users through the mobile application store of other servers 140.

[0082] In various embodiments of the present invention, after the mobile application is released according to the initial rollout ratio, the mobile application administrator can efficiently collect user feedback on the mobile application while ensuring system stability by gradually increasing the rollout ratio.

[0083] Figure 8 is a sequence diagram illustrating an example of the operation method of the apparatus and other servers according to various embodiments of the present invention. In step S810, the other server 140 may generate a notification indicating that there is an error in the first version of the mobile application.

[0084] In one embodiment, other servers 140 may receive user feedback indicating errors in the application from users using version 1 of the mobile application. For example, a user may discover operational or functional errors, defects, or problems while using version 1 of the mobile application and may input user input via the user terminal's input device, thereby transmitting this user feedback indicating errors in version 1 of the mobile application to other servers 140. Other servers 140 may generate a notification indicating errors in version 1 of the mobile application based on the user feedback. For example, based on the determination that the user feedback is of a predetermined type, other servers 140 may transmit the notification to device 110. As an example, the predetermined type of feedback may be a type of feedback predetermined by the operator of other servers 140. As another example, the predetermined type of feedback may be a type of feedback predetermined by the administrator of the mobile application. Other servers 140 may obtain user feedback from the first point in time of the release of the first version of the mobile application until the second point in time of the release of the next version of the mobile application. As the release rate increases from the first point in time to the second point in time, the number of users using the first version will also increase, and therefore, the possibility of finding bugs in the first version of the mobile application may increase.

[0085] In step S820, a notification may be transmitted from another server 140 to the device 110. In one embodiment, the other server 140 may transmit the notification to the device 110 via a network.

[0086] In step S830, device 110 may generate fifth information that interrupts the release of version 1 of the mobile application. In one embodiment, device 110 may determine whether a notification indicating an error exists in version 1 of the mobile application was received from other servers 140 during the period from time 1 to time 2. In one embodiment, based on the determination that a notification was received from other servers 140 at time 3 between time 1 and time 2, device 110 may generate fifth information that interrupts the release of version 1 of the mobile application. In one embodiment, the fifth information may further include information to release version 2 of the mobile application, which is a predecessor to version 1, to all users.

[0087] In step S840, the fifth information can be transmitted from device 110 to other servers 140. In one embodiment, device 110 can transmit the fifth information to other servers 140 via a network. In one embodiment, device 110 can transmit the fifth information to other servers 140 immediately upon receiving the third notification. In one embodiment, device 110 can transmit the fifth information to other servers 140 at any time within the date to which the third notification occurs. In one embodiment, device 110 can transmit the fifth information to other servers 140 after a predetermined period from the third notification.

[0088] In step S850, other servers 140 may interrupt the release of version 1 of the mobile application based on information 5. In one embodiment, other servers 140 can determine in such a way that users cannot access version 1 of the mobile application uploaded to the mobile application store. In one embodiment, other servers 140 may re-upload version 2 of the mobile application to the mobile application store, thereby re-releasing version 2 of the mobile application to users.

[0089] The flowcharts shown herein describe the steps of the method or algorithm of the present invention sequentially. However, in addition to being performed sequentially, these steps can also be performed in any combination possible order using the present invention. The description of these flowcharts does not preclude variations or modifications to the method or algorithm, and does not imply that any step is necessary or preferred. In one embodiment, at least some steps may be performed in parallel, repeatedly, or heuristically. In one embodiment, at least some steps may be omitted, or other steps may be added.

[0090] Various embodiments of the present invention can be implemented in software form on a machine-readable storage medium. The software can be any software used to implement the various embodiments of the present invention. Programmers in the art to which this invention pertains can deduce the software based on the various embodiments of the present invention. For example, the software can be a program that includes machine-readable commands (e.g., code or code segments). The machine is a device capable of acting according to commands invoked from the storage medium, such as a computer. In one embodiment, the machine can be device 110 of an embodiment of the present invention. In one embodiment, the processor 210 of the machine can execute the invoked command, thereby enabling the components of the machine to perform functions corresponding to the command. In one embodiment, the processor 210 can be processor 210 of an embodiment of the present invention. The storage medium can refer to all kinds of recording media capable of being read by a machine and storing data. Storage media may include, for example, ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, etc. In one embodiment, the storage medium can be memory 220. In one embodiment, the storage medium can also be implemented in the form of being distributed across computer systems connected to a network. Software can be distributed across computer systems and executed. The storage medium can be a non-transitory storage medium. Non-transitory storage medium refers to a tangible medium that exists without regard to semi-permanent or temporary data storage, excluding transiently transmitted signals.

[0091] The technical concept of the present invention has been described above based on various embodiments. However, the technical concept of the present invention includes various substitutions, variations, and modifications that can be understood by those skilled in the art within which the present invention pertains. Furthermore, it should be understood that such substitutions, variations, and modifications may be included within the scope of the appended patent applications.

[0092] 100: System 110: Device 120: Terminal 1 130: Terminal 2 140: Other Servers 210: Processor 220: Memory 230: Communication circuit S310: Steps S320: Steps S330: Steps S340: Steps S350: Steps S410: Steps S420: Steps S430: Steps S510: Steps S520: Steps S530: Steps S610: Steps S620: Steps S630: Steps S640: Steps S650: Steps S710: Steps S720: Steps S730: Steps S810: Steps S820: Steps S830: Steps S840: Steps S850: Steps

Claims

1. A device for distributing mobile applications, comprising: The device comprises one or more processors and one or more memories storing commands to be executed by the processors; and the device is configured such that, when executing the commands, the processors perform the following: ... Based on the first information and the second information mentioned above, the initial rollout ratio of the first version of the mobile application is determined; upon determining the initial rollout ratio, the third information instructing the initial rollout ratio is transmitted to other servers; it is configured such that, when determining the initial rollout ratio, the one or more processors perform the following: based on the first information, determine whether the code information of each of the one or more pull requests includes a deactivation code that disables the corresponding change; determine the ratio of pull requests that do not include the deactivation code, i.e., the first ratio; based on the first ratio, determine the initial rollout ratio.

2. The apparatus of claim 1 is configured such that, when determining the initial ejection ratio, one or more processors are configured such that: the higher the first ratio, the smaller the initial ejection ratio is determined.

3. The apparatus of claim 1 is configured such that, when determining the initial rollout ratio, the processors of the aforementioned one or more processors: Based on the second information, based on one or more first lines included in the first code for implementing the first version of the mobile application and one or more second lines included in the second code for implementing the second version of the mobile application, determine the lines in the first version of the mobile application that have changed compared to the second version of the mobile application; determine the ratio of the lines that have changed in the aforementioned one or more first lines, i.e., the second ratio; and determine the initial rollout ratio based on the second ratio.

4. The apparatus of claim 3 is configured such that, when determining the initial ejection ratio, one or more processors are configured such that: the higher the second ratio, the smaller the initial ejection ratio is determined.

5. The apparatus of claim 3 is configured such that, when determining the initial ejection ratio, the processors of claim 1 or more determine the initial ejection ratio as follows: the larger the sum of the value obtained by multiplying the first ratio by the first weighted value and the value obtained by multiplying the second ratio by the second weighted value, the smaller the initial ejection ratio is determined; and each of the first weighted value and the second weighted value is 0 or more and 1 or less, and the sum of the first weighted value and the second weighted value is 0 or more and 1 or less.

6. The apparatus of claim 5, wherein the first weighted value is greater than the second weighted value.

7. The apparatus of claim 1 is configured such that the one or more processors described above: after the release of the mobile application at the first point in time according to the initial release ratio, transmits fourth information to the other servers, the fourth information being such that the release ratio increases from the day following the date to which the first point in time pertains until the second point in time when the new updated version of the mobile application is released, the release ratio being the percentage of all users who accept the release of the first version of the mobile application.

8. The device as claimed in claim 7, wherein the fourth information is information that causes the launch rate to increase equally each day from the day following the date to which the first time point belongs until the second time point.

9. The device as requested in item 7, wherein the aforementioned fourth information is information that increases the launch rate at the aforementioned second point in time to indicate that 100% of the information has been released to all users.

10. The apparatus of claim 7 is configured such that one or more processors are configured to: determine whether, during the period from the first time point to the second time point, a notification indicating an error in the first version of the mobile application is received from the other server.

11. The apparatus of claim 10 is configured such that the processors described above, based on the determination that the notification was received from the other server at a third time point between the first and second time points described above, transmits fifth information to the other server that interrupts the release of the first version of the mobile application.

12. The device as requested in item 11, wherein the aforementioned fifth information further includes information on the distribution of the aforementioned second version of the mobile application to all users.

13. A method for distributing a mobile application, implemented in a device including one or more processors and one or more memories storing commands for execution by the one or more processors, comprising the steps of the one or more processors as follows: obtaining a request to determine the initial launch rate of a first version of the mobile application to be distributed, the initial launch rate being the ratio of users to be distributed at a first point in time of the first distribution of the first version of the mobile application; obtaining first information of one or more pull requests, the pull requests corresponding to one or more changes in the first version of the mobile application compared to a second version of the mobile application, which is a prior version of the first version, each of the pull requests requesting the incorporation of its corresponding change into code for implementing the first version of the mobile application; and obtaining second information of the code for implementing the first version of the mobile application. Based on the first information and the second information above, the initial rollout ratio of the first version of the mobile application is determined; and as the initial rollout ratio is determined, the third information instructing the initial rollout ratio is transmitted to other servers, wherein determining the initial rollout ratio includes: based on the first information, determining whether the code information of each of the more than one pull request includes a deactivation code that disables the corresponding change; determining the ratio of pull requests that do not include the deactivation code, i.e., the first ratio; and determining the initial rollout ratio based on the first ratio.

14. A computer-readable recording medium that records, when executed by one or more processors, commands that cause the one or more processors to perform actions, the commands being configured such that the one or more processors: obtain a request to determine the initial release ratio of a first version of a mobile application to be released, the initial release ratio being the ratio of users to be released at the first point in time of the first release of the first version of the mobile application; obtain first information of one or more pull requests, the pull requests corresponding to one or more changes in the first version of the mobile application compared to a second version of the mobile application, which is a prior version of the first version, each of the pull requests requesting the incorporation of its corresponding changes into the code used to implement the first version of the mobile application; obtain second information of the code used to implement the first version of the mobile application. Based on the first information and the second information mentioned above, the initial rollout ratio of the first version of the mobile application is determined. Upon determining the initial rollout ratio, the third information instructing the initial rollout ratio is transmitted to other servers. The command is configured such that one or more processors, when determining the initial rollout ratio, based on the first information, determine whether the code information for each of the one or more pull requests includes a deactivation code to disable the corresponding change; determine the ratio of pull requests that do not include the deactivation code, i.e., the first ratio; and determine the initial rollout ratio based on the first ratio.