0% found this document useful (0 votes)
23 views9 pages

FCP Cse 22 2003

The document is an assignment on mobile application engineering, comparing Android and iOS operating systems, programming languages, and development tools. It covers core design principles, the role of SDKs and IDEs, mobile app architecture, testing types, and the app publishing process. Additionally, it discusses security practices, feedback handling, and includes code examples in Kotlin.

Uploaded by

Umar Hayatudeen
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views9 pages

FCP Cse 22 2003

The document is an assignment on mobile application engineering, comparing Android and iOS operating systems, programming languages, and development tools. It covers core design principles, the role of SDKs and IDEs, mobile app architecture, testing types, and the app publishing process. Additionally, it discusses security practices, feedback handling, and includes code examples in Kotlin.

Uploaded by

Umar Hayatudeen
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

FACULTY OF COMPUTING

ASSIGNMENT (PART 1)

COURSE TITLE: ENGINEERING MOBILE APPLICATION


(ANDROID AND IOS)

COURSE CODE: CSE 413

BY
ADEYEMO ISMAIL ADENIYI
FCP/CSE/22/2003

SUBMITTED TO
MALAM S. ALI

DATED:
6TH MAY, 2025
1
1. Explain the difference between Android and iOS in terms of operating system
architecture and development tools.
Android is an open-source operating system developed by Google. Its architecture is based
on the Linux kernel and includes layers such as the Application Framework, Libraries,
Android Runtime, and Hardware Abstraction Layer. This layered structure allows developers
to customize and extend the platform. Android apps are primarily developed using Java or
Kotlin, and Android Studio is the official IDE used for building and testing Android
applications.
iOS, developed by Apple, is a closed-source operating system used exclusively on Apple
devices like iPhones and iPads. Its architecture is based on Darwin (a Unix-like OS) and
includes the Cocoa Touch framework, which provides the basic building blocks for iOS apps.
Swift and Objective-C are the main programming languages used for iOS development, and
Xcode is the official IDE. Unlike Android, iOS offers a more controlled and secure
environment but with less flexibility.
2. List and describe any three mobile programming languages and their platform (e.g.,
Kotlin for Android).
• Kotlin (Android): Kotlin is a modern, statically typed language developed by
JetBrains and officially supported by Google for Android development. It offers
cleaner syntax and better safety features compared to Java, making it easier to write
and maintain Android apps.
• Swift (iOS): Swift is Apple’s modern programming language designed to build iOS,
macOS, watchOS, and tvOS apps. It is known for its speed, safety, and user-friendly
syntax. Swift replaced Objective-C in many modern iOS projects due to its improved
performance and readability.
• JavaScript (Cross-platform): JavaScript is widely used in cross-platform mobile
development using frameworks like React Native, Ionic, and NativeScript. It allows
developers to build mobile apps for both Android and iOS using a single codebase,
which reduces development time and effort.
3. What are the core design principles to follow when creating a mobile application?
1. User-Centred Design: Focus on the user’s needs, preferences, and behaviours. The
app should provide a smooth, intuitive experience with simple navigation and clear
layouts.
2. Performance Optimization: The app should be fast, responsive, and use minimal
memory, data, and battery. Slow or laggy apps can lead to user frustration and
uninstalls.
3. Scalability and Maintainability: The codebase should be well-structured so that it
can be easily updated, maintained, and scaled as new features are added.
4. Security and Privacy: Always protect user data using encryption, secure
authentication, and privacy controls to prevent data breaches and ensure user trust.

