Patents Assigned to Apptimize LLC
  • Patent number: 10761905
    Abstract: Implementations are disclosed herein for enhancing swizzling technology. In at least one implementation, functions are hooked by modifying their machine code implementations to jump to a central callback function. The central callback function may then route to other target functions that serve to replace the hooked functions. In another implementation, the machine code implementations are modified to jump to intermediate functions. The intermediate functions invoke dispatch functions that can call into a central callback function. The central callback function may return to the hooked functions.
    Type: Grant
    Filed: September 30, 2016
    Date of Patent: September 1, 2020
    Assignee: Apptimize LLC
    Inventors: Nancy Hua, James Brandon Koppel, Jeremy Nelson Orlow
  • Patent number: 10761835
    Abstract: An application includes main program code, but also a call handler and an update module. When a specific method or function in the operating system is called, the call is redirected to the call handler in the application. The call handler then calls the function in the operating system. The function retrieves an object to present in a user interface to the application. But before the object is rendered, program control is returned to the call handler, which calls into the update module. The update module determines whether or not the appearance of the object should be changed, for example, in accordance with an A/B test or any other type of update. If so, visual characteristics of the object are changed. Control reverts back to the operating system from the call handler and the object, in its changed form, is presented in the user interface.
    Type: Grant
    Filed: October 14, 2015
    Date of Patent: September 1, 2020
    Assignee: Apptimize LLC
    Inventor: James Brandon Koppel
  • Patent number: 10747510
    Abstract: Techniques to facilitate modifications to program execution in an application at runtime are disclosed herein. In at least one implementation, a copy of a code block associated with code is created. A flag associated with the copy of the code block is modified to mark the copy of the code block as having a native code version of the code. Metadata associated with the copy of the code block is modified to identify alternative code to run instead of the native code version of the code. A pointer associated with the code block is modified to point to a trampoline function. The trampoline function checks whether the code block is associated with a modification, and when the code block is associated with the modification, then the trampoline function calls the copy of the code block to invoke the alternative code by virtue of the flag and the metadata.
    Type: Grant
    Filed: June 4, 2019
    Date of Patent: August 18, 2020
    Assignee: Apptimize LLC
    Inventor: Timothy D. Lundeen
  • Patent number: 10725888
    Abstract: Techniques to facilitate provision of different user experiences to different groups of users of a mobile application are disclosed herein. In at least one implementation, a manifest provided by an application development and optimization platform is received that defines a plurality of user segments and a plurality of feature variants individually associated with the plurality of user segments. The manifest is processed to determine a segment of the plurality of user segments associated with a user of the mobile application along with a feature variant of the plurality of feature variants associated with the segment of the user. Execution of the mobile application is monitored for an occurrence of an event that triggers a default feature of the mobile application, and responsive to the event, the default feature is replaced with the feature variant associated with the segment of the user.
    Type: Grant
    Filed: May 1, 2018
    Date of Patent: July 28, 2020
    Assignee: Apptimize LLC
    Inventors: Jeff DiTullio, Wesley Reitzfeld
  • Patent number: 10705858
    Abstract: Techniques to facilitate acquisition of analytics associated with an application are disclosed herein. In at least one implementation, an analytics function call from main program code of the application to a third party analytics function is monitored. Responsive to the analytics function call, the analytics function call is intercepted and a call handler function is invoked instead of the third party analytics function. The call handler function processes the analytics function call to extract analytics data from the analytics function call. A copy of the third party analytics function is then called.
    Type: Grant
    Filed: April 11, 2019
    Date of Patent: July 7, 2020
    Assignee: Apptimize, LLC
    Inventors: Michael L. Poon, Roberto Carli, James Brandon Koppel
  • Patent number: 10671357
    Abstract: Techniques to facilitate previewing changes to visual elements of a mobile application at different display sizes are disclosed herein. In at least one implementation, screenshot capture instructions provided by an application development and optimization platform are received that indicate at least one requested display size at which to provide a view of the mobile application. An actual screenshot of the view of the mobile application is captured, and a virtual screenshot of the view is rendered by resizing the actual screenshot to the requested display size indicated in the screenshot capture instructions. The actual screenshot of the view and the virtual screenshot of the view rendered at the requested display size are transferred for delivery to the application development and optimization platform.
    Type: Grant
    Filed: June 5, 2018
    Date of Patent: June 2, 2020
    Assignee: Apptimize LLC
    Inventor: Timothy D. Lundeen
  • Patent number: 10628188
    Abstract: Techniques to facilitate prevention of just-in-time (JIT) translations of application functions are disclosed herein. In at least one implementation, a JIT translation function of an operating system is modified in memory to redirect the JIT translation function to execute alternative code when the JIT translation function is called. When the JIT translation function is called for an application function, the alternative code is executed to determine whether the application function has been modified. When the alternative code determines that the application function has been modified, the JIT translation function is prevented from translating the application function into a native machine code version. When the alternative code determines that the application function has not been modified, the JIT translation function is allowed to translate the application function into the native machine code version.
    Type: Grant
    Filed: August 24, 2018
    Date of Patent: April 21, 2020
    Assignee: Apptimize LLC
    Inventors: Jeff DiTullio, Michael Ryan Fenton, James Brandon Koppel, Timothy D. Lundeen
  • Patent number: 10606612
    Abstract: Techniques to bypass system context checks to facilitate opening shared-object libraries are disclosed herein. In at least one implementation, a copy of a header of a shared-object library loaded by a runtime system is created. The header of the shared-object library loaded by the runtime system is patched with code configured to call an open function, wherein the code patched into the header of the shared-object library executes and calls the open function from the shared-object library loaded by the runtime system, the call to the open function is recognized as within a context of the runtime system, and the shared-object library is allowed to be opened. A pointer to the shared-object library opened in memory is received, and the header of the shared-object library is restored to an original version using the copy of the header of the shared-object library.
    Type: Grant
    Filed: August 24, 2018
    Date of Patent: March 31, 2020
    Assignee: Apptimize LLC
    Inventors: Jeff DiTullio, Michael Ryan Fenton, James Brandon Koppel, Timothy D. Lundeen
  • Patent number: 10540168
    Abstract: Techniques to facilitate modification of content displayed in a webview embedded into a mobile application are disclosed herein. In at least one implementation, webview modification instructions provided by an application development and optimization platform are received that indicate modified webview content associated with a uniform resource identifier (URI) accessed by the mobile application in the webview. Execution of the mobile application is monitored for an occurrence of an event that triggers loading of the URI in the webview of the mobile application. Responsive to the event, the webview modification instructions are executed to present the modified webview content in the webview of the mobile application.
    Type: Grant
    Filed: May 1, 2018
    Date of Patent: January 21, 2020
    Assignee: Apptimize LLC
    Inventors: Jeff DiTullio, Devon Richards, Steven Cole Flournoy