Mobile Application Development starting with brief history about mobile and how the apps work.
Size: 1.51 MB
Language: en
Added: Mar 07, 2025
Slides: 58 pages
Slide Content
Why Mobile Apps? Mobile Phones History. App Design Issues and Considerations. Mobile Operating Systems and their Architecture Contents
Why Mobile Apps? Transformative Devices: Mobile devices are transformative, offering new business possibilities. They are the first truly mobile computing platforms, with built-in sensors to interact with their environment.
Why Mobile Apps? Reaching Customers: Smartphones are always within reach, making mobile apps crucial for businesses to engage customers. Mobile apps provide a direct link to customers, supporting brand loyalty and awareness.
Why Mobile Apps? Changing Business Process: Mobile technology enables the redesign of business processes. It allows businesses to re-examine their products and processes, leading to potential strategic advantages.
Why Mobile Apps? Making Money: The app market offers various revenue models: one-time fees, advertisements, in-app purchases, and subscriptions. Developers can monetize their apps directly or consult for businesses, leveraging the app stores’ distribution and payment systems.
Mobile Phones History The first mobile phone was the Motorola DynaTAC 8000X. Introduced in 1983 and cost $4000 USD. It was a bulky device that weighed 0.8 kg. It had a battery life of 30 minutes.
Mobile Phones History The first GSM network was launched in Europe in 1991. It allowing mobile phones to communicate across different countries and regions. The first GSM phone was the Orbitel TPU 900. Which had a digital display and a retractable antenna.
Mobile Phones History The first phone with a color display was the Siemens S10. Which was released in 1997 and offered four colors. It also had a vibrate alert and a phone book that could store up to 140 contacts.
Mobile Phones History The first camera phone was the Sharp J-SH04. Which was launched in Japan in 2000 and had a 0.11 megapixel camera. It also had an infrared port and a web browser. The first camera phone in the western market was the Sony Ericsson T68i, which came with a clip-on camera accessory in 2002.
Mobile Phones History The first smartphone was the IBM Simon Personal Communicator. Which was unveiled in 1992 and had a touchscreen, email, fax, calendar and apps. However, it was not very successful and only sold 50,000 units.
Mobile Phones History The first widely popular smartphone was the BlackBerry 5810. which was released in 2002. had a full QWERTY keyboard, email, web browsing and instant messaging.
Mobile Phones History The first iPhone was launched by Apple in 2007. Sleek design, intuitive user interface, multitouch screen and app store. It also had a 2 megapixel camera, Wi-Fi, Bluetooth and GPS.
Mobile Phones History The first Android phone was the HTC Dream or T-Mobile G1. Released in 2008. Had a slide-out keyboard, a trackball and access to Google services. It also had a 3.2 megapixel camera, Wi-Fi, Bluetooth and GPS.
Mobile Phones History The first phone with a foldable display was the Samsung Galaxy Fold. launched in 2019 and could transform from a smartphone to a tablet. It also had a 7.3 inch touchscreen when unfolded, a 4.6 inch touchscreen when folded, six cameras, Wi-Fi, Bluetooth and GPS.
App Design Issues and Considerations. Designing for the specific device your app will run on is crucial! Applications may function well on traditional computers but fail miserably on mobile platforms if not redesigned to fit the device’s capabilities. The device's capabilities allow for unique application designs not feasible on traditional computers. Operating System Design Issues Screen Size and Orientation Issues Connectivity Issues Battery Issues Hardware Issues
App Design Issues and Considerations. The difference between mobile operating systems and operating systems used on computers is that the mobile operating system is not a true multitasking system. On mobile devices, only one app can be active at a time. When another app is started, or the app is interrupted by another app (for example, a phone call), the app that was running gets put in the background. Operating System Design Issues
App Design Issues and Considerations. The Android life cycle begins when a user touches an app’s icon. This action triggers the execution of the onCreate method in the app’s initial activity. The onCreate method includes code to load the screen (layout) associated with the initial activity. In this method, the developer initializes variables and layout objects to the required settings for user interaction. Following the creation of the activity, the onStart method is executed. Operating System Design Issues Android Life Cycle
App Design Issues and Considerations. When a user stops directly interacting with the app, the path to destruction begins. The first method executed is onPause , which should be used to stop services that the app is using, to stop animations, or to store important state information so that users can start using the app exactly as they left it. If the app is about to become invisible, the onStop method will be executed. Finally, if not restarted, the onDestroy method will be executed just before the operating system takes away all the app’s resources. None of the methods executed on the path to destruction have to be implemented. Operating System Design Issues Android Life Cycle
App Design Issues and Considerations. Operating System Design Issues Android Life Cycle
App Design Issues and Considerations. Operating System Design Issues IOS Life Cycle The life cycle for iOS is similar to Android’s. iOS uses both an app life cycle and a screen (called view) life cycle to accomplish essentially the same things. The life cycle begins when the user taps an app’s icon. The application didFinishLaunchingWithOptions : method is similar to an activity’s onCreate method. However, in iOS, this method is used to set up the operating environment for the complete app, not just a single activity. The applicationWillResignActive : method is executed when the app is interrupted, similar to when the onPause method is executed in Android. When the app is no longer visible, the applicationDidEnterBackground : method is executed. Code in these methods should be used to turn off services and save important data for the user before it’s potentially lost.
App Design Issues and Considerations. Operating System Design Issues IOS Life Cycle Unlike Android, iOS has a separate life cycle for displayed screens, known as ViewControllers . The view life cycle begins after the application has finished loading or when the user navigates to a different page within the app. Once the view is loaded into memory, the viewDidLoad : method is executed. This method is called only once if the view remains in memory. The viewDidLoad : method is where code should be written to set the initial state of the view. Just before the view becomes visible to the user, the viewWillAppear : method is executed. The viewWillAppear : method is used to load any data into the views that will be visible to the user and to activate services required for user interaction. The viewWillAppear : method executes every time the view reappears on the device.
App Design Issues and Considerations. Operating System Design Issues IOS Life Cycle IOS App life Cycle
App Design Issues and Considerations. Operating System Design Issues IOS Life Cycle IOS View life Cycle
App Design Issues and Considerations. Mobile devices are utilized in various scenarios distinct from traditional computing devices. App users engage in multitasking activities such as walking, conversing with friends, etc. App design must facilitate seamless user transitions to the app, allowing immediate task execution before distractions arise. Ease of app usability is paramount; if users struggle to navigate the app, no amount of assistance will suffice. Limited screen real estate poses a significant challenge in mobile app development. Intense competition exists among app developers for superior user interface design. Screen Size and Orientation Issues
App Design Issues and Considerations. Both iOS and Android platforms offer scrolling capabilities to access interface elements not immediately visible on the screen. Judicious use of scrolling, especially horizontal scrolling, is recommended. Vertical scrolling, though more natural, should also be limited to essential elements. Horizontal scrolling should be reserved for items extending off the main screen, as users may not instinctively use it. It's imperative to limit scrolling to ensure a smooth user experience. Certain interface elements should remain fixed during scrolling to enable uninterrupted user operations. Effective interaction planning is key to mitigating the constraints of limited screen size. Screens should focus on a single or coherent set of tasks to streamline user experience. Navigation should be intuitive, guiding users seamlessly through tasks. Tasks requiring multiple steps should be divided into distinct screens, guiding users through each step efficiently. Screen Size and Orientation Issues
App Design Issues and Considerations. Importance of Mobile Device Connectivity: Mobile devices can communicate with other devices and the internet. Enables the creation of powerful and useful apps. Design Problems: Connectivity can be lost or connection speed may be slow. Movement of the device, even a few feet, can disrupt connectivity. Users may not realize or understand connectivity issues while using an app. Apple's Requirement and Android's Approach: Apple mandates user warnings for lost network connections in submitted apps. Android does not require such warnings, leaving it to the discretion of developers. Connectivity Issues
App Design Issues and Considerations. Solutions through Design and Planning: Design and planning are essential to address connectivity issues. Primary concern is avoiding blocking users from app functionality. Asynchronous Data Handling: Data fetching and sending can take a significant amount of time. Plan for asynchronous data uploading and downloading to prevent user inconvenience. Execute data operations outside the main thread of the app. Designing for User Experience: Ensure the app offers alternative tasks while data operations are ongoing. Provide warnings when user actions require unavailable data. Warn users about connectivity issues and offer options for action. Connectivity Issues
App Design Issues and Considerations. Mobile devices and Power Management: Mobile devices, being inherently mobile, rely on batteries for power as they are not always connected to a power source. It is crucial for developers to optimize their applications to conserve battery life. Unnecessary battery drain not only affects user experience but also impacts app usage, reviews, and downloads. Minimizing Battery Drain: Developers must ensure their apps do not excessively drain device batteries. The primary power draw for devices is the display, which developers can't directly control. However, efficient code implementation can minimize unnecessary processing time, reducing screen-on time. Battery Issues
App Design Issues and Considerations. Managing Sensor Usage: After the display, sensors such as GPS, camera, and communication modules are significant power drains. Developers have the ability to manage sensor usage within their apps. Sensors should only be activated when necessary and turned off promptly after completing the required task. This approach helps mitigate unnecessary power consumption and prolongs battery life. Battery Issues
App Design Issues and Considerations. Hardware Components in Mobile Computing: Mobile devices boast a variety of hardware components that enhance user experience and enable interaction with the environment. These components include GPS for location tracking, orientation sensors, lights, cameras, and others. Access to these components can facilitate the development of engaging and practical applications. Hardware Issues
App Design Issues and Considerations. Considerations for Hardware Component Usage: Each hardware component comes with its own set of considerations that can affect app performance and desirability. Availability of Components: Different manufacturers produce Android devices, resulting in variations in included hardware components. iOS devices are generally more uniform but still exhibit differences. It's crucial to evaluate the importance of each component to the primary functionality of the app. Tangential components may be best avoided to prevent compatibility issues and user frustration. Hardware Issues
App Design Issues and Considerations. Situational Availability: Certain components, like GPS, require specific conditions for operation, such as access to satellite signals. Environmental factors, like being indoors, can affect the functionality of hardware components. Users may experience limitations in component functionality based on their surroundings. Hardware Issues
Mobile Operating Systems Mobile operating systems are software platforms that run on smartphones, tablets, and other mobile devices. They provide various features and functions for users, such as user interface, applications, connectivity, security, and multimedia. The history of mobile operating systems can be traced back to the early 1990s, when the first handheld devices with embedded systems were introduced.
Mobile Operating Systems Functions of Mobile Operating system: Memory Management. Process Management/CPU Scheduling Device Management File Management Device Security Error detection
History of Mobile Operating Systems 1993 : PenPoint OS by GO Corp. and Newton OS by Apple are launched on the first personal digital assistants (PDAs). 1996 : Palm OS by Palm Inc. is released on the Palm Pilot PDA, which becomes a popular device for personal information management. 1998 : Symbian OS by Symbian Ltd. is created as a joint venture between Nokia, Ericsson, Motorola, and Psion. It becomes the dominant platform for smartphones in the 2000s.
History of Mobile Operating Systems 2000 : Windows CE (Compact Edition) by Microsoft is rebranded as Windows Mobile and targets both PDAs and smartphones. 2007 : iOS by Apple is unveiled on the first iPhone, which revolutionizes the smartphone industry with its touch-based interface and app store. 2008 : Android by Google is launched on the HTC Dream (T-Mobile G1), which is the first commercially available smartphone to run on the Linux-based open source platform.
History of Mobile Operating Systems 2009 : webOS by Palm is introduced on the Palm Pre smartphone, which features a gesture-based interface and multitasking capabilities. 2010 : Windows Phone by Microsoft is announced as a successor to Windows Mobile, with a new design language and user experience. 2013 : BlackBerry 10 by BlackBerry is released as a revamped version of its previous platform, with a gesture-based interface and improved security features.
2015 : Tizen by Samsung is launched on the Samsung Z1 smartphone, which is aimed at emerging markets and low-end devices. 2017 : KaiOS by KaiOS Technologies is developed as a fork of Firefox OS, which is designed for feature phones and smart featurephones. 2020 : HarmonyOS by Huawei is unveiled as a cross-platform operating system that can run on various devices, such as smartphones, tablets, smartwatches, smart TVs, and IoT devices. History of Mobile Operating Systems
Mobile Operating Systems Android Android is a mobile operating system that runs on smartphones, tablets, and other devices. Android was created in 2003 by Andy Rubin, who initially wanted to develop an operating system for digital cameras. In 2005, Google acquired Android Inc. and continued to develop the operating system based on Linux, an open source operating system for personal computers.
Mobile Operating Systems Android In 2007 , Google announced the Open Handset Alliance, a consortium of technology and mobile phone companies that supported Android as a free and open source operating system with third-party applications. In 2008 , the first Android phone, the T-Mobile G1, was released. It ran on Android 1.0, which had features such as Google Search, Google Maps, Gmail, and YouTube. Since then, Android has evolved through several versions, each named after a dessert or a sweet treat in alphabetical order. From Android Android 2.0 Eclair (2009) to the current version Android 14 One UI 6.0.
Mobile Operating Systems Android Architecture Android is an open-source, Linux-based software stack. The major components of the Android platform include 1. The Linux kernel 2. Hardware Abstraction Layer (HAL) 3. Native C/C++ Libraries 4. Android Runtime (ART) 5. Java API Framework and 6. System Apps
Mobile Operating Systems Android Architecture 1. The Linux Kernel The foundation of the Android platform is the Linux kernel. For example, the android run time relies on the Linux kernel for underlying functionalities such as threading and low-level memory management. Using a Linux kernel allows Android to take advantage of key security features and allows device manufacturers to develop hardware drivers for a well-known kernel.
Mobile Operating Systems Android Architecture 2. Hardware Abstraction Layer (HAL) Provides standard interfaces that expose device hardware capabilities to the higher-level Java API framework. The HAL consists of multiple library modules, each of which implements an interface for a specific type of hardware component, such as the camera or Bluetooth module. When a framework API makes a call to access device hardware, the Android system loads the library module for that hardware component.
Mobile Operating Systems Android Architecture 3. Android Runtime For devices running Android version 5.0 (API level 21) or higher, each app runs in its own process and with its own instance of the Android Runtime (ART). ART is written to run multiple virtual machines on low-memory devices by executing DEX files, a bytecode format designed specially for Android that's optimized for minimal memory footprint. Build tools, such as d8, compile Java sources into DEX bytecode, which can run on the Android platform.
Mobile Operating Systems Android Architecture 4. Native C/C++ Libraries Many core Android system components and services, such as ART and HAL, are built from native code that require native libraries written in C and C++. The Android platform provides Java framework APIs to expose the functionality of some of these native libraries to apps.
Mobile Operating Systems Android Architecture 5. Java API Framework The entire feature-set of the Android OS is available to you through APIs written in the Java language. These APIs form the building blocks you need to create Android apps by simplifying the reuse of core, modular system components and services, which include the following:
Mobile Operating Systems Android Architecture 5. Java API Framework (cont’d…) View System : use to build app’s UI, including lists, grids, text boxes, buttons, and even an embeddable web browser Resource Manager : providing access to non-code resources such as localized strings, graphics, and layout files Notification Manager : enables all apps to display custom alerts in the status bar
Mobile Operating Systems Android Architecture 5. Java API Framework (cont’d…) Activity Manager : manages the lifecycle of apps and provides a common navigation back stack Content Providers : enable apps to access data from other apps, such as the Contacts app, or to share their own data
Mobile Operating Systems Android Architecture 6. System Apps Android comes with a set of core apps for email, SMS messaging, calendars, internet browsing, contacts, and more. A third-party app can become the user's default web browser, SMS messenger, or even the default keyboard (some exceptions apply, such as the system's Settings app).
Mobile Operating Systems Android Architecture 6. System Apps ( cont …) The system apps function both as apps for users and to provide key capabilities that developers can access from their own app. For example, if your app would like to deliver an SMS message, you don't need to build that functionality yourself—you can instead invoke whichever SMS app is already installed to deliver a message to the recipient you specify.
Mobile Operating Systems IOS iOS is a mobile operating system developed by Apple Inc. exclusively for its hardware, such as iPhone, iPad, and iPod touch devices. iOS is based on Unix-like, macOS, and Darwin (BSD) operating systems, and uses Cocoa Touch as its default user interface. iOS is updated annually, with the current stable version being iOS 17.4.1, released on March 21, 2024.
Mobile Operating Systems IOS Architecture
Mobile Operating Systems IOS Architecture CORE OS Layer All the IOS technologies are built under the lowest level layer i.e. Core OS layer. These technologies include: Core Bluetooth Framework External Accessories Framework Accelerate Framework Security Services Framework Local Authorization Framework etc.
Mobile Operating Systems IOS Architecture CORE SERVICES Layer Some important frameworks are present in the CORE SERVICES Layer which helps the iOS operating system to cure itself and provide better functionality. It is the 2nd lowest layer in the Architecture as shown above. Below are some important frameworks present in this layer:
Mobile Operating Systems IOS Architecture MEDIA Layer With the help of the media layer, we will enable all graphics video, and audio technology of the system. This is the second layer in the architecture.
Mobile Operating Systems IOS Architecture COCOA TOUCH COCOA Touch is also known as the application layer which acts as an interface for the user to work with the iOS Operating system. It supports touch and motion events and many more features.