2
5. Consistency: Use consistent design patterns, fonts, icons, and layouts across the app
to create a cohesive user experience.
4. Describe the role of SDKs and IDEs in mobile app development. Give one example of
each.
An SDK (Software Development Kit) provides the essential tools, libraries, documentation,
and emulators required to build and test applications on a specific platform. For example, the
Android SDK includes APIs for Android functions like camera access, messaging, and
location services.
An IDE (Integrated Development Environment) is software that offers a comprehensive
workspace for developers. It combines a code editor, compiler, debugger, and testing tools in
one interface. An example is Android Studio, which is the official IDE for Android and
offers features like code completion, layout preview, and device emulation.
5. Explain the concept of mobile app architecture. What is the role of MVVM in
Android app development?
Mobile app architecture refers to the design pattern and structural layout of an app,
including how data flows between different components and layers. A good architecture
separates concerns, improves reusability, and makes the app easier to maintain.
MVVM (Model-View-ViewModel) is a design pattern used in Android development:
• Model: Handles the data and business logic.
• View: Represents the UI layer that displays data.
• ViewModel: Connects the Model to the View. It holds and manages UI-related data in
a lifecycle-aware manner.
MVVM helps reduce tight coupling between the UI and data logic, making code more
testable and modular.
6. Differentiate between frontend and backend roles in a mobile development project.
• Frontend: This refers to the user interface and client-side logic of the app. It includes
the screens, buttons, forms, and animations that users see and interact with. Frontend
developers use tools like Kotlin, Swift, XML, or JavaScript to build these
components.
• Backend: This is the server-side of the application. It handles tasks such as user
authentication, database interactions, and business logic. It often uses APIs, cloud
storage, and programming languages like Python, Node.js, or PHP.
Both frontend and backend must work together for a seamless app experience.
7. What are the different types of mobile app testing? Briefly explain any two with
examples.
• Functional Testing: Verifies that the app’s functions work as intended. For example,
testing whether the "Forgot Password" feature sends a reset email correctly.

3
• Usability Testing: Assesses how easy the app is to use. Testers observe real users to
see if they can complete tasks without confusion. For example, testing whether users
can navigate from the home screen to the checkout page easily.
Other types include performance testing, security testing, and compatibility testing.
8. Describe the process of publishing a mobile app to the Google Play Store. What file
type is required? Steps to publish:
a. Register for a Google Play Developer account.
b. Create a new app in the Play Console.
c. Prepare assets like app name, description, screenshots, and privacy policy.
d. Build the app and generate a signed .aab (Android App Bundle) file.
e. Upload the file, fill out content rating and app categorization.
f. Submit for review and wait for approval.
The required file type for publishing is .aab, which is more efficient than .apk as it allows
Google Play to generate optimized APKs for different devices.
9. What are the common challenges during deployment and how can you avoid them?
• App Rejection: This can happen if your app violates store policies. Solution:
Carefully review the Play Store guidelines before submission.
• Bugs in Production: Bugs missed during testing can cause crashes. Solution:
Perform extensive testing and use tools like Firebase Crashlytics to monitor real-time
crashes.
• Version Conflicts: Occur when dependencies or third-party libraries conflict.
Solution: Use proper version management and testing environments.
• Device Compatibility Issues: Apps may behave differently on various devices.
Solution: Use emulators and test on multiple devices with different screen sizes and
OS versions.
10. Why is mobile analytics important in app development? List two tools used for
tracking usage.
Mobile analytics helps developers understand how users interact with the app, which features
are most used, and where users drop off. This data informs future updates, improves user
experience, and helps in decision-making for marketing or feature prioritization.
Tools:
• Firebase Analytics: Tracks user behaviour, session length, and event triggers.
• Mixpanel: Offers advanced user segmentation, retention tracking, and funnels.

4
11. What is Firebase Crashlytics and how does it help developers?
Firebase Crashlytics is a real-time crash reporting tool for Android and iOS apps. It
automatically captures crash reports, logs, and stack traces, helping developers understand
why the app crashed and on what device.
It enables:
• Prioritizing issues based on impact.
• Viewing detailed crash logs.
• Resolving issues faster with actionable insights.
12. Describe three best practices for securing user data in mobile apps.
1. Encrypt Sensitive Data: Use AES for data-at-rest and HTTPS (SSL/TLS) for data-
in-transit to prevent interception or theft.
2. Secure Authentication: Implement strong user authentication, like two-factor
authentication or biometrics (fingerprint, face unlock).
3. Limit Permissions: Only request necessary permissions from users. Avoid storing
sensitive data on the device unless absolutely necessary.
13. Write a simple Kotlin program that takes a user's name as input and prints "Hello,
[name]!".
fun main() {
print("Enter your name: ")
val name = readLine()
println("Hello, $name!")
}
This simple program reads user input and displays a personalized greeting.
14. What is a nullable variable in Kotlin? How is it declared?
A nullable variable is one that can hold either a value or null. Kotlin uses ? to declare such
variables to avoid NullPointerExceptions.
Example:
var userName: String? = null
This means userName can either hold a string or be null.
15. Explain the use of the `let`, `when`, and `forEach` functions in Kotlin with short
examples.
• let: Executes a block of code only if the variable is not null.
val email: String? = "user@example.com"

