More severely, mobile apps are often closed-source, i.e. their source code is not publicly available. Thus, finding and learning code examples from existing mobile app projects would be difficult.
to conclude
to sum up
to summarise
i.e.
mobile apps are often closed-source, i.e. their source code is not publicly available.
For example, an Android app might make 8-42% of its external dependencies to Android APIs and 7-68% to Java APIs
e.g.
typical API usage scenarios often include several API elements and follow special rules, e.g. for pre- and post-conditions or for control and data flows
in other words
in particular
including
mainly
mostly
namely
notably
or
particularly
such as
traditional testing such as coverage-based approaches may not be effective.
Modern software systems are highly-configurable, allowing users to customize a large number of configuration operations while retaining a core set of functionality.
most existing work assumes default configurations while ignoring the influence of various configurations.
Concession (agrees that something is good, with limitations)†
admittedly
after all
all the same
although
although this may be true
at the same time
besides
despite
doubtless
even if
even though
even so
however
However, learning API usages is often challenging due to the fast-changing nature of API frameworks for mobile systems and the insufficiency of API documentation and source code examples.
in spite of
naturally
nevertheless
no doubt
nonetheless
notwithstanding
only
still
under certain circumstances
up to a point
while
While researchers have developed techniques to analyze, quantify, detect, and fix performance bugs, we conjecture that many of these techniques may not be effective in highly-configurable systems.