Software Development  ·  Level 6
Mobile Application Development

Chapter 1: Design Mobile Application

📚 4 Topics
⚑ What you will be able to do

By the end of this chapter, you will be able to:

  • identify the best mobile application design tools that meet user needs
  • design mobile application functionality that matches exactly what users require
  • create a mobile application interface that follows user requirements clearly and effectively
  • design mobile application outputs that satisfy user expectations

These skills will help you create mobile apps that users love and rely on every day in the real world!

Compiled by: Ann Chebet

Designing mobile applications is a critical phase in the software development lifecycle, especially in Kenya where mobile technology drives innovation across sectors such as banking, healthcare, and government services. Effective design ensures applications are user-friendly, efficient, and adaptable to various devices and operating systems prevalent in the Kenyan market. This chapter examines fundamental design principles and guidelines tailored for mobile applications, equipping developers with the knowledge to create robust and scalable software solutions.

1.1 Design principles and Guidelines

Mobile application design principles guide developers in creating apps that meet user expectations, perform well on mobile devices and stay consistent across platforms. Kenya's mobile ecosystem is varied: users run apps on new smartphones and on older entry-level handsets, on fast Wi-Fi and on slow, intermittent mobile data. Applying the principles below helps a developer build an app that works for urban and rural users alike, with accessibility and usability in mind.

1.1.1 Operating system

Mobile applications run inside a mobile operating system (OS), and Android and iOS are the two systems a developer meets most often. Designing with the OS in mind ensures compatibility, security and performance.

Understanding mobile operating systems

A mobile operating system provides the core software environment in which applications run. Android is favoured for its open-source nature and is used by many smartphone manufacturers, so it supports a very wide range of devices. iOS runs on Apple devices only and offers a controlled ecosystem with strict guidelines. Developers must understand each OS's features, APIs and limitations to get the best from their app.

OS-specific design guidelines

Each OS has its own design language: Material Design for Android and the Human Interface Guidelines for iOS. Following them makes an app feel native to the platform, which improves the user experience. For example, Android apps commonly use floating action buttons and navigation drawers, while iOS apps emphasise tab bars and swipe gestures.

Managing cross-platform compatibility

Developers often need an app to run on more than one OS to extend its reach. Cross-platform frameworks such as Flutter or React Native allow code to be shared between the two. Designers must still adjust interface elements to each OS's conventions, otherwise the app feels generic and less comfortable to use.

Security and permissions management

Operating systems enforce security models that control an app's access to device features such as the camera, location and contacts. A developer should design permission requests so that the user understands why each one is needed. Transparent requests build trust, especially in apps that handle payments or personal data.

1.1.2 Consistency

Consistency in mobile app design builds familiarity and shortens the learning curve for users. It means uniform visual elements, navigation and behaviour across the app and the platforms it runs on.

Visual consistency

Using the same colours, typography and iconography on every screen matches the brand identity and lets users recognise app elements at once. For instance, a delivery app for market-stall vendors that uses a green header, the same logo position and one icon set on every screen looks and feels like a single product.

Functional consistency

Navigation elements such as menus, buttons and gestures should behave predictably. If a swipe gesture deletes an item in one part of the app, it should have the same effect everywhere else, so that users are not confused.

Consistency across devices

An app should give a similar experience on a smartphone and on a tablet so that users keep their confidence. Layouts adapt to the screen, but the core interactions and features stay the same.

Alignment with OS standards

Consistency also means following the standards of the platform, so that users who know Android or iOS can use the app without relearning basic controls.

1.1.3 Device

Mobile devices differ widely in screen size, resolution, processing power and input methods. Designing for this variety is important in Kenya, where people use apps on high-end smartphones and on basic, low-cost handsets.

Screen size and resolution

An app must respond to different screen sizes, from small phones to larger tablets, so that content fits and stays readable. High-resolution screens need scalable graphics to avoid pixelation.

Hardware capabilities

Design should take account of limits in CPU speed, memory and battery life. Lightweight apps run better on entry-level devices.

Input methods

Touch input is the standard, but some devices also support a stylus or a hardware keyboard. Large touch targets and support for several input types improve accessibility.

Network connectivity

Network coverage and speed vary, and some users have low bandwidth or an intermittent connection. Data-efficient design and offline functionality keep an app usable in these conditions.

1.1.4 Scalability

Scalability means that a mobile application can handle growth in users, data volume and feature complexity without losing performance. The principle matters for any app that is expected to grow.

User base growth

An app must manage a rising number of users efficiently. For instance, a ride-booking app that starts in one town should keep fast response times when it opens in several more.

Data volume management

Scalable apps cope with growing storage and retrieval needs. Cloud services such as Microsoft Azure or Amazon Web Services provide storage and computing resources that can be increased as demand grows.

Modular architecture

Building the app from modular components allows new features to be added without rebuilding the whole system, which makes maintenance and updates easier.

Performance optimisation

Scalability also includes optimising code and resources so that the app stays fast and responsive as the workload increases.

1.1.5 Simplicity

Simplicity in mobile app design supports user engagement by reducing complexity and focusing on core functions. On a small screen, with limited data and short sessions, an app that is straightforward and quick to navigate is easier to use.

Clear user interface

A clean interface avoids clutter and uses intuitive icons and labels, so that users complete tasks efficiently.

Minimal user input

Reducing typing and complex gestures improves usability, particularly for users with limited digital literacy.

Focus on core features

Putting the essential functions first prevents feature bloat, which can confuse users and slow the app down.

Guided user flow

Step-by-step processes and contextual help lead users through a task, which raises satisfaction and reduces errors.

1.1.6 Mobile application design tools

A design tool lets a developer or designer draw the screens of an app, link them into a flow and share them for feedback before any code is written. Choosing a suitable tool speeds up design and improves collaboration in a software team. Most work moves through four stages: a wireframe (a rough, low-fidelity layout of each screen), a mockup (a high-fidelity screen with final colours, type and images), a prototype (linked screens that can be tapped through like the real app) and a handoff (specifications, measurements and assets passed to the developers).

Name Specification Use
Figma Runs in a web browser and as a desktop app; vector editing; real-time editing by several people; reusable components UI and UX design, prototyping, team collaboration, developer handoff
Sketch Editor runs on macOS only; vector UI design; plugin support; shared documents can be viewed in a web browser High-fidelity UI design for iOS and Android screens
Adobe XD Vector design and prototyping; in maintenance mode, with no new features Wireframes and interactive prototypes in existing projects
InVision Prototyping and feedback platform; service ended on 31 December 2024 Interactive mockups and feedback gathering (historical)
Marvel Browser-based design and prototyping; prototypes built without code; user testing and developer handoff Quick clickable prototypes and early user testing
Balsamiq Rapid wireframing tool with a deliberately rough, low-fidelity look Early-stage wireframes of app structure

1.1.6.1 Types of mobile application design tools

Design tools differ in where they run, how much detail they handle and which stage of design they serve best. Some are full vector design editors that also prototype, such as Figma and Sketch. Others concentrate on turning finished screens into clickable prototypes and collecting feedback, such as InVision and Marvel. Adobe XD sits between the two groups. Each tool below is described in turn, with a short example of how it is used in practice.

Figma

Figma is a design and prototyping tool that runs in a web browser and as a desktop app. Several people can open the same file at the same time, see each other's cursors and comment on a screen as it is drawn. Because the file lives online, a team spread over different towns works on one shared version instead of passing files by email.

  • Platform: Browser and desktop app on Windows and macOS, so a team does not need matching computers.
  • Strengths: Real-time editing, reusable components for buttons and headers, auto layout that resizes a screen when its text changes, and built-in prototyping.
  • Limits: A stable internet connection is needed for shared work, and a very large file with many screens can become slow on a low-specification laptop.
  • Handoff: Developers open the shared file to read measurements, colours and text styles and to export icons and images.
  • Example in practice: A two-person team building a salon booking app draws the booking screens as frames, links them in the Prototype tab, and sends the link to the salon owner for comments before coding begins.
