MADsummary
MADsummary
• Mobile apps are designed specifically for devices like smartphones and tablets.
• The two leading mobile platforms are iOS (Apple) and Android (Google).
• Native Applications: Built using specific IDEs and languages for iOS or Android,
offering high customization but at a higher cost.
• Hybrid Apps: Web apps that function like native apps, developed using HTML,
JavaScript, and CSS, and are more cost-effective.
• Progressive Web Apps (PWAs): Websites that behave like mobile apps,
developed with web technologies.
The cost of mobile app development varies widely based on the app type and
complexity, ranging from free to millions of dollars.
• No-Code App Builders: Tools like GoodBarber and Appy Pie allow basic app
creation without coding, often free or low-cost.
Mobile application architecture consists of multiple layers that define how applications
are structured and interact with each other.
The Android software stack is built on a Linux kernel and includes various libraries and
frameworks that support application development.
• The stack consists of core services, libraries, Android runtime, and application
framework.
• The Dalvik Virtual Machine (DVM) optimizes performance for mobile devices.
• Applications are built on the application layer using the same API libraries.
Java ME (Micro Edition) is a platform for developing applications for embedded and
mobile devices, providing a robust user interface and security.
• Java ME applications are portable and can run across various devices.
• Ionic: A hybrid framework that provides native functionality and is fully cross-
platform.
• React Native: Focuses on creating real native apps with JavaScript, offering a
native look and feel.
• Meteor: A JavaScript framework that simplifies development and allows for real-
time applications.
• Native Tools: Include Xcode for iOS and Android Studio for Android, allowing
high-quality app development.
UNIT 2
Mobile applications require adaptable user interfaces due to the diverse operating
environments and user preferences. A generic UI allows for quick modifications and
enhances user interaction through intuitive design principles.
Specializing a generic user interface involves adapting it to specific user needs and
device capabilities. This process must consider performance, development processes,
and the distribution of components.
• Specialization includes user and device settings, network quality, and other
factors.
User interfaces can be analyzed from various perspectives, including their look-and-feel
and functionality. Effective communication channels enhance user interaction with the
system.
Designing for mobile devices requires a focus on user context and minimizing cognitive
distractions. A clear visual hierarchy and minimalism are essential for effective
information display.
The Gestalt principles of visual perception guide the design of mobile applications,
helping to organize information effectively. Key principles include proximity, closure,
continuity, figure and ground, and similarity.
Mobile devices provide unique opportunities for designing information displays that fit
within limited screen space. Effective design involves identifying signals and
interpreting their meanings.
• Mobile design must fit personalized and real-time data into constrained screens.
• Scrolling should be limited, and the design must communicate the scrollable
area effectively.
Multimodal interfaces enhance user interaction by supporting multiple input and output
modalities. Understanding the differences between multichannel and multimodal
applications is crucial for effective design.
• Multichannel refers to multiple communication channels for user interaction.
UML can be used to model the structure and behavior of user interfaces, including
multimodal applications. Configuration diagrams help represent the relationships
between UI components and system components.
The OMMMA stereotypes categorize the roles of objects in user interfaces, focusing on
presentation, media, and application components. These stereotypes help in
structuring the design and functionality of multimodal interfaces.
• Media: Encapsulates various content types, such as audio and visual text, using
design patterns like inheritance and aggregation.
• Application: Acts as a bridge between business logic and the system, similar to
the model in MVC architecture.
Multimodal Content Standards Overview
• InkML: Supports text entry through digital pads and stylus devices.
User interfaces can be categorized based on their interaction modes, including fusion-
based and alternative mode interfaces. These types enhance user experience by
providing various input options.
• Visual Hierarchy: Important content should stand out, guiding users through the
interface.
• Key Factors: Size, position, density, background color, rhythm, and alignment
influence perceived importance.
User interface elements are crucial for creating interactive and navigable applications.
They include input controls, navigational components, informational components, and
containers.
• Input Controls: Include checkboxes, radio buttons, dropdown lists, and text
fields for user input.
Android layouts define the user interface structure for applications, utilizing various
layout types to manage UI components effectively. Each layout type serves specific
design needs.
• Linear Layout: Arranges child views in a single direction, either horizontally or
vertically.
• Relative Layout: Positions child views relative to each other or the parent
layout.
• Frame Layout: Stacks child views on top of each other, displaying only one at a
time.
• Table Layout: Organizes child views in rows and columns for structured data
presentation.
• ListView and GridView: Display scrollable lists and grids of items, respectively.
Voice XML is an XML standard designed for voice interaction, enabling the development
of voice-based applications. It facilitates human-machine communication through
voice input and output.
• Definition: Voice XML allows for digitized voice processing and interaction,
managed by a voice browser.
• Goals: Aims to integrate voice services with web applications, reducing client-
server interactions and maintaining a clear separation of business logic.
Voice XML applications operate through a voice gateway, enabling voice browsers to
interpret and respond to user commands. This architecture supports various voice
interaction features.
• Application Flow: Users dial a number, and the voice gateway processes
requests, generating Voice XML documents for interaction.
• Audio Output: Supports both text-to-speech and prerecorded audio for natural
communication.
• Input Recognition: Recognizes spoken and DTMF inputs, allowing for dynamic
interaction.
Memory management is the operating system's function to handle primary memory and
manage process execution.
• Android OS employs a paging system and memory mapping for efficient memory
management.
• The ART and Dalvik virtual machines track memory allocations and free unused
memory back to the heap.
• The garbage collection process identifies inaccessible data objects and reclaims
their resources.
Application priority determines the order in which processes are killed to reclaim
resources.
• Active processes are those currently interacting with the user and are prioritized
for resource retention.
• Visible processes are inactive but still visible to the user, while background
processes do not interact with the user and are more likely to be killed.
• Empty processes are retained in memory to improve application startup times
and are killed as needed.
• Visible processes host activities that are not in the foreground but are still
visible.
• Background processes do not have visible activities and are often killed to free
resources.
• Empty processes are cached to enhance performance and are routinely killed
when necessary.
DDMS is a debugging tool in Android Studio that connects the IDE to applications
running on devices, providing various testing services. It facilitates monitoring and
debugging by connecting to the Android Debug Bridge (ADB) and managing virtual
machines (VMs) for each application.
• DDMS offers services like screen capture, threading, heap information, logcat,
and SMS checking.
• Each Android application runs in its own process with a separate VM.
Designing for devices with limited memory requires careful memory management and
the use of appropriate data structures. The focus should be on minimizing memory
waste and optimizing performance.
• Basic design decisions include allocating memory at the start and reusing
objects.
• Allocate all memory at the beginning of the program to avoid runtime allocation
failures.
The mobile app development process consists of several phases that guide developers
from concept to deployment. Each phase is essential for ensuring a successful
application.
• Java APIs include classes, interfaces, and user interfaces bundled with the JDK.
Java APIs can be categorized into public, private, partner, and composite types, each
serving different purposes in application development. Understanding these types is
crucial for effective API utilization.
• Public APIs are open and have fewer restrictions for developers.
Java APIs offer numerous benefits that enhance application development and
integration. They provide extensive support and customization options for developers.
• Shared memory and message passing are common methods for inter-thread
communication.
Mobile devices have unique resource management challenges due to their specialized
hardware and limited resources. Effective strategies are needed to ensure optimal
performance.
UNIT 4
• Popular mobile OS include Android, iOS, Windows Mobile, and BlackBerry OS.
Android OS, developed by Google, is the most widely used mobile operating system,
based on the Linux kernel and open-source software. It was first launched in 2008 and
has since become a dominant player in the mobile market.
• Key features include support for various applications, multitasking, and a user-
friendly interface.
iOS, developed by Apple Inc., is a highly secure mobile operating system used
exclusively on Apple devices. It is known for its layered architecture that enhances
communication between applications and hardware.
Android applications are built using core components that define their functionality and
user interaction. These components include activities, services, content providers, and
broadcast receivers.
iOS is recognized for its high security, multitasking capabilities, and user-friendly
interface. It supports various built-in applications and is optimized for performance on
Apple devices.
• iOS provides a seamless user experience with gestures and a powerful API.
• It is designed for security and efficiency, making it suitable for business use.
Android libraries and runtime are crucial for application development, providing
essential tools and frameworks. The Android runtime includes the Dalvik virtual
machine, which allows efficient execution of applications.
• There are two types of intents: Implicit (does not specify a component) and
Explicit (specifies the component).
• Implicit intents allow the system to choose the appropriate component based on
the action specified.
Android applications are built using various components that work together to create a
cohesive user experience. These components include Fragments, Layouts, Views,
Resources, and the Manifest File.
• Views are UI elements like buttons and lists that build the user interface.
• Bound Services allow components to bind to the service for communication and
data exchange.
• Services can run even if the application is not active, ensuring continuous
operation.
• Foreground Services provide a notification to the user and are less likely to be
terminated by the system.
Android provides multiple methods for storing and retrieving data, including Shared
Preferences, Internal Storage, External Storage, SQLite Databases, and Network
Connections.
• SQLite Databases are used for structured data storage, similar to traditional
databases.
The process of packaging an Android application involves creating an APK file, which is
the installable format for Android apps. Deployment includes making the application
available to users through various channels.
• APK files are generated using tools like apk builder and aapt.
• Wireless security issues involve threats like denial of service attacks and
eavesdropping.
• Device security issues include push and pull attacks, which compromise user
data.
• Users should be aware of potential hacking methods and take steps to secure
their devices.
• Users should only download apps from trusted sources like the Google Play
Store.
UNIT 5
• WiFi connects devices through localized routers, while Bluetooth enables short-
range connections.
• Android notifications are managed by the Notification Manager, which allows for
creating, modifying, and canceling notifications.
• Alarms can be set using the AlarmManager and can wake the device or trigger
actions even when the app is closed.
Android devices support a wide range of multimedia formats, allowing users to play and
record audio, video, and images. The MediaPlayer class facilitates playback of media
resources stored locally or streamed.
• The Camera class allows access to camera hardware for taking pictures and
streaming previews.
Android supports various animation types, enhancing user experience through visual
effects. Animations can be defined in XML and reused across different components.
Event handling in Android applications captures user interactions, such as touches and
clicks, to trigger appropriate responses. The framework maintains an event queue to
manage these interactions efficiently.
Telephony APIs enable applications to access phone hardware, allowing for call
handling and monitoring. Best practices recommend using Intents to initiate phone
calls.
• Telephony APIs facilitate the creation of custom dialers and call management
features.
• Intents are the preferred method for launching dialer applications to make calls.
This section discusses how to initiate phone calls and monitor call states in Android
applications. It highlights the use of intents for dialing and the implementation of a
Phone State Listener for tracking call states.
• Intent.ACTION_DIAL does not require permissions and opens the dialer for user
confirmation before calling.
This topic covers how to track changes in cell location using a Phone State Listener. It
emphasizes the need for location permissions in the application manifest.
This section explains how to monitor the service state of the device's cell service. It
provides details on the different service states and how to react to them.
• Use onServiceStateChanged to track service state changes.
This part introduces location-based services (LBS) and the components involved in
obtaining a device's location. It emphasizes the importance of permissions and privacy
considerations.
• Respect user privacy by notifying them about location tracking and allowing
them to disable updates.
This section details how to select and find available location providers based on criteria
such as accuracy and power consumption.
• Criteria for selecting providers include power use, accuracy, and availability.
This topic outlines best practices for managing location updates in applications to
balance accuracy and battery life.
• Adjust update rates to minimize battery drain while maintaining timely updates.
Geocoding for Address and Location Translation
This section explains the use of geocoding to convert between addresses and
geographic coordinates. It highlights the necessary permissions and library
requirements.
• Requires the Google Maps library and INTERNET permission in the manifest.