Mobile Application Development
Lecture - 1
Muhammad Adnan Aslam
MOBILE APPLICATION DEVELOPMENT
About Myself
Introduction of Participants
• Name
• Sem & expertise
• Courses studies in area of
Programming
• Expectations from this course
How to be successful in my class
1. Come to class
2. Strive to learn
3. Be on time for class
4. Pay attention in class. Ask questions.
5. If you don’t understand a topic and/or don’t understand why
it’s relevant, ASK.
6. Be prepared to answer questions in class (Revise Previous
lectures).
7. DO NOT use cell phone and walk out of class during a class
8. Don’t allow to bring eatable items in the class room even
Evaluation Criteria 5
Exam Type Percentage
Quizzes 10
Assignments 10
Mid Term 25
Final Term 45
Project 10
Total 100
Muhammad Adnan Aslam
Recommended Books 6
• Android Programming Unleashed
Author: BM Harwani
• HEAD FIRST ANDROID DEVELOPMENT
Author: Dawn Griffiths and David Griffiths
Concepts you should be good at for this
course 7
• Object Oriented Programming
• Polymorphism
• Abstraction
• Inheritance
• Encapsulation
• Advance Computer Programming
• Java
Todays Agenda 8
• Mobile Apps
• Native Apps
• Mobile Web Apps
• Hybrid Apps
• Cross Mobile Apps
• How android works
• Architecture
Native Apps 9
“Native mobile apps are exclusively built for a specific type of Operating
system. They are called native because they are native to a particular device
or platform”, e.g.
1. Whatsapp android app 2. Gmail android app 3. Google maps android
app
4. Apple maps IOS app 5.Safari browser IOS app 6. iCamera IOS app
The native apps are design and developed usually on dedicated platform, e.g.
• Xcode and Objective C for IOS
• Eclipse/Android studio and Java for Android
• C# for Windows
Native apps can be accessed via respective app stores, i.e., Android apps on
Native Apps 10
• Advantages of native apps:
• Natives are very fast.
• Easily distributed in google apple app stores.
• Easily interact with any feature of the phone.
• Disadvantages of native apps:
• Built for a single platform
• Languages like swift and java used to build these types of apps are hard to
learn.
• Hard to maintain.
Mobile Web Apps 11
• These are the web applications to deliver web pages on web
browsers running on mobile devices.
• These are web-based mobile apps that do not get installed on
your handheld mobile device and are run on web-hosted servers.
• Mobile web apps typically use HTML, CSS, Javascript, JQuery web
technologies.
• They cannot access all features of native device
functionality(camera, calendar, geolocation, etc.)
• Example:
• Facebook web-app
• Instagram web-app
Mobile Web Apps 12
• Advantages of web apps:
• Reduced business cost.
• No installation needed.
• Better reach as it can be accessed from anywhere.
• Always up-to-date.
• Disadvantages of web apps:
• Dependent on internet speed.
• Interface not that sophisticated.
Hybrid Apps 13
• A (hybrid app) is a software application that combines elements of
both native apps and web applications.
• Hybrid apps are essentially web apps that have been put in a native
app shell.
• Once they are downloaded from an app store and installed locally, the
shell is able to connect to whatever capabilities the mobile platform
provides through a browser that's embedded in the app.
• The browser and its plug-ins run on the back end and are invisible to the
end user.
• Examples:
• Facebook Android App
Hybrid Apps 14
• Advantages of hybrid apps:
• Easy to build
• No browser needed
• Can usually access device utilities using an API
• Disadvantages of Hybrid apps:
• Slower than native apps
• More expensive than web apps
• Less interactive than native apps
Cross Mobile App 15
• Cross-platform mobile apps are developed using an intermediate
language, such as JavaScript, that is not native to the device’s
operating system.
• This means that some, or all, of this code can be shared across target
platforms, for instance, across both iOS and Android.
• Cross-platform apps are different to HTML5 hybrid apps as hybrid apps
usually incorporate a mix of native app and mobile app concepts.
• Cross-platform apps are developed with Xamarin, Appcelerator, React
Cross Mobile App 16
• Advantages
• Code can be shared between different versions of the apps across devices
(possibly up to 80%)
• The User Interface is rendered using ‘native’ controls, so UI performance
can be as fast as native.
• Disadvantages
• Not all code can be shared, so some native code may need to be written
• Access to the device, operating system features and interface
customization rely on the framework or plugin support
Android Architecture 17
• Android uses Linux for its device
drivers, memory management,
process management, and
networking.
• However you will never be
programming to this layer
directly.
• The next level up contains the
Android native libraries.
• They are all written in C/C++
internally, but you'll be calling
them through Java interfaces.
Android Architecture 18
• Next is the Android runtime, including the Dalvik Virtual Machine.
• Dalvik runs dex files, which are converted at compile time from
standard class and jar files.
• The next level up is the Application Framework layer.
• Parts of this toolkit are provided by Google, and the other parts
are extensions or services that you write.
• The most important component of the framework is the Activity
Manager, which manages the life cycle of applications and a
common "back-stack" for user navigation.
• Finally, the top layer is the Applications layer.
• Most of your application will live here, along side built-in
applications such as the Phone and Web Browser.
Challenges 19
• Limited resources
• RAM
• Memory
• Battery
• Limited screen space
• Small screen
• Variation in screens
• Webpages design
• Hard to select small objects
• Different usage pattern
Why Android Platform? 20
• Fastest growing smartphone platform
• Google Android and
Apple iOS have 98% of
the global market
share for operating
systems.
• Android’s market
share will reach 87% in
2022, forecasts suggest.
Android Development Tools 21
To set up the development environment, we need:
1. Java Development Kit (JDK 1.5+, 1.6 is preferable)
2. Eclipse IDE
3. Android Studio
To run android App
4. Android Emulator
5. Android Device