0% found this document useful (0 votes)
19 views13 pages

Mobile Application Development Overview

This document provides an introduction to mobile application development. It outlines the instructor and course objectives for a mobile app development course. The document discusses the characteristics of mobile devices and apps, development challenges, supported programming languages and frameworks, tooling and IDE support for both Android and iOS development.

Uploaded by

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

Mobile Application Development Overview

This document provides an introduction to mobile application development. It outlines the instructor and course objectives for a mobile app development course. The document discusses the characteristics of mobile devices and apps, development challenges, supported programming languages and frameworks, tooling and IDE support for both Android and iOS development.

Uploaded by

nit
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd

Introduction to Mobile Apps

CSE 5236: Mobile Application Development


Instructor: Adam C. Champion, Ph.D.
Course Coordinator: Dr. Rajiv Ramnath
Reading: Big Nerd Ranch Guide, Chapter 1

1
Info About Me
• Adam Champion
• Ph.D., OSU, 2017
• Research interests:
– Mobile systems, networks, security, analytics
– Computer networking, wireless communications
– Parallel and distributed systems
• More:
– [Link]

2
More about you?
• Which OS do you prefer: iOS or Android?
• What’s your favorite mobile app?
– What do you like most about it?
• What’s your least favorite mobile app?
– What do you dislike about it?
• How do mobile apps connect to Internet-based services
for end users? (Cost implications)
• How to capture data from on-device sensors (e.g., GPS,
accelerometer)?
3
Course Objectives
• Understand characteristics of mobile apps
• Understand frameworks for mobile app dev.
– Deep dive: Android framework
– Device programming: Java, Kotlin
– App components: design mobile UI, connect to
Internet services, use on-device sensors
• Understand design principles for mobile apps
– Design apps for ease of maintenance
– Make apps fast, responsive (60 frames/sec goal)

4
Essence of A Mobile Device
• (Potentially) available to serve everywhere, any time.
• Interwoven into daily life – live, work, play, study
• Represents and intimately “knows” the user
– Much more than just a small computer, it represents the user
• Brings in outside world: sensing, location, communication
• Now the dominant end-user device
– See:
[Link]
[Link]?ref=technology

– 81% of Americans own a smartphone (Feb. 2019):


[Link]
5
Varied Shapes, Sizes, Capabilities

Sources: Apple, Google, Nintendo, Amazon 6


Mobile App. Development Challenges

• Competitive, fluid vendor landscape (Apple, Android


consortium incl. Amazon, RIM, HP) means apps need to
be multi-platform for wide adoption
• No “standard” device (iOS, Windows Phone devices?)
• Low bandwidth input (in most cases; what about tablets?)
• Limited screen size (tablets?)
• Unreliability in connectivity and device (network access,
power, ambient light, noise, at least for now)
• Integration tradeoffs with cloud and enterprise services

7
Application Development Support

• Object-Oriented Languages
– iOS: Swift
– Android: Java/Kotlin
• Cross-platform frameworks:
– Flutter, Xamarin, Titanium, PhoneGap, …
– Scripting languages (JavaScript, Ruby)
• C and C++ (native code)
• Integrated into mobile app dev. frameworks
8
Android Framework Support

9
Framework Capabilities, Add-Ons
• Built-in Services:
– GUI
– OS services (file I/O, threads, device mgmt.)
– Graphics
– Device access (GPS, camera, media players, sensors)
– Networking
– Standard language libraries (Java, Kotlin)
• Add-ons:
– Google Play services (e.g. Google Maps, etc.)
– Database support (SQLite)
– Chromium WebView 10
Tooling Support
Tool Type Android Support iOS Support
Open-source Integrated Dev. Android Studio –
Environments (IDEs)
Proprietary IDEs IntelliJ IDEA Xcode
Testing tools JUnit, Espresso XCUnit
Profiling tools Android Profiler Xcode Instruments
Source code management Git, Subversion, CVS (for both Android, iOS)
Software emulators Android Emulator, iPhone Simulator
Intel HAXM,
Genymotion
Sensor injection tools Built into emulators (for both Android, iOS)

11
IDE Support
• Open IDEs –Android Studio (Android)
• Proprietary (Xcode for iOS)
• Testing tools (unit tests, UI tests, test harnesses)
• Performance profiling tools
• SCM integration (Git, SVN, CVS)
• Software emulators
• Sensor injection (GPS, accelerometer)
12
Thank You

Questions and comments?

13

You might also like