By the end of this chapter, you will be able to:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Design should take account of limits in CPU speed, memory and battery life. Lightweight apps run better on entry-level devices.
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 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.
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.
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.
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.
Building the app from modular components allows new features to be added without rebuilding the whole system, which makes maintenance and updates easier.
Scalability also includes optimising code and resources so that the app stays fast and responsive as the workload increases.
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.
A clean interface avoids clutter and uses intuitive icons and labels, so that users complete tasks efficiently.
Reducing typing and complex gestures improves usability, particularly for users with limited digital literacy.
Putting the essential functions first prevents feature bloat, which can confuse users and slow the app down.
Step-by-step processes and contextual help lead users through a task, which raises satisfaction and reduces errors.
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 |
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 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.
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.
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.
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.
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.
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)
Discuss five ways consistency in mobile app design improves usability, using examples relevant to Kenyan software applications. (10 marks)
Describe how device variability in Kenya influences mobile app design and suggest four strategies developers can use to address these challenges. (12 marks)
Outline six steps to ensure scalability in mobile application design, explaining why each step is critical. (12 marks)
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)
Compare and contrast three mobile application design tools in terms of features and suitability for collaborative software development teams in Kenya. (10 marks)
Create a free account to open more of this chapter.
Free: practical guides, quick cards, workplace scenarios and more.
Create a free accountThis 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.
Type: Individual
| Tools & Equipment | Materials |
|---|---|
| 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 |
| S/N | Item | Quantity |
|---|---|---|
| 1 | Computer installed with Windows 10 OS or higher | 1 Pc per Candidate |
| 2 | Android Studio or Flutter | 1 Pc per Candidate |
| 3 | Java Development Kit (JDK) | 1 Pc per Candidate |
| 4 | Android SDK | 1 Pc per Candidate |
| 5 | Visual Studio Code (Vs Code) or Notepad ++ | 1 Pc per Candidate |
| 6 | Android Emulator or Android Device | 1 Pc per Candidate |
| Items to be Evaluated | Marks Available | Marks Obtained | Comments |
|---|---|---|---|
| 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-Total | 10 | ||
| 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-Total | 10 | ||
| 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-Total | 5 | ||
| TASK 4: Prototype Build | |||
| Candidate packages the app interface as a debug APK (Award 5 marks for successful APK packaging without errors) | 5 | ||
| Sub-Total | 5 | ||
| 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-Total | 10 | ||
| GRAND TOTAL | 40 | ||
Type: Individual
| Tools & Equipment | Materials |
|---|---|
| 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 |
| S/N | Item | Quantity |
|---|---|---|
| 1 | Computer with Windows 10 OS or higher | 1 Pc per Candidate |
| 2 | Android Studio or Flutter IDE | 1 Pc per Candidate |
| 3 | Java Development Kit (JDK) | 1 Pc per Candidate |
| 4 | Android SDK | 1 Pc per Candidate |
| 5 | Visual Studio Code or Notepad++ | 1 Pc per Candidate |
| 6 | Android Emulator or Android Device | 1 Pc per Candidate or 1 Pc per 15 Candidates (sharable) |
| Items to be Evaluated | Marks Available | Marks Obtained | Comments |
|---|---|---|---|
| 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-Total | 6 | ||
| 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-Total | 8 | ||
| 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-Total | 4 | ||
| 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-Total | 5 | ||
| 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-Total | 10 | ||
| GRAND TOTAL | 33 | ||
At the start of this chapter we promised you would be able to:
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.