You are on page 1of 46

PA 1469 - Mobile Applications

Development
Dr. Usman Nasir
Today
■ I will talk about
– The course
– Assignment
– Deadlines
– Mobile devices
– Desktop vs Mobile Apps
– Types of mobile app
Course Introduction
Course Responsible & Lecturer
■ Hej, I am Dr. Usman Nasir (Universitetsadjunkt)
■ and I would manage the PA1469 course
– deliver lectures
– evaluate an assignment,
– and resolves any (and all) issues.
– usman.nasir@bth.se

– English language only please, I am learning Swedish but have not gotten past
Hej and Tack yet.
Lecturer & Evaluator
■ Andreas Bauer (Doktrand)
■ and he
– delivers lectures
– Evaluate three major assignments
– and helping you with technical issues with assignment 1-3.
– andreas.bauer@bth.se
– English language please.
Let’s get to know each other better!!
■ Please tell us
– Your name
– Degree program/Cohort
– Background in programming
■ Programming languages
■ Development machine (laptop/android devices)
The Course & Assignments
What do you know about?

Mobile Application
Development
Course Objectives
■ The course is planned to ensure that by the end of this course, you (the
student)
– Understand differences between desktop and mobile application
development from a software engineering perspective.

– Able to architect, design, implement and test a simple mobile


application.

– You can read the the official kursplan for more details!!
Schedule: Lectures
■ 31.10.22 10-12 Course introduction and Mobile App Development
■ 01.11.22 10-12 Android: Platform and Application Fundamentals
■ 02.11.22 13-15 An introduction to Android Studio
■ 07.11.22 10-12 User Experience and Application Design
■ 09.11.22 10-12 Android: Developing UI and Event Handling
■ 09.11.22 13-15 Android: Jetpack Compose
■ 14.11.22 10-12 Android: App Architecture
■ 15.11.22 10-12 Android: Threading and Local Storage
■ 15.11.22 13-15 Testing an Android App
■ 21.11.22 10-12 Android: Accessing Network and Sensors
■ 22.11.22 13-15 Android: Using Firebase
■ 24.11.22 15-17 Guest Lecture: Industrial Expert
■ 29.11.22 13-15 Open-Source projects on GitHub
■ 30.11.22 13-15 Security Deployment and Course Closure
■ 05.12.22 13-15 Reserve Lecture slot (if required)
Schedule: Project & Project Demo
■ Group member's names 06.11.22
■ Group Assignment 1 13.11.22
■ Group Assignment 2 04.12.22
■ Group Assignment 3 05.01.23
■ Project Demonstration and oral presentation 05.01.23
Literature
■ Books, Developer Guidelines & Documentations,
– Android Programming: The Big Nerd Ranch Guide, Fifth Edition, Authors: Bill
Phillips, Chris Stewart and Marsicano Kristin, Publisher: Big Nerd Ranch
Guides, 2021.

– Documentation for app developers


■ https://developer.android.com/docs
Credits

Module Credit Grade


Assignment 1 1.0 hp G-U
Assignment 2 2.0 hp G-U
Assignment 3 2.5 hp A-F
Assignment 4 2.0 hp A-F

The final grade is the weighted average of the grades for assignment 3
(oral presentation) and assignment 4 (individual written report).
Assignment 1-3
■ Assignments 1, 2 and 3 are group assignments where the student groups
will work to develop a mobile application.
– Assignment 1 (1.0 ECTS): Written report proposing and describing the mobile
app to be developed by group.
– Assignment 2 (2.0 ECTS): Written report describing architecture and design
of the proposed app.
– Assignment 3 (2.5 ECTS): Oral Presentation where the working app deployed
on a mobile device/emulator is demonstrated.

– Technical reports, mobile programming effort and oral presentation/demo of


working mobile application
– Evaluated by Andreas Bauer
Proposed mobile app
■ Small Mobile application
– reasonable size and effort
– not be trivial
■ Five point test:
– At least 3-4 multiple activities or fragments
– User Interface (UI) has a variety of user interface elements (e.g., buttons,
progress bars, etc.)
– UI uses gestures for interaction (e.g., Double Touch, Double Tap, touch
gestures etc.)
– Notifications
– Utilise device’s sensors or networking (e.g., http) and storage
■ Food delivery mobile app:
– should store user profile, log in, order history, delivery address, and show
restaurants near you (using GPS device) option.
– The app should let you pinch and zoom (touch gestures) on a map (google
map API).

■ Native Android or Kotlin Mobile App


■ Java or Kotlin
■ XML or JetPack
Assignment 4
■ Assignment 4 is individual work.

– Assignment 4 (2.0 ECTS): Written report on students’ reflection about the


mobile application development process, the outcome (final product) and
other knowledge areas.

– Around 2000 words


– Evaluated by Usman.
Deadlines
Deliverables Due Date
Assignment 1 (1.0 ECTS) Nov 13, 2022

Assignment 2 (2.0 ECTS) Dec 04, 2022

Assignment 4 (2.0 ECTS) Dec 21, 2022

Assignment 3 (2.5 ECTS) Jan 05, 2023

■ Please respect the deadlines.


■ Assignment 3 would be evaluated after the oral presentation.
– Group (and any of its member) that are absent or fail to present/demonstrate
their mobile would be treated as fail.
Re-submisions
■ Students have 2 more opportunities to submit their assignment
– Re-submissions are graded the same way
– Dates are listed in course memo too…
Submission
■ All assignments submissions are handled through Canvas pages.
■ Assignment deliverables submitted through email would NOT be reviewed.
Grades
■ Assignment 1 & 2 are graded on G/U scale

■ Grade U: Excellent (Marks > 60%)