Sketch

Sketch is a vector design tool made for interface work. Its editor runs on macOS only, which suits teams whose designers use Mac computers and who target iOS as well as Android screens. A large library of plugins adds features such as icon sets, sample data and export helpers.

  • Platform: The editor runs on macOS; documents shared through Sketch's web app can be viewed and commented on in a browser on any computer.
  • Strengths: A clean, focused interface for high-fidelity screens, symbols that reuse the same element across many artboards, and a large plugin library.
  • Limits: Designers on Windows or Linux cannot run the editor, so a mixed team may prefer a browser-based tool.
  • Handoff: Artboards are exported as images, and specifications and assets are shared through the web app or plugins.
  • Example in practice: A designer working on a Mac draws the screens of a matatu fare-estimate app as artboards, reuses one symbol for the route card, and exports the icons for the developer.
Adobe XD

Adobe XD is a vector design and prototyping tool from Adobe. It offers a Design mode for drawing screens and a Prototype mode for linking them with transitions, and it works with other Adobe applications such as Photoshop and Illustrator. Adobe has placed XD in maintenance mode: it receives no new features, so learners meet it mostly in existing projects and training files, while new teams usually choose a tool that is still being developed.

  • Platform: Desktop app on Windows and macOS.
  • Strengths: A simple layout that is quick to learn, easy movement of artwork to and from Photoshop and Illustrator, and prototype transitions that are simple to set up.
  • Limits: No new features are being added, so it can fall behind the current design systems and operating system updates that newer tools follow.
  • Handoff: Designs and prototypes are shared by link, and developers inspect them or export assets.
  • Example in practice: A studio keeps the old XD files of a hardware-shop stock app so that the team can open them, check the screens and rebuild them in a current tool when the app is next updated.
InVision

InVision was a platform for turning finished screens into clickable prototypes and gathering comments from clients and team members on each screen. The service ended on 31 December 2024 and its documents were deleted afterwards, so it can no longer be used for new work. The ideas it popularised remain part of most current tools: link static screens into a flow, share the link, and collect comments in one place.

  • Status: Closed on 31 December 2024, so a learner will meet it only in older project descriptions and tutorials.
  • What it offered: Hotspots that linked one screen to another, transitions between screens, and comment pins placed on the exact spot being discussed.
  • Why it still matters: Older tutorials mention it, and the workflow of prototype, share and comment is still used in design review.
  • Where the work went: Users were told to export their documents before the closure, and teams moved their prototyping and review to tools that are still developed, such as Figma.
  • Example in practice: A learner reading an older tutorial for a farm-input ordering app sees steps for InVision hotspots and repeats the same steps with the Prototype tab in Figma.
Marvel

Marvel is a browser-based tool for designing screens and turning them into interactive prototypes without writing code. The designer uploads or draws screens, adds links and gestures between them, and shares a link so that a client can tap through the prototype on a phone. It also supports user testing and generates specifications for developers.

  • Platform: Browser-based, with companion apps for viewing prototypes on a phone; check the vendor's site for the current plans and supported devices before choosing it for a team.
  • Strengths: Quick to learn, prototypes built without code, and user testing and developer handoff in the same tool.
  • Limits: It is lighter than the large vector editors for detailed drawing, so complex screens are often drawn elsewhere and imported.
  • Handoff: A single link gives developers the screens, measurements and generated specifications.
  • Example in practice: A learner imports three screens of a market-price alert app, links the Home screen to the Price List screen with a tap, and sends the prototype link to a trader to try on a phone.

