IEEE Consumer Electronics Magazine - March/April 2020 - 59

Current Approaches and Need for a New
Dynamic Solution for User Path Analytics
Trackers, including the analytics ones, usually
provide their SDKs as libraries that can be easily
embedded into apps. Nevertheless, this integration implies direct code changes in the application.
As it is explained by Ferre et al.8 current solutions require an initial analysis of the events to
be tracked at the very beginning of the design
phase in order to include the related code in the
app. Moreover, the modification of these events
implies a refactorization of the app each time a
new event needs to be tracked,9 following a cycle
schema that repeats itself. In this context, a more
efficient solution for user tracking is needed.
On the other hand, it is also important to consider the development and deployment time that
every update involves. In this context, a quick
code modification can imply a late new version
due to different factors. A change in the development team, an error in the specification or even
the time needed for market publication can
cause an important delay in releasing the app,
reducing the window opportunity of the change.
Finally, frequent modifications needed by current solutions for allowing a dynamic mobile app
analytics also present another important problem:
user's behavior in relation to app updates. In this
respect, although users are aware of mobile app
updates, almost half of them do not enable automatic updates (due to several reasons, mainly lack
of memory space, phone and app crashes, security
and privacy concerns, and feature and functionality loss),10 resulting in a loss of clients. Moreover,
frequent updates may be discouraging, making
that almost 35% of the users uninstall apps
because of too many releases. Therefore, a solution for dynamic tracking of the user's behavior,
which does not involve any update of the code will
be an efficient answer for mobile in-apps analytics.
In this regard, this solution should not only reduce
the related efforts, but also removes the user's
dependence in order to provide an agile and real
time response that makes the user tracking more
affordable for different mobile stakeholders.

MANTRA: A NEW IN-APP USER
ACTIVITY TRACKING APPROACH
Aspect-Oriented Programming
According to its own definition,11 AOP is an
additional programming paradigm that extends

March/April 2020

Table 1. AOP main concepts.
Concept

Description

Crosscutting
concern

An aim that a program wants to achieve, it should
be scattered among different classes and methods.

Aspect

A modularization of a concern that cuts across
multiple objects.

Join point

A well-defined position in a program, such as the
execution of a method, the handling of an
exception, etc.

Advice

A class of functions that can modify other
functions and that can be applied at a given join
point.

Pointcut

A set of join points whenever reached the
corresponding advices will be executed.

Weaving

The process in which an aspect is added into an
object. It can be executed during the compilation
time or during the running of the program.

the traditional object-oriented programming
model to improve code reuse across different
object hierarchies. AOP modularizes the crosscutting concerns into units, called aspects, and
then separates them from the modules that
implements the system basic functionality, that
is, the primary business logic, allowing to clearly
express programs by including appropriate isolation, composition, and reuse of the aspect code.
The adoption of AOP has improved recently,
expanding its use to many different fields, such
as software testing12 and web applications13
among others, due to a set of important advantages such as given as follows.14
1) More accuracy in software development,
especially in changing and upgrading: AOP
provides and efficient way to modularize the
code by gathering what deals with the same
aspect, avoiding redundancy.
2) Steady implementation by handling each
aspect once.
3) Reusability enhancement, since AOP allows
isolating core concerns from the crosscutting ones, enabling more mixing and matching between them.
4) Skill transfer enhancement: AOP concepts are
reusable and transferable, reducing developers training and implementing time and cost.
For doing this, AOP introduces a set of concepts that enables its application, as can be seen

59



IEEE Consumer Electronics Magazine - March/April 2020

Table of Contents for the Digital Edition of IEEE Consumer Electronics Magazine - March/April 2020

Contents
IEEE Consumer Electronics Magazine - March/April 2020 - Cover1
IEEE Consumer Electronics Magazine - March/April 2020 - Cover2
IEEE Consumer Electronics Magazine - March/April 2020 - Contents
IEEE Consumer Electronics Magazine - March/April 2020 - 2
IEEE Consumer Electronics Magazine - March/April 2020 - 3
IEEE Consumer Electronics Magazine - March/April 2020 - 4
IEEE Consumer Electronics Magazine - March/April 2020 - 5
IEEE Consumer Electronics Magazine - March/April 2020 - 6
IEEE Consumer Electronics Magazine - March/April 2020 - 7
IEEE Consumer Electronics Magazine - March/April 2020 - 8
IEEE Consumer Electronics Magazine - March/April 2020 - 9
IEEE Consumer Electronics Magazine - March/April 2020 - 10
IEEE Consumer Electronics Magazine - March/April 2020 - 11
IEEE Consumer Electronics Magazine - March/April 2020 - 12
IEEE Consumer Electronics Magazine - March/April 2020 - 13
IEEE Consumer Electronics Magazine - March/April 2020 - 14
IEEE Consumer Electronics Magazine - March/April 2020 - 15
IEEE Consumer Electronics Magazine - March/April 2020 - 16
IEEE Consumer Electronics Magazine - March/April 2020 - 17
IEEE Consumer Electronics Magazine - March/April 2020 - 18
IEEE Consumer Electronics Magazine - March/April 2020 - 19
IEEE Consumer Electronics Magazine - March/April 2020 - 20
IEEE Consumer Electronics Magazine - March/April 2020 - 21
IEEE Consumer Electronics Magazine - March/April 2020 - 22
IEEE Consumer Electronics Magazine - March/April 2020 - 23
IEEE Consumer Electronics Magazine - March/April 2020 - 24
IEEE Consumer Electronics Magazine - March/April 2020 - 25
IEEE Consumer Electronics Magazine - March/April 2020 - 26
IEEE Consumer Electronics Magazine - March/April 2020 - 27
IEEE Consumer Electronics Magazine - March/April 2020 - 28
IEEE Consumer Electronics Magazine - March/April 2020 - 29
IEEE Consumer Electronics Magazine - March/April 2020 - 30
IEEE Consumer Electronics Magazine - March/April 2020 - 31
IEEE Consumer Electronics Magazine - March/April 2020 - 32
IEEE Consumer Electronics Magazine - March/April 2020 - 33
IEEE Consumer Electronics Magazine - March/April 2020 - 34
IEEE Consumer Electronics Magazine - March/April 2020 - 35
IEEE Consumer Electronics Magazine - March/April 2020 - 36
IEEE Consumer Electronics Magazine - March/April 2020 - 37
IEEE Consumer Electronics Magazine - March/April 2020 - 38
IEEE Consumer Electronics Magazine - March/April 2020 - 39
IEEE Consumer Electronics Magazine - March/April 2020 - 40
IEEE Consumer Electronics Magazine - March/April 2020 - 41
IEEE Consumer Electronics Magazine - March/April 2020 - 42
IEEE Consumer Electronics Magazine - March/April 2020 - 43
IEEE Consumer Electronics Magazine - March/April 2020 - 44
IEEE Consumer Electronics Magazine - March/April 2020 - 45
IEEE Consumer Electronics Magazine - March/April 2020 - 46
IEEE Consumer Electronics Magazine - March/April 2020 - 47
IEEE Consumer Electronics Magazine - March/April 2020 - 48
IEEE Consumer Electronics Magazine - March/April 2020 - 49
IEEE Consumer Electronics Magazine - March/April 2020 - 50
IEEE Consumer Electronics Magazine - March/April 2020 - 51
IEEE Consumer Electronics Magazine - March/April 2020 - 52
IEEE Consumer Electronics Magazine - March/April 2020 - 53
IEEE Consumer Electronics Magazine - March/April 2020 - 54
IEEE Consumer Electronics Magazine - March/April 2020 - 55
IEEE Consumer Electronics Magazine - March/April 2020 - 56
IEEE Consumer Electronics Magazine - March/April 2020 - 57
IEEE Consumer Electronics Magazine - March/April 2020 - 58
IEEE Consumer Electronics Magazine - March/April 2020 - 59
IEEE Consumer Electronics Magazine - March/April 2020 - 60
IEEE Consumer Electronics Magazine - March/April 2020 - 61
IEEE Consumer Electronics Magazine - March/April 2020 - 62
IEEE Consumer Electronics Magazine - March/April 2020 - 63
IEEE Consumer Electronics Magazine - March/April 2020 - 64
IEEE Consumer Electronics Magazine - March/April 2020 - 65
IEEE Consumer Electronics Magazine - March/April 2020 - 66
IEEE Consumer Electronics Magazine - March/April 2020 - 67
IEEE Consumer Electronics Magazine - March/April 2020 - 68
IEEE Consumer Electronics Magazine - March/April 2020 - 69
IEEE Consumer Electronics Magazine - March/April 2020 - 70
IEEE Consumer Electronics Magazine - March/April 2020 - 71
IEEE Consumer Electronics Magazine - March/April 2020 - 72
IEEE Consumer Electronics Magazine - March/April 2020 - 73
IEEE Consumer Electronics Magazine - March/April 2020 - 74
IEEE Consumer Electronics Magazine - March/April 2020 - 75
IEEE Consumer Electronics Magazine - March/April 2020 - 76
IEEE Consumer Electronics Magazine - March/April 2020 - 77
IEEE Consumer Electronics Magazine - March/April 2020 - 78
IEEE Consumer Electronics Magazine - March/April 2020 - 79
IEEE Consumer Electronics Magazine - March/April 2020 - 80
IEEE Consumer Electronics Magazine - March/April 2020 - 81
IEEE Consumer Electronics Magazine - March/April 2020 - 82
IEEE Consumer Electronics Magazine - March/April 2020 - 83
IEEE Consumer Electronics Magazine - March/April 2020 - 84
IEEE Consumer Electronics Magazine - March/April 2020 - 85
IEEE Consumer Electronics Magazine - March/April 2020 - 86
IEEE Consumer Electronics Magazine - March/April 2020 - 87
IEEE Consumer Electronics Magazine - March/April 2020 - 88
IEEE Consumer Electronics Magazine - March/April 2020 - 89
IEEE Consumer Electronics Magazine - March/April 2020 - 90
IEEE Consumer Electronics Magazine - March/April 2020 - 91
IEEE Consumer Electronics Magazine - March/April 2020 - 92
IEEE Consumer Electronics Magazine - March/April 2020 - 93
IEEE Consumer Electronics Magazine - March/April 2020 - 94
IEEE Consumer Electronics Magazine - March/April 2020 - 95
IEEE Consumer Electronics Magazine - March/April 2020 - 96
IEEE Consumer Electronics Magazine - March/April 2020 - 97
IEEE Consumer Electronics Magazine - March/April 2020 - 98
IEEE Consumer Electronics Magazine - March/April 2020 - 99
IEEE Consumer Electronics Magazine - March/April 2020 - 100
IEEE Consumer Electronics Magazine - March/April 2020 - 101
IEEE Consumer Electronics Magazine - March/April 2020 - 102
IEEE Consumer Electronics Magazine - March/April 2020 - 103
IEEE Consumer Electronics Magazine - March/April 2020 - 104
IEEE Consumer Electronics Magazine - March/April 2020 - 105
IEEE Consumer Electronics Magazine - March/April 2020 - 106
IEEE Consumer Electronics Magazine - March/April 2020 - 107
IEEE Consumer Electronics Magazine - March/April 2020 - 108
IEEE Consumer Electronics Magazine - March/April 2020 - 109
IEEE Consumer Electronics Magazine - March/April 2020 - 110
IEEE Consumer Electronics Magazine - March/April 2020 - 111
IEEE Consumer Electronics Magazine - March/April 2020 - 112
IEEE Consumer Electronics Magazine - March/April 2020 - 113
IEEE Consumer Electronics Magazine - March/April 2020 - 114
IEEE Consumer Electronics Magazine - March/April 2020 - 115
IEEE Consumer Electronics Magazine - March/April 2020 - 116
IEEE Consumer Electronics Magazine - March/April 2020 - Cover3
IEEE Consumer Electronics Magazine - March/April 2020 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20240102
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20231112
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20230910
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20230708
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20230506
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20230304
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20230102
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20221112
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20220910
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20220708
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20220506
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20220304
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20220102
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20211112
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20210910
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20210708
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20210506
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20210304
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_202010
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_202009
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_202007
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_202004
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_202003
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_202001
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201910
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201909
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201907
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201905
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201903
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201901
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201811
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201809
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201807
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201805
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201803
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_july2017
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_april2017
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_january2017
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_october2016
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_july2016
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_april2016
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_january2016
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_october2015
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_july2015
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_april2015
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_january2015
https://www.nxtbookmedia.com