Hybrid Mobile App Event tracking or analytics - mobile

I am developing an app built using Angular 2, so I'm constrained to platforms with Cordova plugins (that are available for Cordova Build) or JavaScript Web SDKs.
I have a few simple technical requirements
Track navigation of user or application flow (page views - user navigated to profile page)
Track custom events (user hit cancel when prompted to enter credit card)
Track custom user properties (dimensions - eg. Gender, Location, Age Range)
I'm Considering
Google Analytics - However i see it throws a lot metrics and numbers, but not what I need. I want details of an individual user or a individual application flow and how the user used his application, what was the flow etc, With respect to each device.
Any advice on a platform or SDK I can use to actually retrieve these important analytics which is device or user specific would be much appreciated.

https://github.com/angulartics/angulartics2
angulartics has been rewritten to support angular 2. it supports google analytics. It should work in your angular 2 application. let me know if it works. I would like to play with it as well. There is a angularitics cordova plugin but it is not updated for angular2 yet.

We can do individual level event tracking with different plugins like Appsee and UXCam.
Appsee and UXCam also provides additional support of Video recording of the app and user interactions done by the user i.e, how the user used the application etc. In Addition to that Appsee also provides crash log and analytic support.
Links for Appsee - https://www.appsee.com and
UXCam - https://uxcam.com

Related

Apache Superset on Mobile

Does anyone know if you can expose a superset or chart on a mobile device? Has anyone explored it?
I have researched github and stackoverflow but have not seen anything posted.
There are 2 considerations here:
How to run Superset (the service / code)
Superset is primarily a Python backend application and typically runs on your computer locally or in a cloud environment (like on Amazon Web Services or Microsoft Azure). If you're running Superset locally (e.g. via Docker Compose), you can navigate to localhost:8088 and the Superset backend will serve you frontend code to your web browser. If you're running the Superset backend in a cloud environment, then you'll need to do extra configuration in your cloud environment to expose it safely to a publicly accessible port (which can then be mapped to a web domain you purchased, like "awesomesuperset.com").
How to access charts from a mobile device
Once you've configured Superset to be accessible through a port (that maps to a URL your mobile device can access), you'll be able to navigate to that URL from your mobile web browser.
Superset, at the moment, unfortunately isn't designed for mobile devices. There's been some informal discussion about this in the community, but it's a big undertaking!
So even if you got this all working, I'd generally recommend accessing Superset's UI from a laptop or desktop computer!
Superset in its current state is not designed for mobile form factor. However you can cleverly make use of the grid, you can build a simple mobile ready dashboard. I had created a simple status dashboard for mobile viewing, just using the Big Number chart, pie chart and simple line chart. Not other fancy charts were used and indeed the line chart was limited to 10-15 data points. Just sharing if this helps you.
Note: this would not be a interactive page.
For superset as a whole;
It has, to some extend, some responsiveness but not %100, i.e. the menus will behave according to the media width or height as your window resizes etc. But dashboards will not be responsive.
To display a single chart/dashboard in a native mobile application;
Get an authentication token from the api, and then use (&standalone=true) query parameter in the call to superset. Then the web view (or other browser controls) will display the chart or dashboard.
To display a single chart/dashboard in a web page;
For this, you will need superset to run in an iframe and put a query parameter (&standalone=true). But this is not automatic in its current state. What ever configuration you do, you will not pass even the login screen. To overcome this, session manager must be changed ("app.session_interface") to be able load session state from the URL, not from cookies, in a secure way. This can help you start. But bare in mind that, this is not a fully secure method. Meaning, if the URL you are using to get the dash or chart contains a session state generated by an admin, that means you are giving a free pass to everything in superset.

Salesforce: is it possible to develop a web application on top of Salesforce