5
email?.let {
println("Email is $it")
}
• when: A more flexible alternative to switch-case.
kotlin
CopyEdit
val score = 90
when (score) {
in 90..100 -> println("Excellent")
in 70..89 -> println("Good")
else -> println("Try again")
}
• forEach: Used to iterate over collections.
val items = listOf("Apple", "Banana", "Mango")
items.forEach { item ->
println(item)
}
16. Define a Kotlin class named `Student` with properties `name` and `grade`. Include a
method that displays the student's details.
class Student(val name: String, val grade: Int) {
fun displayDetails() {
println("Student Name: $name")
println("Grade: $grade")
}
}
This class has two properties and a method that displays the student's details.
17. What is the purpose of the `open` keyword in Kotlin? How does inheritance work in
Kotlin?
In Kotlin, classes and methods are final by default, meaning they can't be inherited or
overridden. The open keyword makes inheritance possible.

6
Example:
open class Vehicle {
open fun start() = println("Vehicle starting")
}

class Car : Vehicle() {


override fun start() = println("Car starting")
}
This allows for extending base functionality in subclasses.
18. Define what an MVP (Minimum Viable Product) is in the context of mobile app
development.
An MVP is the first version of a mobile app that includes only the core features needed to test
the main idea or solve the key problem. It allows developers to launch quickly, gather
feedback, and make improvements before investing in full-scale development.
19. Describe the steps you would take to start a mobile app development project from
scratch.
a. Idea Definition: Clearly define what the app will do and who it's for.
b. Research & Planning: Study competitors, identify unique features, and create
wireframes or mockups.
c. Choose Platform & Tools: Decide between native or cross-platform development
and select tools like Android Studio or Flutter.
d. Develop Prototype: Build a basic version of the app to test core functions.
e. Code & Test: Write the full app and perform thorough testing.
f. Deploy & Maintain: Release the app and continuously update it based on user
feedback.
20. As a developer, how would you handle feedback and updates after publishing your
mobile app?
• Collect Feedback: Use in-app surveys, reviews, and analytics to understand user
opinions.
• Fix Issues: Prioritize fixing bugs and performance issues promptly.
• Add Features Gradually: Roll out new features based on user demand.
• Communicate Changes: Inform users about updates through changelogs or
notifications to build trust.

7
21. What is a lambda expression in Kotlin? Provide a use case.
A lambda expression is a concise way to define an anonymous function. It’s often used in
collection operations.

Example:
val add = { x: Int, y: Int -> x + y }
println(add(5, 3)) // Output: 8
Use Case: Sorting a list or filtering items:
val list = listOf(1, 2, 3, 4)
val evenNumbers = list.filter { it % 2 == 0 }
22. Compare the use of Activities and Fragments in Android app development.
• Activities: Represent a single screen with a user interface. Each activity is
independent and manages the entire UI.
• Fragments: Represent parts of an activity. They are modular and reusable, allowing
multiple views in one activity and better screen management (especially on tablets).
Fragments are lighter and promote reusable UI components.
23. Mention one security threat in mobile apps and how to mitigate it.
• Threat: Insecure data storage can expose sensitive user data if the device is lost or
hacked.
• Mitigation: Store data securely using encrypted storage mechanisms like Android
Keystore or use server-side storage for sensitive information.

8
REFERENCES
Android Developers. (n.d.). Build your first app. Retrieved May 6, 2025, from
https://developer.android.com/training/basics/firstapp
Android Developers. (n.d.). App architecture guide. Retrieved May 6, 2025, from
https://developer.android.com/jetpack/guide
Google. (n.d.). Firebase Crashlytics. Retrieved May 6, 2025, from
https://firebase.google.com/products/crashlytics
Google. (n.d.). Firebase Analytics. Retrieved May 6, 2025, from
https://firebase.google.com/products/analytics
Apple Developer. (n.d.). Human Interface Guidelines. Retrieved May 6, 2025, from
https://developer.apple.com/design/human-interface-guidelines/
Apple Developer. (n.d.). Swift programming language. Retrieved May 6, 2025, from
https://developer.apple.com/swift/
JetBrains. (n.d.). Kotlin documentation. Retrieved May 6, 2025, from
https://kotlinlang.org/docs/home.html
Google. (n.d.). Publishing overview. Retrieved May 6, 2025, from
https://support.google.com/googleplay/android-developer/answer/9859152
Murray, M. (2012). Android development for dummies. Wiley.
Soni, D. (2020). Mastering Android App Development with Kotlin. Packt Publishing.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy