Chapter 2. Introduction to Mobile Devices and Apps

Before I dive deeper into the testing chapters, I’d like to introduce you to the history of mobile devices and cellular networks. This may sound a bit boring, but as you will see by the end of this chapter, it’s really important to know the background of the mobile world and to have thorough knowledge of former mobile technologies. Later in this chapter I describe the different mobile app types and the app business models and provide you with a short overview of the current state of mobile app stores.

Let’s start with the word mobile. It comes from the Latin word mobilis, which itself is derived from the Latin verb movere, “to move”—to be able to move around freely and easily by walking, driving, or flying.

This definition sounds really simple and comprehensible, and I’m sure you had something similar in mind. If you look at the word mobile from a technological point of view, it’s not quite as simple due to the vast changes in the way people have begun to use mobile technologies over the past few decades.

So let’s go back a few decades in time.

Overview of Mobile Networks

Before we can communicate with any kind of mobile device, a communication infrastructure must be available. The mobile infrastructure is currently in its fourth generation, known aptly as 4G or LTE (Long-Term Evolution).1 Before that we saw the generations 0G, 1G, 2G, and 3G, and each generation was a milestone at its time of introduction.

1. www.etsi.org/technologies-clusters/technologies/mobile/long-term-evolution

The zero generation—the early predecessors—included just analog radio communication and was mainly used in the 1960s. It is also known as the Mobile Radio Telephone System. Communication at this time was half duplex, meaning that only one person was able to talk at a time while the other listened. The zero generation consisted of different mobile technologies such as Mobile Telephone Service (MTS), Mobile Telephony System D (MTD), Advanced Mobile Telephone System (AMTS), and Offentlig Landmobil Telefoni (OLT). The cell phones were really heavy and were installed mostly in trucks, trains, and other vehicles. The phone consisted of two parts, the transceiver (transmitter and receiver) and the head. The transceiver was responsible for establishing the connection to the local transmitter stations, and the head was wired to the transceiver and consisted of dial keys, a display, and a handset. This generation had a lot of problems with connectivity and had limited numbers of subscribers.

The first-generation (1G) cellular network was an improvement over the zero generation and was introduced in the 1980s. 1G still used analog radio signals to transmit information using the Advanced Mobile Phone Service (AMPS) or Nordic Mobile Telephone (NMT) technology. The first networks were launched in Japan, followed by Denmark, Finland, Norway, Sweden, and the United States. A couple of years later other countries built up their 1G network infrastructure. The biggest advantage over the zero generation was that 1G was able to accommodate up to ten times more users by dividing the local area into smaller cells. This generation had its drawbacks when it came to security as users were able to listen to someone else’s conversation and hack the system to make free calls.

The biggest improvement in mobile communication networks was introduced with the second generation of cellular networks. 2G was first launched in 1991 in Finland using the GSM (Global System for Mobile Communications) standard.2 A couple of years later CDMA (Code Division Multiple Access) was launched in the United States.3 These new standards formed the basis of today’s mobile communication infrastructure and offered three main advantages over their predecessors:

2. www.etsi.org/technologies-clusters/technologies/mobile/gsm

3. www.etsi.org/technologies-clusters/technologies/mobile/w-cdma

• For the first time ever, communication was digital and encrypted.

• 2G was way more efficient and provided better global cell phone coverage.

• Data services were introduced, the most commonly known one being the SMS.

The 2G network was built mainly for voice and text communication and only has slow data transmission. After the 2G networks were established, mobile services usage increased and data transmission became too slow. To achieve higher data transfer rates, the 2G network was extended with the GPRS (General Packet Radio Service)4 and EDGE (Enhanced Data rates for Global Evolution)5 standards. GPRS is also called 2.5G and EDGE, 2.75G. Both technologies have higher data transfer rates (GPRS = 56 Kbit/s up to 115 Kbit/s, EDGE = up to 236 Kbit/s) than the normal 2G network and are the predecessors of the 3G network.

4. www.etsi.org/index.php/technologies-clusters/technologies/mobile/gprs

5. www.etsi.org/index.php/technologies-clusters/technologies/mobile/edge

