𝔖 Scriptorium
✦   LIBER   ✦

📁

Mobile Applications: Design, Development and Optimization

✍ Scribed by Tejinder S. Randhawa


Publisher
Springer
Year
2022
Tongue
English
Leaves
669
Edition
1st ed. 2022
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


Using Android as a reference, this book teaches the development of mobile apps designed to be responsive, trustworthy and robust, and optimized for maintainability. As the share of mission-critical mobile apps continues to increase in the ever-expanding mobile app ecosystem, it has become imperative that processes and procedures to assure their reliance are developed and included in the software life cycle at opportune times. Memory, CPU, battery life and screen size limitations of smartphones coupled with volatility associated with mobile environments underlines that the quality assurance strategies that proved to be successful for desktop applications may no longer be effective in mobile apps. To that effect, this book lays a foundation upon which quality assurance processes and procedures for mobile apps could be devised. This foundation is composed of analytical models, experimental test-beds and software solutions.  

Analytical models proposed in the literature to predict software quality are studied and adapted for mobile apps. The efficacy of these analytical models in prejudging the operations of mobile apps under design and development is evaluated. A comprehensive test suite is presented that empirically assesses a mobile app’s compliance to its quality expectations. Test procedures to measure quality attributes such as maintainability, usability, performance, scalability, reliability, availability and security, are detailed. Utilization of test tools provided in Android Studio as well as third-party vendors in constructing the corresponding test-beds is highlighted. An in-depth exploration of utilities, services and frameworks available on Android is conducted, and the results of their parametrization observed through experimentation to construct quality assurance solutions are presented. Experimental development of some example mobile apps is conducted to gauge adoption of process models and determine favorable opportunities for integrating the quality assurance processes and procedures in the mobile app life cycle. The role of automation in testing, integration, deployment and configuration management is demonstrated to offset cost overheads of integrating quality assurance process in the life cycle of mobile apps.  


✦ Table of Contents


Preface
Contents
Abbreviations and Acronyms
Chapter 1: Software Life Cycle
1.1 Process Models
1.2 Functional Specifications
1.2.1 User Stories
1.2.2 UML Use Case Diagrams
1.2.3 Software Requirements Specifications
1.3 Non-functional Requirements
1.4 Test-Driven Development
1.4.1 Acceptance Tests
1.4.2 Unit Tests
1.5 Continuous Integration and Delivery
1.5.1 Software Configuration Management
1.5.2 Build Automation
Exercises
Review Questions
Lab Assignments
References
Chapter 2: Development Fundamentals
2.1 Graphical User Interface
2.1.1 GUI Objects and Layouts
2.1.2 Event Handling
2.1.3 Redirection
2.2 Data Storage
2.2.1 Key-Value Pairs
2.2.2 Files
2.2.3 Database Systems
2.2.4 Personal Data Storage
2.3 Data Connectivity
2.3.1 Web Access
2.3.2 Short Message Service
2.4 Concurrency
2.4.1 Threads and Asynchronous Tasks
2.4.2 Processes
2.5 Location and Sensor APIs
Exercises
Review Questions
Lab Assignments
References
Chapter 3: Software Quality Assessment
3.1 Functional Requirements Testing
3.1.1 Equivalence Class Partitioning
3.1.2 Boundary Value Analysis
3.1.3 Domain Test Design
3.2 Maintainability
3.2.1 Sub-characteristics
3.2.2 Maintainability Measures
3.3 Usability and Accessibility
3.3.1 Models
3.3.2 Evaluation
3.4 Performance Testing
3.4.1 Latency Measurement
3.4.2 GUI Performance
3.4.3 Memory Usage
3.4.4 Network Usage
3.4.5 Battery Usage
3.5 Scalability Testing
3.5.1 Scalability Models
3.5.2 Load Test Design
3.6 Reliability Testing
3.6.1 Growth Models
3.6.2 Fault Injection
3.6.3 Operational Profile
3.6.4 Reliability Test Design
3.7 Availability
3.7.1 Availability Models
3.7.2 Stress Test Design
3.8 Safety
3.8.1 FMEA
3.8.2 FTA
3.9 Security
3.9.1 Vulnerabilities and Threat Analysis
3.9.2 Security Testing
3.10 Static Code Analysis
Exercises
Review Questions
Lab Assignments
References
Chapter 4: Maintainability and Multi-platform Development
4.1 Software Patterns
4.1.1 Programming Paradigms
4.1.2 Design Patterns
4.1.3 Architectural Patterns
4.2 Design Description
4.2.1 Structural
4.2.2 Behavioral
4.3 Multi-platform Development
4.3.1 Native Development
4.3.2 Hybrid
4.3.3 Cross-Platform Development
Exercises
Review Questions
Lab Assignments
References
Chapter 5: User Interaction Optimization
5.1 Multimodality
5.1.1 Touch Gestures
5.1.2 Motion Gestures
5.1.3 Verbal Gestures
5.1.4 Visual Gestures
5.1.5 Accessibility Frameworks
5.2 Navigation Controls
5.3 Dashboards
5.4 Custom GUI
5.5 Animated GUI
Exercises
Review Questions
Lab Assignments
References
Chapter 6: Performance Acceleration
6.1 Data Compression
6.1.1 Lossless Compression
6.1.2 Lossy Compression
6.2 Data I/O Optimization
6.2.1 File System I/O
6.2.2 Network I/O
6.3 Rendering Pipelines
6.3.1 Animation Rendering
6.3.2 Video Rendering
6.3.3 Augmented Reality
6.3.4 Hardware Acceleration
6.4 Parallel Programming
6.4.1 Thread Priority
6.4.2 Data Parallel Computation
Exercises
Review Questions
Lab Assignments
References
Chapter 7: Scalability Provisioning
7.1 Scalable Media Transport
7.2 Scalable Local Storage
7.2.1 Data Models
Online Transaction Processing
Online Analytical Processing
Hybrid Transactional Analytical Processing
7.2.2 Data Structures and Query Plan
7.2.3 Location Queries
7.3 Scalable Design Patterns
7.3.1 Data Cache
7.3.2 Event Notifications
Task Scheduling
7.4 GUI Scalability
Exercises
Review Questions
Lab Assignments
References
Chapter 8: Reliability Assurance
8.1 Thread-Safe Patterns
8.1.1 Serializing GUI Updates
8.1.2 Serializing Shared Memory Access
8.1.3 Thread Synchronization
8.2 Memory Leaks
8.3 Reliable Persistent Storage
8.3.1 Isolation and Consistency
8.3.2 Atomicity and Durability
8.3.3 Sharded Persistent Storage
8.4 Data Validation
8.4.1 Input Validation
8.4.2 Integrity Constraints
8.5 Stateful Data Transport
Exercises
Review Questions
Lab Assignments
References
Chapter 9: Availability and Fault Tolerance
9.1 Availability Primitives
9.1.1 Design Diversity
9.1.2 Broadcast Primitives
9.2 Critical Communication Availability
9.2.1 Network Fault Tolerance
9.2.2 Design Diverse Emergency Communication Architecture
9.3 Sensor Fusion and Redundancy
9.4 Data Availability
9.4.1 Data Synchronization
9.4.2 Data Sharing
9.5 Battery Power Saving
Exercises
Review Questions
Lab Assignments
References
Chapter 10: Security and Trust
10.1 Cryptographic Primitives
10.1.1 Symmetric Cryptography
10.1.2 Asymmetric Cryptography
10.1.3 Message Digest
10.1.4 Message Authentication Codes
10.1.5 Digital Signatures
10.2 Secure Web Access
10.2.1 User Authentication
10.2.2 Authentication Delegation and Single Sign-On
10.2.3 Access and Authorization Delegation
10.2.4 Peer Authentication and Confidentiality
10.3 Secure Network Access
10.3.1 Transport Layer Security
10.3.2 Layer 3 Security
10.3.3 Layer 2 Security
10.4 Secure System Access
10.4.1 Mobile Application Authenticity
10.4.2 Securing Inter-Application Communication
10.4.3 Permissions and Access Control
Exercises
Review Questions
Lab Assignments
References
Appendix A: Behavior-Driven Development
Take Photo
Scroll Photos
Assign Caption
Search Photos
Appendix B: Installation and Configuration
Compile and Deploy a Servlet
Compile and Deploy a Web Socket Hub
Configure Tomcat to Enable SSL
Install and Configure Jenkins
Install Metrics Reloaded
Index


