#61

Product support

Visit this product's website for support.

Categories

  • Developer Tools

This plugin enables you to manage mobile applications.

  • You can add your iOS, Android and other store app listing into the backend.
  • You can monitor individual app installs by adding some code on the client-side (see video or documentation).
  • You can put your mobile app into maintenance mode so that it blocks in front-end for your users with a custom message like “Server down till midnight".

Tutorial and demonstration of the plugin:

[Note: Right now the Android plugin is under development so I have disabled the reserved plugin feature, you can manually create Android using Platforms settings directly]

Features

  • Add multiple variants and platforms.
  • Dashboard widget to provide app install analytics.
  • Maintenance mode feature to block variants undergoing maintenance.

Coming Soon

  • Custom fields and track those values.

I have plans to update this plugin much further to add useful features but these are not guaranteed to be added unlike the above "Coming Soon" section. I am writing down these under Optionals section below. Pricing of plugin may be increased as optionals are added so I want the early adopters of this to enjoy the benefits as more and more features get added. I may also make separate plugins from the optionals if needed. And if you have any suggestions or feature requests that you think should be in this plugin, go ahead and message me. I would love to hear your ideas.

Optionals

  • Instance blocking to block a user of an app.
  • Events list to allow frontends to send custom events such as “App Started”, “App Closed”, etc. with API + analytics features for events.

Requirements

App Listings

Client-side Integration

Once you have created the plugin entry in the backend, you can do the client side integration. On the mobile app, you will have to make a call to the backend using the REST API that has been provided. See the API Specifications section to find out more about this.

Events

The following Events have been provided to provide extensibility of the plugin.

mohsin.mobile.beforeSave uses 2 parameters instance_id and package.

mohsin.mobile.afterSave uses 1 parameter install. You can listen to these events and extend the plugin’s features. Make sure that the return value of the event is of the type JsonResponse. To handle an error in your extended plugin simply return the 400 status code in teh JsonResponse and the action’s logic will throw an error to the client.

For example, consider that you are making a plugin that writes it’s own logic to create instance IDs. In this case, you can use this in your plugin boot method:

Event::listen('mohsin.mobile.beforeSave', function($instance_id, $package) {
    if(check_valid_instanceId($instance_id))
        return response()->json(‘true’, 200);
    else
        return response()->json('Invalid Instance ID', 400);
});

API Specifications

POST /installs

Resource URL: /api/v1/installs Run in Postman

Parameters
instance_id A unique ID, such as device ID or an ID generated using Google’s Instance ID API. Eg. 573b61d82b4e46e3
package The package name of the application. Must match the name specified in the variants. Eg. com.acme.myapp

Troubleshooting

  • If you get an error in Installs controller stating that Undefined offset, it means you had selected some variant and then deleted that variant. Simply remove the browser cookies and it should be fine. Alternatively, you could wait 2 hours for the cookie to expire and it will be restored back to the default value 1.
  • If you face any other error or found a bug, do not hesitate to get in touch with me. I will help resolve it.
1.0.7

Optimized Installs list using Dropdown widget.

Jan 23, 2017

1.0.6

Added plugin test cases

Nov 28, 2016

1.0.5

Added better validation rules

Nov 16, 2016

1.0.4

Apps can now enable maintenance mode.

Oct 19, 2016

1.0.3

Added app installs overview widget

Oct 16, 2016

1.0.2

Create Apps Table

Sep 27, 2016

1.0.1

First version of Mobile

Sep 27, 2016