Let me start with a bit of background: I'm helping a non-profit organization that would like to have a browser-based application that is backed by Salesforce, but has very specific requirements.
I see Salesforce has a REST API that we can call, so we can develop a standalone application to serve the web pages they want and use the REST API to call Salesforce when needed.
I'm wondering if there is a way to host a web application directly on Salesforce; this way we don't have to have a separate application server. Any recommendations or pointers to documentation/open source products is greatly appreciated.
Yes, you can create services that will allow your app to hit Salesforce
Depending on the type of application, yes you can host it on salesforce using the Salesforce Sites feature, also you can develop and host your app on Heroku which is owned by salesforce and can sync data to and from salesforce using Heroku Connect, or you can build and host it on another service like AWS and connect via the REST API. You just need to investigate and choose the option that best fits your use-case. One thing to be aware of is that there are API limits (the number of calls you can make to salesforce in a rolling 24hr period). Depending the the needs of the app be sure to see if those limits will be an issue. Because if the app makes constant calls to salesforce that could be an issue. But there are things you can do to get around that, like caching.
Yes, both Force.com Sites and Site.com features allow you to host webpages on the Force.com Platform. The markup is stored in Visualforce Pages and can use Apex to access records in the Database. I have migrated multiple websites (including our company's www.mkpartners.com) to Force.com using Force.com Sites.
One thing to keep in mind is that you are limited to 500,000 views per month and the rendering of a page with images that are also stored on the platform will incur a single view for the page and a single view for each image. If you already have a very popular website, I wouldn't migrate. If you're a small business or nonprofit, then it should be fine.
Another thing to keep in mind is that dynamic functionality based on records in the database will not work during maintenance windows. There is the ability to upload a static version of your website to be rendered during these windows though.

is it possible to use data from a website that i don't really have access to for my cordova/phonegap app

I'm in the process of making an app for my assessment at uni using cordova/phonegap and was just wondering if its possible for me to use data from a my unis ecom website for my app without having any back-end access to it, so like images/prices/descriptions...synced to my app?
yes it is certainly possible, because Cordova means working via Javascript and a HTML5 Rendering Engine. It is with some reservations entirely possible to load data from an webserver and use it in an App.
The only thing is to ask, whether it is also a smart-choice. If you want your app not to break when the data from the website gets changed (see https://en.wikipedia.org/wiki/Link_rot )
Also the server can somewhat prevent access of data from contextes outside of the webpage, especially if TSL/HTTPS connection is offered and content is only available after authentication.
Yet anyway its the magic of Javascript to be very good in doing things with web/online resources and displaying HTML5. Cordova and PHonegap is hence imo much better than the very challenging JAVA-Dalvik and IOs native programming that one would have to use else
Likely not,
Google and Apple frowns on using apps as wrappers for websites.
Quote Google Developer Program Policies - Spam and Placement in the Store
Do not post an app where the primary functionality is to:
Drive affiliate traffic to a website or
Provide a webview of a website not owned or administered by you (unless you have permission from the website owner/administrator to do so)
And
Quote Apple iTunes Guidelines - 2.12
Apps that are not very useful, unique, are simply web sites bundled as Apps, or do not provide any lasting entertainment value may be rejected

How do you only load necessary parts of angular app based on user permissions/role?

I am currently in the research process of building my first application in angular2 and I have a question on how to restrict the client side javascript/content that a user will see based on the permissions they have in the application.
My application will have numerous permissions that will restrict users from seeing certain pages, along with the ability to do certain actions on a page. For a simplistic perspective, think of a configuration area for the tool/application that only someone with admin permission would be able to access. A non-privileged user would only see the main menu items and not the "Site Settings" which leads to the admin area and therefore hopefully none of the templates/components that encompass said area.
I came across this link (http://blog.mgechev.com/2015/12/30/angular2-router-dynamic-route-config-definition-creation/) and think this might be what I need, but was hoping for other people's thoughts who are more familiar with angular and other SPA type client-side javascript frameworks.
How do you setup an angular2 application so that only applicable templates and components are downloaded to the client based on the user's permissions? Does all of this get thrown out the window once you use a process that combines all the angular files to limit the number of js files the client browser needs to load? I realize the importance of securing the middle tier API, but don't see the point of having clients download a bunch of data/templates that they will never be able to access. Initial loads should be as fast as possible.

develop Web sites for mobiles

I want to implement "mobile website provider" tool. Basically, It intake desktop website url and generate a mobile version of website without edit/add additional content to the desktop website. I am planning to design a product like (what mofuse.com does. This website create mobile websites). This tool should be hassle free to client(who are not tech savvy.)
1.Q) I want to know kind of functionality involved in this process.
2.Q) In Java Technology, I need the tool set and functionality of this actitity.
As I am new to this mobile application environment. Any information(web links) regarding this will be appreciated.
Update:
its not like skweezer.com.
I had a website and I want to "mobile"ize it. 1) What kind of java tool set I have to use to create mobile web site? 2) How to test in multiple mobile devices 3) How the domain name will be created for mobile websites.
Check out our Wapple Architect tech (http://wapple.net) - we allow you to use the same content from web to mobile, but if it's mobile, instead of outputting the html, use a web service to turn it into the right content for that particular handset.
Mobilizes the same domain, no need for m.yourdomain.com or anything like that.
Check http://wapple.net on a mobile for example!
there are certain plugins which mobilise your website .
they check user agent and if user agent is of mobile browser they load another css of mobile and if you want to redirect some another redirect it ther.
you dont have to buy separate domain make sub domain or cname like
m.yourdomain.ccom
wap.yaourdomain.com
try some javacripts code which detect browser type and redirect accordingly.
The best place to learn about mobile toolkits are
WURFL - The open source community built around profiling devices and managing their capabilities (http://wurfl.sourceforge.net/)
Mobile Elements - A tool to help you build mobile sites using a proxy type approach (http://www.mobilelements.com)
Device Atlas - A device profiling tool (http://www.deviceatlas.com)

Resources