Mobile applications

A mobile application is a software that runs on a mobile device. Representative classes of mobile devices include smartphones, tablets, and wearables (for instance, smartwatches and augmented / virtual reality headsets). There are different options to realize a mobile application. The one considered in this course is to build a native mobile app which uses directly the features of the device operating system through an Application Programming Interface (API). Native mobile applications for Android are generally written in Java and Kotlin, sometimes in C or C++. In the first case, they are compiled into an intermediate format (so-called bytecode), which is then executed by the Android Managed Runtime (ART). ART works very similar to the Java Virtual Machine: it takes the bytecode and runs the corresponding instructions on the device hardware. This approach has the advantage of supporting heterogeneous device platforms, even though it has some execution overhead. A different option is to write a web application that is tailored for mobile devices, particularly, with a user interface that supports mobile-class displays and touch events / gestures. The mobile version of the web app is run by a web browser. It is also possible to build a mobile application by leveraging web technologies as well. In this case, the developer just writes a web application and packages it as a mobile app. The app is installed the same way as regular (native) applications and does not require a web browser. Applications of this kind are called hybrid apps and have the advantage of being cross-platform, namely, they support multiple mobile operating systems. React native is a popular framework to build web-based apps for both Android and IOS.

Mobile computing

Mobile computing is broadly described as the process of computation of a mobile device; more specifically, it is defined as a set of distributed systems and (or) services interacting through mobile communication protocols. The enabling technologies for mobile computing include wireless radios (e.g., cellular, WiFi, Bluetooth) and embedded systems hardware (e.g., high-capacity rechargeable batteries, low-power microcontrollers, a variety of different sensors). Related concepts include pervasive and ubiquitous computing: pervasive means widespread, while ubiquitous means everywhere; in practice they are the same when followed by the word "computing". Pervasive (ubiquitous) computing imply the integration of communication and computing capabilities into the environment through intelligent devices.

Viimeksi muutettu: sunnuntaina 6. syyskuuta 2020, 23.29