– A particularly outstanding/acceptable achievement
■ Grade X: Very Good (Marks < 60%)
– An achievement that don’t meet the minimum criteria
Grades
■ Assignment 3, 4 and course are graded on A-F scale
■ Grade A: Excellent (Marks > 80%)
– A particularly outstanding achievement that lies significantly above the average standard
■ Grade B: Very Good (Marks < 80% and >= 75%)
– An achievement that surpasses the average standard
■ Grade C: Good (Marks < 75% and >= 70%)
– An achievement that fulfills the average standard. Generally sound work but with small number of
notable error
■ Grade D: Satisfactory (Marks < 70% and >= 65%)
– Fair, but with significant shortcomings. Achievement that fulfills the average standard despite
deficiencies
■ Grade E: Sufficient (Marks < 65% and >= 60%)
– Performance meets the minimum criteria. Achievement that fulfills the average standard despite
deficiencies
■ Grade F: Fail (Marks < 60%)
– In other cases.
Plagiarism
■ Unauthorized use or close imitation of the language and thoughts of
another author and the representation of them as one's own original work
is plagiarism.
– Plagiarism is automatically checked in Canvas
■ Any plagiarism will result in Failure (Grade F) and
would be reported to University for punitive action
Mobile Application
Lets start with a definition?
■ What is a mobile app?
– If you google it, the Wikipedia say:
A mobile application, also referred to as
a mobile app is a software
application designed to run on a mobile
device”

Wikipedia has a full section on mobile phone software!!


https://commons.wikimedia.org/wiki/Category:Mobile_phone_software
Mobile device
■ phone, tablet, or watch

Free Pictures:
https://unsplash.com/
Truly mobile!!

Ray-Ban
Stories
NIST’s definition!
■ Official definition of a mobile device, the American version!
– A portable computing device that: (i) has a small form factor such that it can easily be
carried by a single individual; (ii) is designed to operate without a physical connection (e.g.,
wirelessly transmit or receive information); (iii) possesses local, non-removable data storage;
and (iv) is powered-on for extended periods of time with a self-contained power source.

– Mobile devices may also include voice communication capabilities, on board sensors that
allow the device to capture (e.g., photograph, video, record, or determine location)
information, and/or built-in features for synchronizing local data with remote locations.

– Examples include smart phones, tablets, and E-readers.

Note: If the device only has storage capability and is not capable of processing or
transmitting/receiving information, then it is considered a portable storage device, not a mobile
device

Source: NIST SP 800-53 Rev. 4 National Institute of Standards and Technology USA Government
Mobile vs. Desktop: Key Differences
■ Smaller screens
– Compared to Laptops/desktops
– Limited Pixels
■ Slower processors
– Comparatively slower!! But slowly catching up.
– Many things differ (e.g. Heat/GPU)

– “Mobile processor”
■ Every mobile manufacturer
has their own chip
nowadays
■ Samsung’s Exynos 9
■ Apple A13
■ Qualcomm’s Snapdragon 888
https://www.youtube.com/watch
?v=2SdIMiEjKD4
■ Less bandwidth
– (again comparatively)
– https://www.speedtest.net/global-index
■ Touch input
– No hover events.
– Less Precision
– Gestures: One finger, two fingers,
– stylus etc.. Half screen is taken by keyboard

■ Tricky keyboards
– Lesser keys, error prone and
even considered intrusive

Visit this webpages to read more about touch gestures:


https://www.lifewire.com/android-gestures-phone-or-tablet-
1616916
■ No, or limited, multitasking
– Some mobiles can’t, some don’t.
– Two Apps Sharing screen
■ Now you understand why mobile devices are different?
– They have their own development challenges
– They have their own Operating System
■ Windows for mobile never worked J

development
– They have their own

platform, tools and


approaches
Mobile Apps: Types
■ We now have multiple types of mobile app:
– Native Mobile Apps
– Web Mobile Apps
– Hybrid Mobile Apps

– Low code Mobile Apps


Native vs. Web vs. Hybrid Mobile Apps
■ Native mobile apps are smartphone apps specifically designed for a
particular operating system — (iOS or Android).
– Swift or Objective-C for iOS or Java/Kotlin for Android
– Developed on operating system’s SDKs
– Access to device resources: camera, GPS, phone, device storage, etc.

■ Web mobile apps (aka Progressive Web App - PWA) are websites optimized
for mobile browsers or web content based mobile apps.
– JavaScript and HTML5
■ Hybrid mobile apps combine features of native and web apps.
– Website packaged in a native wrapper
– Use HTML5 and JavaScript
– Kenju UI, Ionic
Cross platform
■ Develop once and run on multiple platforms (iOS or Android)
– Flutter (Google’s)
– Kotlin Multiplatform Mobile (Jetbrain’s)
– Xamarin (Microsoft’s)
– Axway Appcelerator (owner’s)
– Svelte Native
Low code or No Code Mobile Apps
■ Low-code (where coding effort is less) mobile app development are a
variant of hybrid app with specific platform

■ No code are where app code is mostly auto generated


Low code’s pros and cons
■ Pros
– Quick time-to-market
– Lower dependence on skilled developers
– More time to focus on the high-priority aspects
– Ease of deployment

■ Cons
– Dependency on a cloud platform
– Limitations
– Do not support complex functionalities
So lets sum it up!
■ Mobiles are different beasts altogether
– It is not mobile phone only

■ Many options/types of apps are out there


■ Most apps prefer native development (but cross platform is reality too)
Acknowledgement
■ Slide material taken from
– https://www.paradoxlabs.com/blog/mobile-vs-desktop-10-key-differences/
– https://devathon.com/blog/low-code-vs-or-and-no-code-for-web-mobile-app-
development/
– https://www.smashingmagazine.com/2017/12/improving-mobile-app-
competitive-analysis/

You might also like