The third generation of mobile networks (3G) has been around since 2001 and is an evolution of the existing 2G networks. The third generation uses the UMTS (Universal Mobile Telecommunications System)6 and CDMA2000 standards. 3G offers high-speed data transfer rates up to 21 Mbit/s depending on the user’s current location. This high data transfer rate allows smartphone, tablet, or computer users to make video calls, watch mobile TV, and surf the Internet while on the move. The 3G networks with their high-speed data transfer rates have had a major influence on the success of mobile devices and apps.

6. www.etsi.org/technologies-clusters/technologies/mobile/umts

The fourth generation of mobile communication networks accommodated the huge amounts of data now being transferred over the network by increasing data transfer rates even further. The 4G network is basically divided into two standards: WiMAX (Worldwide Interoperability for Microwave Access)7 and LTE. WiMAX offers a download transfer rate of up to 128 Mbit/s and an upload rate of up to 56 Mbit/s. LTE offers download rates of up to 100 Mbit/s and an upload rate of up to 50Mbit/s. If both standards are fully implemented, the download speed can increase to 1 Gbit/s.

7. www.wimaxforum.org/index.htm

Depending on your network provider and country, your smartphone is connected to either a WiMAX or LTE network. If your phone supports 4G networks, you will see a little LTE or 4G icon in the status bar of the phone.

The fifth generation of mobile networks is currently under development. Several research groups have been formed to describe and develop the next generation of mobile communication and architecture. However, this standard will not be available before 2020.8

8. http://europa.eu/rapid/press-release_IP-13-159_en.htm

This was a high-level overview of the technology behind mobile networks, but even this high-level view is important when you start testing your app in different networks using different standards. It’s important to know what kind of network standards are available and which network speeds are provided. Further information on how to test the different data networks will be provided in later chapters. I highly recommend that you use this knowledge in your daily app testing.

Mobile Devices and the Year 2007

Prior to 2007 most phones were so-called feature phones (as described in Chapter 1, “What’s Special about Mobile Testing?”) whose functionality could not be extended with software (apps). Not all of them were able to connect to the Internet, even when the mobile networks were able to handle data transmission. At that time Nokia, Motorola, BlackBerry (Research in Motion), and some other mobile manufacturers dominated the mobile device market. Most of the devices had a small screen and a physical keyboard and were good just for making a call or typing a text message. However, those devices were no fun to use when trying to surf the Web or search for contacts within the phone.

The smartphone revolution started in January 2007 when Apple launched its first iPhone. Steve Jobs presented the first generation of the iPhone with the following sentence: “Today, Apple is going to reinvent the phone.”

And Steve Jobs was right. The mobile device market has of course changed dramatically since 2007. Just one year later, Google presented the first Android smartphone developed by HTC, the HTC Dream (also known as T-Mobile G1). In the following years lots of other manufacturers built their own Android smartphones with different Android software versions.

When Apple announced the iPhone, only Google was fast enough to adapt and build another mobile platform. However, Microsoft and BlackBerry (Research in Motion) have updated their mobile technologies to close the gap between themselves and Apple and Google, but until now they still haven’t managed to catch up.

Since 2007, smartphones have constantly been improved with new hardware and software features, and sometimes it’s hard to follow all the new features that are rolled out into the mobile market.

You need to know what’s inside a smartphone to get an overview of its physical parts and what each of them does. This knowledge will help you understand the devices you want to test, which in turn will help you test more effectively.

If you look at the mobile device next to you, you will see a small, thin, and flat or curved piece of glass, plastic, or metal. All the hardware that is needed to bring this little thing to life is packed into the small case and is not seen by the user. But what’s inside?

A typical smartphone consists of the following hardware components:

• Mainboard or logic board

• CPU (central processing unit)

• GPU (graphics processing unit)

• Memory

• Different antennas and interfaces:

Cellular network chips to connect to 2G, 3G, or 4G

Wi-Fi

NFC (near field communication)

GPS (Global Positioning System)

Bluetooth

• Various sensors (not necessarily all of the ones in this list):

Ambient light sensor

Proximity sensor

Acceleration sensor

Gyroscope

Magnetic sensor

Pressure sensor

Temperature sensor

Humidity sensor

• Battery

• Vibration motor

• Slot for additional memory card