Practice Questions

  1. Explain the importance of aligning mobile application design with specific operating system guidelines and provide two examples of how this impacts user experience. (10 marks)

  2. Discuss five ways consistency in mobile app design improves usability, using examples relevant to Kenyan software applications. (10 marks)

  3. Describe how device variability in Kenya influences mobile app design and suggest four strategies developers can use to address these challenges. (12 marks)

  4. Outline six steps to ensure scalability in mobile application design, explaining why each step is critical. (12 marks)

  5. Evaluate the principle of simplicity in mobile app design and its significance for Kenyan users, supporting your answer with at least five points. (10 marks)

  6. Compare and contrast three mobile application design tools in terms of features and suitability for collaborative software development teams in Kenya. (10 marks)

The rest of this chapter
🔒

Create a free account to open more of this chapter.

Free: practical guides, quick cards, workplace scenarios and more.

Create a free account
🔒1.2 Mobile Application Functionality

In the dynamic landscape of software development within Kenya, mobile applications must be designed with functionality that meets user expectations and operational demands. Mobile app functionality encompasses several critical aspects such as ease of use, perf…

🔒1.3 Mobile Application Interface

In Kenya’s vibrant software development sector, the mobile application interface serves as the critical touchpoint between users and functionality. For developers working with banks like KCB or SACCOs expanding digital services, crafting intuitive and responsi…

🔒1.4 Mobile Application Output Design

Mobile application output design focuses on how information and results are presented to users after processing their inputs. In Kenya’s software development environment, clear and effective output presentation is crucial for sectors such as education and publ…

Chapter Summary

This chapter explored essential design principles and guidelines critical to mobile application development, emphasizing the importance of aligning with operating system requirements, maintaining consistency, considering device constraints, ensuring scalability, and prioritizing simplicity. It also introduced various mobile application design tools such as Figma, Sketch, Adobe XD, InVision, and Marvel, which facilitate the creation of effective user interfaces. The discussion then shifted to key aspects of mobile application functionality, including usability, performance, security, compatibility, and the ability to provide offline access, all of which contribute to a seamless user experience. Attention was given to the design of the mobile application interface, highlighting how intuitive layouts and interactive elements engage users effectively. Finally, the chapter addressed mobile application output design, focusing on how information and results are presented to users in a clear and accessible manner. Together, these topics provide a comprehensive foundation for designing robust, user-friendly mobile applications.

Self-Assessment

🔒 PDFDownload this self-assessment, with answers

A. Written Assessment

  1. Which operating system considerations are critical when designing a mobile application for both Android and iOS platforms? (2 marks)
  2. Explain how consistency in mobile application design affects user experience. (3 marks)
🔒20 more in this section.

Chapter Examination Questions

🔒 PDFDownload these examination questions, with worked answers

SECTION A (40 Marks) - Answer ALL Questions

  1. Explain how the Android operating system influences mobile application design choices for a banking app used by Equity Bank customers. (4 marks)
  2. Describe the importance of consistency in mobile application design and provide an example relevant to a county government service app. (4 marks)
🔒18 more in this section.

Chapter Practical Activities

Practical 1: Design a Mobile App Interface Applying Key Design Principles

Software Development · Level 6
Mobile Application Development
PRACTICAL ASSESSMENT
TIME: 5 HOURS
⬇ PDFCandidate Instructions (Candidate Tool)

Type: Individual