📜 SIMILAR VOLUMES


Mobile Applications: Design, Development
✍ Tejinder S. Randhawa 📂 Library 📅 2022 🏛 Springer 🌐 English

<p><span>Using Android as a reference, this book teaches the development of mobile apps designed to be responsive, trustworthy and robust, and optimized for maintainability. As the share of mission-critical mobile apps continues to increase in the ever-expanding mobile app ecosystem, it has become i

Designing and Developing Innovative Mobi
✍ Samanta Debabrata 📂 Library 📅 2023 🏛 Information Science Reference 🌐 English

Since mobile communication has become so ingrained in our daily lives, many people find it difficult to function without a cellphone. When the phone first came out, the only commonly used features were calling and sending text messages (texts). The intelligent mobile phone has proven to be a multipu

Mobility protocols and handover optimiza
✍ Schulzrinne, Henning; Dutta, Ashutosh 📂 Library 📅 2014 🏛 Wiley-IEEE Press 🌐 English

"In this book, the authors show how an optimized system of mobility management can improve the quality of service in existing forms of mobile communication"--</div> <br> Abstract: <div class="showMoreLessReadmore"> <p>This book provides a common framework for mobility managem

Mobile Computing Principles: Designing a
✍ Reza B'Far, Roy T. Fielding 📂 Library 📅 2004 🏛 Cambridge University Press 🌐 English

This text aims to cover, comprehensively, development of applications for mobile environments. The book covers issues of user interface involving voice and text user interfaces; connectivity to the network including wireless technologies; architectural issues such as mobile agent platforms, peer-to

Mobile Computing Principles: Designing a
✍ Reza B'Far 📂 Library 📅 2004 🌐 English

Written to address the technical concerns faced by mobile developers, this book explores the differences between mobile and stationary applications and the architectural and software development concepts needed to build mobile applications. Reza B'Far guides the developer through the development pro

Mobile Computing Principles: Designing a
✍ Reza B'Far 📂 Library 📅 2004 🏛 Cambridge University Press 🌐 English

Written to address the technical concerns faced by mobile developers, this book explores the differences between mobile and stationary applications and the architectural and software development concepts needed to build mobile applications. Reza B'Far guides the developer through the development pro