• Slot for SIM card

Here are the parts you can see when you have your smartphone in your hand:

• Smartphone case

• Touchscreen

• Hardware buttons (power button, volume up and down button, navigation buttons)

• Headphone jack

• Speakers and microphones

• Charger/USB connector

• Front and rear cameras

• Flash

If you want to get more detailed information about a specific phone, just use the Internet and search for “teardowns” of the device or check out the device manufacturer’s Web site. The hardware I listed also applies to tablets with some variations.

As a mobile tester, it’s very important that you know all the possible components within a mobile device. This knowledge is needed to identify and narrow down problems or bugs that could be related to the device hardware or your app.

The Big Two

As mentioned in the previous chapter, other mobile platforms such as Windows Phone and BlackBerry have very little market share compared to Android and iOS.9 As of February 2015, market shares were as follows: Android, 55.26%; iOS, 23.82%; Windows Phone, 2.32%; and BlackBerry, 1.66%. The missing 17% includes devices running Symbian, Series 40, and other outdated mobile operating systems.

9. Exact figures on market share can be found here: http://gs.statcounter.com


Important

These figures will of course vary depending on geographical location, but they’re a good indicator of the big picture.


Since BlackBerry and Windows Phone have very little market share, I’ll focus on the big two for the rest of the chapter: iOS and Android.

What are the differences between the two operating systems? What do they have in common? Table 2.1 compares the operating systems based on certain criteria.

Image

Table 2.1 Comparison of Android and iOS

As you can see, both platforms have lots of technologies, functions, and apps in common, such as apps for voice commands, maps, video chats, e-mail, a calendar, and much more. But if you look at the source model and programming languages, you’ll notice the main differences. Parts of the open-source Android operating system are written in C and C++. Android apps are written in Java. iOS is also written in C and C++ and is closed source. iOS apps are written in Objective-C or Swift. iOS uses the open-source Darwin operating system as a system basis, but the finished iOS version as we know it is closed source.

Another obvious difference between the two is the manufacturers. Apple produces iOS devices on its own, whereas Google gives other manufacturers the opportunity to build their own hardware devices based on the Android operating system. The manufacturers are able to extend the raw Android operating system and build a customized Android version tailored to the hardware.

Mobile testers need to know all about the tailoring of the different hardware manufacturers because the user interfaces on Android can differ a lot and therefore influence the behavior of an app. The fragmentation of Android devices and software versions is one of the main challenges that mobile testers need to handle. However, there is also a pure Android device available on the market as Google cooperates with some hardware manufacturers to build their Nexus devices.

Last, I want to point out the differences between the user interfaces. Both platforms provide touch interfaces that have lots of gestures in common such as swiping, tapping, pinch, and zoom, but each has its own UI and design patterns. For complete instructions check the Android design guide10 and the iOS design guide.11 With each new version of the operating system, check those guidelines again, because changes are likely. These patterns must be followed in order to publish an app. If your app doesn’t follow the guidelines, it may well be rejected from the app store, which is more likely to happen in the Apple App Store than in the Android app stores. To get an overview of possible reasons why an app is rejected from an app store, look at the “Common App Rejections” page provided by Apple.12

10. https://developer.android.com/design/index.html

11. https://developer.apple.com/design/

12. https://developer.apple.com/app-store/review/rejections/

Another good reason to follow the design principles is to make customers happy because they know how to use the platform-specific features such as swiping from left to right to switch views, or to pull down to refresh the current view.

When the device has booted, both platforms present a home screen to the user that is similar to a computer desktop. While the iOS home screen contains only rows of app icons spread over several home screens, Android gives the user the ability to customize the home screen with apps and widgets.13 Widgets are able to display more information on the desktop, such as content from the e-mail app, Twitter, or the weather. Widgets can be resized and placed wherever the user wants to have them. Since iOS 8, users are able to place widgets in the iOS notification center as well.

13. https://developer.android.com/guide/topics/appwidgets/index.html

Both home screens have a dock section at the bottom of the screen to pin the most important apps that are available on every home screen. Also, both platforms have a status bar that is available at the top of the screen and displays device-relevant information such as the battery status, the network strength, the current time, and any notifications from installed apps. Again, on Android the status bar can display more information such as received e-mails, messages, phone calls, or reminders linked to installed apps.