INSTRUCTIONS TO CANDIDATE:
1.  You are required to perform the following task:
i.  Design a mobile app interface layout of screen size 1080mm x 1920mm applying mobile design principles ensuring consistency and simplicity.
2.  You have been provided with the following resources for the practical task:
Tools & EquipmentMaterials
Computer installed with Windows 10 OS or higher
Android Studio or Flutter
Java Development Kit (JDK)
Android SDK
Visual Studio Code (Vs Code) or Notepad ++
Android Emulator or Android Device
⬇ PDFResources Required (Cutting List)
S/NItemQuantity
1Computer installed with Windows 10 OS or higher1 Pc per Candidate
2Android Studio or Flutter1 Pc per Candidate
3Java Development Kit (JDK)1 Pc per Candidate
4Android SDK1 Pc per Candidate
5Visual Studio Code (Vs Code) or Notepad ++1 Pc per Candidate
6Android Emulator or Android Device1 Pc per Candidate
⬇ PDFAssessor Guide
Items to be EvaluatedMarks AvailableMarks ObtainedComments
TASK 1: Design Specification
Candidate applies mobile design principles including consistency and simplicity in layout
(Award 3 marks for consistent use of colors, fonts, and icons)
3
Candidate creates a user-friendly interface layout with clearly defined navigation elements
(Award 2 marks for simplicity in navigation and intuitive UI)
2
Candidate uses appropriate spacing and alignment for UI components
(Award 2 marks for balanced spacing and alignment)
2
Candidate includes at least three interactive elements (e.g. buttons, input fields)
(Award 3 marks for inclusion and correct labeling of interactive elements)
3
Sub-Total10
TASK 2: Implementation
Candidate codes the interface layout in XML or Flutter widgets
(Award 3 marks for correct syntax and structure)
3
Candidate ensures consistency in style (colors, fonts) in code
(Award 3 marks for style consistency in code)
3
Candidate implements navigation flow ensuring simplicity
(Award 4 marks if navigation is intuitive and functional)
4
Sub-Total10
TASK 3: Testing and Debugging
Candidate tests the app interface for usability and responsiveness on Android Emulator or Device
(Award 3 marks for thorough testing on multiple screen sizes)
3
Candidate debugs and fixes any UI glitches or inconsistencies
(Award 2 marks for effective debugging and error correction)
2
Sub-Total5
TASK 4: Prototype Build
Candidate packages the app interface as a debug APK
(Award 5 marks for successful APK packaging without errors)
5
Sub-Total5
PRODUCT CHECKLIST
Final app interface matches the design principles of consistency and simplicity with correct dimensions 1080mm x 1920mm
(Award 5 marks for accurate and professional interface design)
5
App navigation is intuitive and all interactive elements function as intended
(Award 5 marks for fully functional and user-friendly navigation)
5
Sub-Total10
GRAND TOTAL40
ASSESSMENT OUTCOME:   ☐ Competent    ☐ Not Yet Competent (competent if at least 50%)

Practical 2: Design a Mobile Application for Cross-Platform Compatibility

Software Development · Level 6
Mobile Application Development
PRACTICAL ASSESSMENT
TIME: 5 HOURS
⬇ PDFCandidate Instructions (Candidate Tool)

Type: Individual

INSTRUCTIONS TO CANDIDATE:
1.  You are required to perform the following task:
i.  Design a mobile app user interface compatible with Android and iOS platforms featuring three numeric input fields, a 'Calculate Product' button, and a result display area, arranged within a 360px width and 640px height layout.
2.  You have been provided with the following resources for the practical task:
Tools & EquipmentMaterials
Computer with Windows 10 OS or higher
Android Studio or Flutter IDE
Java Development Kit (JDK)
Android SDK
Visual Studio Code or Notepad++
Android Emulator or Android Device
⬇ PDFResources Required (Cutting List)
S/NItemQuantity
1Computer with Windows 10 OS or higher1 Pc per Candidate
2Android Studio or Flutter IDE1 Pc per Candidate
3Java Development Kit (JDK)1 Pc per Candidate
4Android SDK1 Pc per Candidate
5Visual Studio Code or Notepad++1 Pc per Candidate
6Android Emulator or Android Device1 Pc per Candidate or 1 Pc per 15 Candidates (sharable)
⬇ PDFAssessor Guide
Items to be EvaluatedMarks AvailableMarks ObtainedComments
TASK 1: Design Specification and Layout Creation
Candidate creates a user-friendly layout in XML or Flutter with three input fields for numbers
(Award 2 marks for correctly creating three numeric input fields)
2
Candidate adds a button labeled 'Calculate Product'
(Award 1 mark for button with correct label)
1
Candidate includes a TextView or equivalent to display the result
(Award 1 mark for result display element)
1
Candidate ensures the layout fits within 360px width and 640px height for mobile screens
(Award 1 mark for correct dimensioning and responsive design)
1
Candidate applies styling to ensure readability and usability on both Android and iOS platforms
(Award 1 mark for cross-platform compatible styling)
1
Sub-Total6
TASK 2: Implementation of Compatibility Features
Candidate codes logic in Java/Kotlin or Dart to capture input values from the three fields
(Award 2 marks for correctly capturing user input)
2
Candidate implements computation of the product of the three input numbers
(Award 2 marks for correct product calculation)
2
Candidate displays the computed product in the result TextView upon button click
(Award 2 marks for correct display of output)
2
Candidate uses platform-specific compatibility considerations (e.g., conditional styling or widgets) to ensure the app runs on both Android and iOS
(Award 2 marks for implementing cross-platform compatibility features)
2
Sub-Total8
TASK 3: Testing and Debugging
Candidate tests the app for various numeric inputs including positive, negative, and zero values
(Award 2 marks for comprehensive testing with varied inputs)
2
Candidate debugs and fixes any errors or crashes encountered during testing
(Award 2 marks for effective debugging)
2
Sub-Total4
TASK 4: Prototype Packaging
Candidate packages the app as a debug APK or equivalent build for testing
(Award 5 marks for successful packaging of a testable prototype)
5
Sub-Total5
PRODUCT CHECKLIST
Layout dimensions match 360px width and 640px height specification
(Award 2 marks for accurate layout dimensions)
2
Input fields, button, and result display are correctly labeled and functional
(Award 3 marks for correct UI element labeling and functionality)
3
Application runs without errors on both Android Emulator/Device and iOS (simulated or noted compatibility)
(Award 5 marks for verified cross-platform compatibility)
5
Sub-Total10
GRAND TOTAL33
ASSESSMENT OUTCOME:   ☐ Competent    ☐ Not Yet Competent (competent if at least 50%)
🔒

Free: practical guides, quick cards, workplace scenarios and more.

Create a free account
🔒Design a scalable mobile application interface for multiple screen sizesPractical 3
🔒Design a Basic Mobile App Prototype Using Adobe XDPractical 4
🔒Design and Prototype Functional User Flow of a Mobile ApplicationPractical 5
🔒Design a Mobile App Interface Optimized for PerformancePractical 6
🔒Design Mobile App Screens with Security FeaturesPractical 7
🔒Design a Mobile Application Supporting Offline AccessPractical 8
🔒Design Mobile Application Output Screens for Sales ReportPractical 9
🔒Design and adapt a mobile app interface for smartphones and tabletsPractical 10
🔒Prototype an Interactive Mobile App Interface for a Budget CalculatorPractical 11
🔒Develop wireframes for a mobile app using a selected design toolPractical 12
🔒Design Responsive UI Elements for a Mobile ApplicationPractical 13
🔒Design a Secure and High-Performance Mobile App WorkflowPractical 14
🔒Design Consistent and Intuitive Navigation for a Mobile ApplicationPractical 15
Flashcards 20 cards Study deck ▾
Question
1

↻ Tap card to reveal answer
🔒

18 more in this section.

Create a free account
Test Yourself 17 questions Start quiz ▾
0%
0 / 2
🔒

15 more in this section.

Create a free account
Am I competent?

At the start of this chapter we promised you would be able to:

  • identify the best mobile application design tools that meet user needs
  • design mobile application functionality that matches exactly what users require
  • create a mobile application interface that follows user requirements clearly and effectively
  • design mobile application outputs that satisfy user expectations

Tick each one you can genuinely do.

So, are you there yet?

You're competent when you can confidently do 50% or more of what this chapter promised.

Sign in to record how you're doing.