If you’re familiar with only one platform, you should buy or rent the unfamiliar one to learn everything about it. You will need to know as much as possible about the major platforms to succeed in the long run as a mobile tester.

What Types of Apps Exist?

If you unlock your phone to get to the home screen, you will see your installed apps. But which types of apps do you have installed? Are they native, hybrid, or Web-based applications? If you just look at the app icon, you probably can’t tell. Maybe you can find out by tapping on an app icon to open it.

Let’s try it out. Get your mobile device, unlock it, and open an app of your choice.

What do you see? Is a browser window shown, or is the app visible in full-screen mode? If you see a browser window, your app is a Web-based application.

But can you see the difference between a hybrid and a native app? That will depend on how well the hybrid app is developed and optimized for your phone.

In the following section I will describe the different mobile app types and list the pros and cons of each of them.

Native Apps

Native apps are programmed with a specific programming language for the specific mobile platform. For example, Android apps are developed in Java, whereas iOS apps are written in Objective-C or Swift. Native apps have full access to all platform-specific libraries and APIs in order to take advantage of all the features a modern smartphone has to offer. Assuming the user has granted the necessary permissions, the app has direct access to the camera, GPS, and all the other sensors. Developers are able to build apps that make use of system resources such as the GPU and CPU to build powerful apps. Native apps generally exhibit excellent performance and are optimized for mobile platforms. In most cases, native apps look and feel great and are able to support every possible gesture on the touchscreen.

App distribution is also quite simple as you can upload your native app to the app stores of the different vendors and start selling it. Some app store vendors have an approval process, meaning that it can take some time until your app is available. The same process applies when an already released app is updated, which can be a problem especially when you want to fix a really urgent bug in your app.

Pros:

• Native apps have full access to platform-specific hardware and software features.

• Native apps have good performance because they are optimized for the specific mobile platform.

• Native apps have a good look-and-feel.

• Native apps offer good usability if the platform UI guidelines are met.

• Native apps have full access to all touch gestures (if implemented).

• Native app distribution is easy. Users can search for your app.

• Native apps can store data offline.

Cons:

• The amount of development work increases with each supported platform because each platform needs its own code base.

• The approval process can be quite long.

• Updating a released app may take some time (which is annoying when it comes to urgent bug fixes).

• Development costs can be higher.

• You must share 30% of your app revenues with the platform provider.

Hybrid Apps

Hybrid apps, as the name suggests, are apps that consist of different Web technologies such as HTML or JavaScript. Once the Web part has been built, developers are able to compile this code base to the different native formats: Android, iOS, Windows Phone, or BlackBerry. To compile the Web code into native mobile code, developers need to use a hybrid development framework such as PhoneGap.14 Such frameworks offer APIs to access the device-specific hardware features within the Web part of the app.

14. http://phonegap.com/

How does such a framework work?


Important

The description here is a very simplistic view of hybrid mobile frameworks.


The framework builds a so-called bridge to the Web code via an HTML rendering engine. A small part of the app runs on the native operating system and communicates with the Web code in the rendering engine via the bridge. With the aid of this bridge, the Web code can access some of the native hardware features.

The HTML content or components of hybrid apps can be hosted on a server. This approach makes it very easy to make small updates without updating the whole app through the app store submission process. Storing the information and elements on the server has one big drawback; however, the content and elements don’t work when the phone is offline. These parts are available only if the device is connected to a data network. However, you can put all the content and elements into the app for full offline support, but then small online updates are no longer possible. If your team is developing a hybrid app, keep those points in mind.

Pros:

• There is one code base for different mobile platforms.

• Frameworks offer access to hardware features.

• Small updates can be performed on the server.

• App distribution is easy.

• Users can search for your app.

Cons:

• Performance is bad when the content and components are accessed from the server.

• Meeting the design guidelines of the different mobile platforms is not easy.

• Platform-specific features can’t be developed, because they may not be available on the other platforms.

• The approval process may be long.

A nice comparison of different mobile development frameworks can be found on the “Mobile Frameworks Comparison Chart” Web site.15

15. http://mobile-frameworks-comparison-chart.com/

Web Apps

A mobile Web app is a Web site that can be accessed from the device’s Web browser. Such Web sites are optimized for mobile browser usage and are independent of the mobile platform. Mobile Web apps are developed with Web technologies such as HTML and JavaScript, particularly with HTML5,16 CSS3, and JavaScript.17

16. http://dev.w3.org/html5/html-author/

17. www.w3.org/Style/CSS/

HTML5 offers developers the capability to implement mobile Web sites with animated and interactive elements. They can integrate audio or video files and use positioning features as well as some local storage functionality. The use of HTML5, CSS3, and JavaScript makes it easy to develop mobile Web apps. Furthermore, mobile Web apps require no app store approval and can be easily and quickly updated.

However, mobile Web apps have some drawbacks. For example, they offer only very limited to no access to the device hardware features such as proximity or acceleration sensors. Mobile Web apps have no access to the camera, compass, microphone, or any kind of notifications. They tend to be slower than native or hybrid apps because they need to download all the information that is shown on the screen.

Depending on the mobile browser, mobile Web apps can work and behave differently because not all mobile browsers support the full standards of HTML5, CSS3, and JavaScript. This can have a major influence on the mobile Web app, meaning that different mobile Web browsers need to be covered during the testing process.

To summarize, Web apps have the following advantages and disadvantages:

Pros:

• Popular technologies are used for development.

• Web apps are faster and cheaper to implement than native and hybrid apps.

• They are mobile platform independent.

• There is easy access to them via a Web browser (no installation required).

• No app store submission is required.

• The updating process is fast and easy.

Cons:

• There is limited access to hardware features.

• There is limited offline behavior.

• Large media files such as images or videos can take a long time to download.

• They have different Web browser support for the HTML5, CSS3, and JavaScript standards.

• They are not as convenient to use as native apps.

• There is limited usage of touch gestures.

• Users can’t find the app in the app stores.

Business Models of Mobile Apps

Where’s the money in mobile apps? And how can you test to make sure money is being earned? These two questions are important when developing and testing an app. Nearly every app developer and company wants to make money from in-app purchases!

You therefore need to test the payment models to be sure that the mobile app is generating revenues, which in turn means that you need to be aware of current business models:

• Freemium

• Paid

• Transaction

Freemium

The freemium model is designed to reach as many users as possible.

Once the app is installed, there are several ways to generate revenues out of the free app:

• The most widely used approach is the free version of the app. The free version is limited, such as in terms of functionality or content. If a user wants to have full functionality, he or she can download the enhanced (paid) version of the app. This approach is the most widely used freemium app model.

• The second most used approach for generating revenues is selling advertisements within the app. There are different kinds of advertisement formats that can be added to an app in order to generate revenues. Advertisements are part of nearly every free app and can often be really annoying and frustrating for the user. Think very carefully before adding ads to an app as you run the risk of losing customers. Developers can implement ad frameworks such as AdMob18 or iAd.19

18. www.google.com/ads/admob/

19. http://advertising.apple.com/

• The third approach for generating revenues is the “in-app purchase.” This is often used within gaming apps where new levels or more tools can be bought to have more fun with the game. Lots of newspaper apps also offer in-app purchases to get the latest version of their daily news. Some apps can become ad free if the user pays for it.

Paid

The paid business model is quite simple: before users can download the app, they have to pay for it. This is a common use case for gaming apps or apps that fulfill a special task such as applying filters to images to make them look like Polaroids.

Transaction

In the transaction business model the user pays only after completing a transaction with the app. An example of a transactional app is Google Wallet, where users are able to send money to another account using their credit or debit card.20 Once the transaction is complete, a small fee is paid that depends on the transaction amount.

20. www.google.com/wallet/

Choosing a Business Model

Research carried out by Gartner shows that freemium apps containing in-app purchases are downloaded the most (approximately 90%) from the app stores, whereas paid apps are downloaded far less frequently.21 Developers therefore need to put some thought into their app’s business model and price.

21. www.gartner.com/newsroom/id/2592315

When choosing a business model for your app, make sure you keep the different app types in mind. Not every model can be applied to every app type. For example, if you want to develop a paid mobile Web app, your app needs a login to identify the user’s subscription so as to gain access to the paid content. The login function may not be necessary within a native or hybrid app because payment is made within the app store.

App Stores

App stores form the core of the mobile world where apps can be downloaded and reviewed. Without the app stores, smartphones wouldn’t be as intelligent and functional as we want them to be. At the time of writing, the app stores of the biggest mobile platforms—Google22 and Apple23—contain more than two million apps. So far more than 100 billion app downloads have been counted. These are huge numbers that are bound to increase in the future.

22. Google Play store, https://play.google.com/store

23. Apple App Store, https://itunes.apple.com/us/genre/ios/id36?mt=8

Besides the big two app stores from Apple and Google, there are other stores sponsored by device manufacturers and network operators. The following list is not complete but contains some other app stores for the different mobile platforms:

• Amazon

• AT&T

• China Mobile

• Mozilla

• Samsung

• T-Mobile

• Vodafone

But why are there so many different stores? Especially in the Android world there is more than one app store available, such as the Amazon24 and Samsung25 stores. The answer to this question is simple: every app store provider wants to make money out of the mobile app business!

24. www.amazon.com/mobile-apps/b?node=2350149011

25. http://apps.samsung.com/

Let’s take the Samsung store as an example. Since the launch of its Galaxy device series, Samsung has grown to become one of the biggest and most successful Android device manufacturers and has sold and continues to sell millions of devices around the world. Having its own app store preinstalled on every Samsung phone is a huge advantage because it directs potential mobile app customers straight to Samsung and away from Google. If millions of users use this store, the store generates traffic, which means it can sell ads. On top of that, app sales via the app store allow Samsung to generate additional revenues. In most of the app stores, 30% of the sale price goes to the platform provider, and the same applies to in-app purchases.

I think this is indicative of why there are so many different mobile app stores. If you search the Internet, I’m sure you’ll find even more of them.

The other mobile platforms also have app stores. BlackBerry apps can be downloaded from the official BlackBerry World,26 and Windows Phone apps can be downloaded from the Microsoft Store.27

26. BlackBerry World, http://appworld.blackberry.com/webstore/?d=android&o=m&countrycode=US&lang=en

27. Microsoft Store, www.windowsphone.com/en-us/store

Before a mobile team distributes an app in the biggest stores, they should think about the goals of the app. Maybe there are other stores that are better suited to their app than the big players. For example, some stores offer a better revenue share than the usual 70% (developer revenues)/30% (store provider revenues) split, or they offer better app targeting, for example, in different markets such as Africa or Asia.

However, uploading an app to one of the stores requires one thing in particular—knowledge of the store’s review and publishing process. Your app needs to fulfill the review and publishing guidelines of the various vendors and app stores; otherwise your app is very likely to be rejected.

Knowledge of the different review guidelines will allow you to better support your team while developing and releasing your app. The review and publishing guidelines of the major mobile app stores can be found on the following Web sites:

• Amazon Appstore Guidelines (https://developer.amazon.com/help/faq.html)

• Apple App Store Guidelines (https://developer.apple.com/app-store/review/)

• BlackBerry World Guidelines (http://developer.blackberry.com/blackberryworld/vp_checklist.html)

• Google Play store Guidelines (http://developer.android.com/distribute/googleplay/publish/preparing.html)

• Samsung App Store Guidelines (http://developer.samsung.com/distribute/app-submission-guide)

• Windows Phone Store Guidelines (http://msdn.microsoft.com/en-us/library/windows/apps/br230835.aspx)

Summary

Chapter 2 covered the evolution of mobile data networks and mobile devices. It is very important to know the differences among the data networks, their speed, and their technologies. This knowledge is required when testing a mobile app while you are on the move.

Besides the data networks, knowledge about mobile devices and their evolution is also very important. A mobile tester must know all the hardware and software components of a modern smartphone in order to test mobile apps in various situations and with different hardware and software combinations.

In a later section of this chapter I explained the different app types that are currently available on the market. The differences among a native, hybrid, and Web app as well as their pros and cons should be clear by now.

The different business models for mobile apps were explained. The closing section of this chapter dealt with the different mobile app stores that are available for each platform and what is important to know about them.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.188.146.218