SlideShare ist ein Scribd-Unternehmen logo
1 von 55
Downloaden Sie, um offline zu lesen
HIT3328 / HIT8328 Software Development for Mobile
Devices
Dr. Rajesh Vasa, 2012
1
Lecture 01
Platforms and
Devices
Image Source: Google
R. Vasa, 20122
Lecture Overview
•Eco Systems and Development Journey
•Smartphone - Hardware Overview
•Hardware Constraints (Dev. perspective)
•Mobile Operating Systems
•Convention Over Configuration
R. Vasa, 20123
Mobile Ecosystem
Ad
Networks
Platform
Content Providers
(Music/Video/Books)
Handset
OEMs
Telephone
Networks
App.
Distribution
Cloud
Infrastructu
re
Billing
R. Vasa, 20124
Mobile Ecosystem - Android
**Google, Double Click
Google, Amazon
Samsung, HTC, Motorola, Sony ...
Platform
Cloud
Infrastructure
Ad
Networks
Content Providers
(Music/Video/Books)
Handset
(OEMs)
Telephone
Networks
App.
Distribution
Billing
Google Checkout
Android
Google, Amazon
R. Vasa, 20125
Mobile Ecosystem - Apple
iTunes
iAd
Ad
Networks
Platform
Content Providers
(Music/Video/Books)
iPhone/iPa
d/iPod
Telephone
Networks
App.
Distribution
Cloud
Infrastructure
Billing
App Store
iTunes + App. Store
Dropbox, Google
iOS
R. Vasa, 20126
Lecture Overview - Where are we?
•Eco Systems and Development Journey
•Smartphone - Hardware Overview
•Hardware Constraints (Dev. perspective)
•Mobile Operating Systems
•Convention Over Configuration
R. Vasa, 20127
App. Development Journey
•Application Planning
•Platform / Library Selection
•Develop and Test
•Prepare for Market and Deploy
•Monetization
•Analytics, Support and Update
Management
Planning Platform Prep Develop & Test Deploy Monetize Support> > > > >
R. Vasa, 20128
App. Development Journey
•Planning
•User identification
•Concept / Prototype design
•Market research (focus groups)
•Requirements documentation
•[Business case / Budget]
Planning Platform Prep Develop & Test Deploy Monetize Support> > > > >
R. Vasa, 20129
App. Development Journey
•Platform Preparation
•Identifying appropriate platform
•Selection of libraries and tools (increase
productivity)
•Development methodology
•Gap identification and learning plan
•Working with development community
Planning Platform Prep Develop & Test Deploy Monetize Support> > > > >
R. Vasa, 201210
App. Development Journey
•Develop and Test
•IDE, SDK, Source code control tools
•UI construction / automation tools
•Emulators, Simulators, Debuggers
•Profiling and Testing tools
•Porting, internationalization
•Cloud infrastructure and services
Planning Platform Prep Develop & Test Deploy Monetize Support> > > > >
R. Vasa, 201211
App. Development Journey
•Deployment
•Packaging and Signing
•Certification and Approval process
•Beta testing (Sandbox-ed networks)
•Localization
•Packaging and Managing versions
•Technical support frameworks
Planning Platform Prep Develop & Test Deploy Monetize Support> > > > >
R. Vasa, 201212
App. Development Journey
•Monetization
•Distribution methods and channels
•Tools to aid promotion
•Ad. networks
•Billing and Settlement (in-app selling)
•Application usage profiling
Planning Platform Prep Develop & Test Deploy Monetize Support> > > > >
R. Vasa, 201213
App. Development Journey
•Support and Tracking
•Analytics (tracking usage)
•User ratings, support
•Managing application upgrades /
updates
•Privacy management
Planning Platform Prep Develop & Test Deploy Monetize Support> > > > >
R. Vasa, 201214
Lecture Overview - Where are we?
•Eco Systems and Development Journey
•Smartphone - Hardware Overview
•Hardware Constraints (Dev. perspective)
•Mobile Operating Systems
•Convention Over Configuration
R. Vasa, 201215
Typical Hardware Capabilities
•Mobile telephony
•Sensors & Actuators
•Location detector
•CPU / GPU (optimised to run on battery)
•Touch screen (&& || small keyboards)
•Networking (WiFi, Bluetooth, 3G, 4G...)
•High resolution battery efficient display
•Memory (onboard + SD Card)
R. Vasa, 201216
Sensors and Actuators
•Magnetometer
•Accelerometer/Gyro
•Temperature (and humidity) sensors
•Proximity / Light sensors
•Vibrator and Haptic feedback
•Camera (Front and Back) + Flash
•Vibrate motor
R. Vasa, 201217
Location Detection
•Location detection is possible at fine or coarse
level using:
•GPS (fine -- to few meters)
•Cell grid triangulation (to 100 meters)
•IP network location (Suburb / City)
R. Vasa, 201218
Touch Screen
•Resistive (cheaper) touch screen
•Detects a change in current when touched --
any object can touch it
•Need some pressure applied
•Capacitive (expensive) touch screen
•Respond to conductive surface (like a human
finger) -- capacitance change
•Ideal for gesture / multi-touch UI
R. Vasa, 201219
CPU / GPU
•Current generation in wide use
•CPU + GPU on single die
•~ 50% of the graphics power of a PS3
•Next generation (Tegra series chips)
•Dual/Quad core CPUs
•GPU (8-core or 16-core)
•Entire phone feature set on single chip
•Dual/Quad core are more power efficient
R. Vasa, 201220
Networking
•Full TCP/IP support
•WiFi (theory~54Mbps, practice~30Mbps)
•GPRS (48 Kbps) a.k.a. 2.5G
•3G (HSDPA ~ 7Mbps, HSUPA ~ 5Mbps)
•Bluetooth (~3Mbps, Next-Gen ~ 24Mbps)
•Note: If network is operating at 1Mbps, then
you can download a 1 Mega Byte file in 10
seconds. (Mbps is megabit per sec)
R. Vasa, 201221
Battery Technology
•Popular technology - Lithium-Ion
•Generally around 1500 mAh battery pack
•Current generation batteries will power,
•light use (typical): ~ 2 days
•heavy use (esp. internet): 6 to 10 hours
•game play/video: 2 to 3 hours
•Battery drain depends on sensor use (but
display is the largest consumer of power)
R. Vasa, 201222
Where does battery go?
•How is battery used (without GPS)?
•Display (50%)
•Cell grid usage including stand by (25%)
•WiFi (20%)
•Phone Idle (5%)
•If GPS is enabled -- it will use about 20-25% of
the battery power.
•Note: The above is based on an average user
R. Vasa, 201223
Memory
•Persistent Solid State Storage
•Flash memory (8/16/32Gb, @ ~10MB/sec )
•SD Card (@ ~ 4 - 6 MB/sec)
•2 Gb special memory for (O/S + drivers)
•Volatile
•RAM (256 Mb - 512 Mb)
•GPU shares RAM
•Memory read/write speed is a constraint
R. Vasa, 201224
Display Technology
•Bright / full colour - AMOLED, OLED, LCD
•Different resolutions are used
•eXtra High density (640 x 960 @ 320 dpi)
•High density (480 x 800 @ 240 dpi)
•Medium density (320 x 480 @ 160 dpi)
•Low density (240 x 400 @ 120 dpi)
•Physical width often ~ 2 inches (goldilocks
width for human hands)
•Height often between 2 - 4.5 inches
R. Vasa, 201225
Lecture Overview - Where are we?
•Eco Systems and Development Journey
•Smartphone - Hardware Overview
•Hardware Constraints (Dev. perspective)
•Mobile Operating Systems
•Convention Over Configuration
R. Vasa, 201226
Next Generation Displays
•Most widely used are medium density and
high-density (320x480 @ 160 dpi and 480 x
800 @ 240 dpi )
•iPhone4 is ~ 320 dpi (more pixels per inch)
Image Source: Gizmodo
R. Vasa, 201227
What are the constraints?
•As a developer you need to,
•Know typical usage (minutes or hours)
•Understand sensors (efficiency / accuracy /
reliability / batt. drain)
•Know network is unreliable and offers erratic
speeds
•Be aware that the phone may/will/can ring
•Display size, DPI & processor speed are
variable
R. Vasa, 201228
More constraints....
•You must develop apps that,
•Use only a few MB of memory
•Are a couple of MB in size
•Store data as efficiently as possible
•Can work with sensors where precision is not
identical across devices (even iPhone has 3
generations in wide-spread use)
•Can work with a range of memory, cpu, and
GPU capabilities
R. Vasa, 201229
Biggest Constraint of ALL
•The Phone can (will) RING
•When the phone rings,
•Your app. is put in the background by O/S
•If you want to save state -- you have to manage
this
•When the phone call ends,
•The O/S will try to bring your app. back into
the foreground (but not guaranteed)
R. Vasa, 201230
Time for distraction...
• Guess how much effort went into the design and
construction of the core font (Droid Font) for the
Android platform?
• This was followed by even more work on the new
Roboto Font.
R. Vasa, 201231
Short Problem 1
•Scenario:
•You are developing a “Stopwatch + Count Down
timer” App.
•Use case: The user has set the count down
timer for 2 minutes -- pressed “start”. After 45
seconds, phone rings
•What is the behaviour of your app. when the
phone rings?
R. Vasa, 201232
Short Problem 2
•Scenario: You developed an app that “needs”
to download ~ 30MB of data daily (Common
for newspaper apps)
•How long will it take on,
•Home broadband/WiFi (3 Mbps), 3G (1.5
Mbps), GPRS (48 Kbps)
•Design choices will you make in terms of,
•How data is downloaded? Protocols supported?
Dealing with dropped connections?
R. Vasa, 201233
Short Problem 3
•Scenario: You are planning to develop an app.
that will show the weather forecast for a
particular location. You want to use the GPS to
obtain the location.
•However, obtaining an initial GPS lock takes
time (30 seconds -- 2 minutes)
•Do you think it is reasonable to ask the user
to wait a couple of minutes to get the location?
If not, what will you do different?
R. Vasa, 201234
Short Problem 4
•Scenario: Weather App.
•Phone (at home) has not been used for around
30 minutes.
•User wants to check the weather.
•The app. opens a network connection --
downloads the weather information.
•The app takes about 60 - 90 seconds to
download weather data. Why is it taking so
long? Is this a reasonable delay?
R. Vasa, 201235
Lecture Overview - Where are we?
•Eco Systems and Development Journey
•Smartphone - Hardware Overview
•Hardware Constraints (Dev. perspective)
•Mobile Operating Systems
•Convention Over Configuration
R. Vasa, 201236
Mobile Operating System
•Operating System == Resource Manager
•Tight resource constraints on mobile
•Low powered (Batt. 1200 - 1500 mAh)
•Limited RAM (256 - 512 MB)
•Relatively small disk (8GB - 16GB)
•Small (yet power draining) display
•Network access - expensive yet needed!
•If phone rings -- call gets highest priority
R. Vasa, 201237
Mobile Operating Systems
•Very different to how PC operating systems
are designed
•The life cycle of an application is very tightly
controlled by O/S
•If an app. is a resource hog -- it will get killed
(or suspended) by the O/S
•O/S trickle allocates memory to apps, but
aggressively de-allocates it
•If a view/image is not in the
foreground/running -- then it will be destroyed
R. Vasa, 201238
Mobile Op. Systems are e-VIL?
•If you request a network connection -- but
have not used it for a while,
•O/S will power down network hardware
•O/S may close the connection / port
•If the devices goes to sleep (default is few
min.) then the memory allocated to app. is de-
allocated.
•O/S (thankfully) provide a short warning and
you have options to save data.
R. Vasa, 201239
Android App Life Cycle
Key feature of
a Mobile O/S
Remember: ~ 256MB only
available in RAM
Image Source:
http://developer.android.co
m
39
R. Vasa, 201240
iOS Application Life Cycle (is similar)
•Memory management is different in iOS
compared to Android
•iOS will still,
•Terminate apps. if memory needed (test for
yourself -- load few large games on an iPhone)
•Send an app. into background if Phone rings
•Flush caches (used by images mainly) at
regular intervals to free resources
R. Vasa, 201241
States of an App.
•An app. can be in one of the following states:
•Not Running (not launched)
•Running (foreground or background)
•Active
•In-Active (waiting for I/O)
•Suspended (background)
•Process state information is saved, but RAM
used is generally purged
R. Vasa, 201242
Short Problem 5
•Consider this hypothetical situation,
•Each time you minimise the IDE on your laptop
computer, the O/S will suspend the application
for 15 minutes -- then terminates the
application.
•If you were developing the IDE -- and want to
offer a reasonable user experience on this OS -
- what can you do?
R. Vasa, 201243
Mobile File Systems
•Designed to work with Flash memory
•Flash memory is designed for max. 10k writes
•File system is optimised to ensure that the
same block does not receive too many writes
(known as wear levelling)
•Write operation -> (erase first), then write data
•Read operations are faster than write
•Read speed ~ 6 MB/sec, Write ~ 3 MB/sec
•I/O speed optimisation critical in games
R. Vasa, 201244
Short Problem 6
•You have created a new “app” for the Android
platform --
•App Size is 25MB (20M is media)
•What is the minimum load time for this app?
•Do you think this is a reasonable size for a
weather app.?
R. Vasa, 201245
When building mobile apps...
•Assume phone will ring
•Save state regularly (in fact, be paranoid)
•Assume resources are allocated reluctantly
•Assume erratic network connectivity
•Assume slow read/write speed to Flash card
•Use RAM carefully, minimise sensor use
•Inform user if any operation takes over 3 sec.
•Keep core use case as short as possible
R. Vasa, 201246
Lecture Overview - Where are we?
•Eco Systems and Development Journey
•Smartphone - Hardware Overview
•Hardware Constraints (Dev. perspective)
•Mobile Operating Systems
•Convention Over Configuration
R. Vasa, 201247
Convention Over Configuration
•Software design paradigm
•Aims to reduce decisions developers make
•Why is this needed?
•When we build software, there is a lot of
routine and repetitive decision making
•By following a certain development style, we
reduce the decisions we need to make
•What do we lose? -- Some flexibility, and
developers have to accept the convention
R. Vasa, 201248
Example ....
•Software systems often make use of a large
number of images (icons, background etc.)
•Developers now have to make a decision:
1. Store the images in a central directory?
2. Distribute them into different directories (closer to
modules?)
3. Store them in a database system?
4. Naming of images, meta-data?
•What is the best option? Will it work? Risk?
R. Vasa, 201249
Decision making process..
•In order to make a decision,
•Options must be identified (takes effort)
•Options must be ranked (opinions and ideas of
different developers will come into play)
•An option must be selected
•Team must accept the selected option
•May results in ... “decision paralysis”
•Worse, sub-optimal decision making +
increase in stress
R. Vasa, 201250
Coding by configuration...
•Consider the “image storage example”
•Assume developers have made a choice
•Developers have to explicitly write code to,
•Load these image resources
•Manage the location that they are stored in
•Find a consistent way to refer to these images
•Agree on a naming style etc...
•Work is done -- but has minimal value add
R. Vasa, 201251
Coding by convention..
•All images are stored in the “images” directory
•Framework will automatically,
•Generate references to these images
•Provide code to load these images
•Enforce naming rules to identify different types
of images
•e.g. Icons will be named with ic_ prefix.
•We improve productivity -- in terms of reduced
decision making
R. Vasa, 201252
Why does this matter?
•Android prefers and dictates “convention”
•However,
•You can ignore the convention and fallback to
configuration
•Benefits of convention,
•Productivity improvement
•Improve team coordination
•Reduces unnecessary stress
•iOS development has its own conventions!
R. Vasa, 201253
Android Project Structure
(convention)
•Source code (src)
•Generated code (gen)
•Resources (res)
•Images (drawable)
•Layout of app (layout)
•Constants/Strings (values)
R. Vasa, 201254
Demo -- Hello World
•Create a ‘Hello World’ app.
•Quick overview of the IDE & Emulator
•Create + Run app. (in emulator)
•Change the font size (run again)
•Display “Hello, HIT3328 / HIT8328”
•Why do we have generated code?
R. Vasa, 201255
Lecture Review - Key points
•Understand the hardware and sensors
•Constraints are real -- must work within them
•Mobile Operating Systems
•Be paranoid about storing state
•Convention Over Configuration
•Follow the pattern -- increase productivity

Weitere ähnliche Inhalte

Andere mochten auch (8)

Ambiente manuale orto_sinergico_rilegato
Ambiente manuale orto_sinergico_rilegatoAmbiente manuale orto_sinergico_rilegato
Ambiente manuale orto_sinergico_rilegato
 
Momentum
MomentumMomentum
Momentum
 
HIT3328 - Chapter03 - Simple Interactive Apps
HIT3328 - Chapter03 - Simple Interactive AppsHIT3328 - Chapter03 - Simple Interactive Apps
HIT3328 - Chapter03 - Simple Interactive Apps
 
Per unmondonuovo
Per unmondonuovoPer unmondonuovo
Per unmondonuovo
 
Manifesto ecovillaggiosubbiano
Manifesto ecovillaggiosubbianoManifesto ecovillaggiosubbiano
Manifesto ecovillaggiosubbiano
 
EduBrand Alumni Loyalty Program
EduBrand Alumni Loyalty ProgramEduBrand Alumni Loyalty Program
EduBrand Alumni Loyalty Program
 
Postmodernizm prezentacja
Postmodernizm prezentacjaPostmodernizm prezentacja
Postmodernizm prezentacja
 
江南風雲錄與二泉映月
江南風雲錄與二泉映月江南風雲錄與二泉映月
江南風雲錄與二泉映月
 

Ähnlich wie HIT3328 - Chapter01 - Platforms and Devices

A SOFTWARE DEFINED RADIO BASED
A SOFTWARE DEFINED RADIO BASEDA SOFTWARE DEFINED RADIO BASED
A SOFTWARE DEFINED RADIO BASED
ANGELIN JOHN
 
Electroniquev2
Electroniquev2Electroniquev2
Electroniquev2
Mehdi zizi
 

Ähnlich wie HIT3328 - Chapter01 - Platforms and Devices (20)

Augview presentation GE user conference bali 2014 - MIke Bundock
Augview presentation GE user conference bali 2014 - MIke BundockAugview presentation GE user conference bali 2014 - MIke Bundock
Augview presentation GE user conference bali 2014 - MIke Bundock
 
PIMRC-2012, Sydney, Australia, 28 July, 2012
PIMRC-2012, Sydney, Australia, 28 July, 2012PIMRC-2012, Sydney, Australia, 28 July, 2012
PIMRC-2012, Sydney, Australia, 28 July, 2012
 
Doug Sillars on App Optimization
Doug Sillars on App OptimizationDoug Sillars on App Optimization
Doug Sillars on App Optimization
 
HH QUALCOMM how to minimize the power consumption of your app
HH QUALCOMM how to minimize the power consumption of your appHH QUALCOMM how to minimize the power consumption of your app
HH QUALCOMM how to minimize the power consumption of your app
 
How to Minimize Your App’s Power Consumption
How to Minimize Your App’s Power Consumption How to Minimize Your App’s Power Consumption
How to Minimize Your App’s Power Consumption
 
Machine Learning on mobile devices
Machine Learning on mobile devicesMachine Learning on mobile devices
Machine Learning on mobile devices
 
A SOFTWARE DEFINED RADIO BASED
A SOFTWARE DEFINED RADIO BASEDA SOFTWARE DEFINED RADIO BASED
A SOFTWARE DEFINED RADIO BASED
 
Survey, comparison & evaluation of cross platform mobile application developm...
Survey, comparison & evaluation of cross platform mobile application developm...Survey, comparison & evaluation of cross platform mobile application developm...
Survey, comparison & evaluation of cross platform mobile application developm...
 
Real-time, Sensor-based Monitoring of Shipping Containers
Real-time, Sensor-based Monitoring of Shipping ContainersReal-time, Sensor-based Monitoring of Shipping Containers
Real-time, Sensor-based Monitoring of Shipping Containers
 
Image Security Case Study
Image Security Case StudyImage Security Case Study
Image Security Case Study
 
Performance Testing in a Mobile World
Performance Testing in a Mobile WorldPerformance Testing in a Mobile World
Performance Testing in a Mobile World
 
Smarter Apps for Smarter phones - see me at bit.ly/1ezHj0c
Smarter Apps for Smarter phones - see me at bit.ly/1ezHj0cSmarter Apps for Smarter phones - see me at bit.ly/1ezHj0c
Smarter Apps for Smarter phones - see me at bit.ly/1ezHj0c
 
wireless notice board
 wireless notice board wireless notice board
wireless notice board
 
Electroniquev2
Electroniquev2Electroniquev2
Electroniquev2
 
Computer Fundamentals and Basics of Computer
Computer Fundamentals and Basics of ComputerComputer Fundamentals and Basics of Computer
Computer Fundamentals and Basics of Computer
 
Samsung presentation- Powering Next Gen Mobility - uplinq 2013
Samsung presentation- Powering Next Gen Mobility - uplinq 2013 Samsung presentation- Powering Next Gen Mobility - uplinq 2013
Samsung presentation- Powering Next Gen Mobility - uplinq 2013
 
台科大機械系 c 程式語言第二次演講
台科大機械系 c 程式語言第二次演講台科大機械系 c 程式語言第二次演講
台科大機械系 c 程式語言第二次演講
 
Secure you
Secure you Secure you
Secure you
 
Tech 2 tech low latency networking on Janet presentation
Tech 2 tech low latency networking on Janet presentationTech 2 tech low latency networking on Janet presentation
Tech 2 tech low latency networking on Janet presentation
 
Mobile testing day_2_3_ppt
Mobile testing day_2_3_pptMobile testing day_2_3_ppt
Mobile testing day_2_3_ppt
 

Mehr von Yhal Htet Aung

HIT3328 - Chapter0701 - Dialogs, Tabs and Lists
HIT3328 - Chapter0701 - Dialogs, Tabs and ListsHIT3328 - Chapter0701 - Dialogs, Tabs and Lists
HIT3328 - Chapter0701 - Dialogs, Tabs and Lists
Yhal Htet Aung
 
HIT3328 - Chapter0602 - Sketching Apps
HIT3328 - Chapter0602 - Sketching AppsHIT3328 - Chapter0602 - Sketching Apps
HIT3328 - Chapter0602 - Sketching Apps
Yhal Htet Aung
 
HIT3328 - Chapter0601 - Menus and Lists
HIT3328 - Chapter0601 - Menus and ListsHIT3328 - Chapter0601 - Menus and Lists
HIT3328 - Chapter0601 - Menus and Lists
Yhal Htet Aung
 
HIT3328 - Chapter0702 - Navigation Flow and Design Approach
HIT3328 - Chapter0702 - Navigation Flow and Design ApproachHIT3328 - Chapter0702 - Navigation Flow and Design Approach
HIT3328 - Chapter0702 - Navigation Flow and Design Approach
Yhal Htet Aung
 
HIT3328 - Chapter05 - Working with Forms
HIT3328 - Chapter05 - Working with FormsHIT3328 - Chapter05 - Working with Forms
HIT3328 - Chapter05 - Working with Forms
Yhal Htet Aung
 
HIT3328 - Chapter02 - Foundation and Tools
HIT3328 - Chapter02 - Foundation and ToolsHIT3328 - Chapter02 - Foundation and Tools
HIT3328 - Chapter02 - Foundation and Tools
Yhal Htet Aung
 

Mehr von Yhal Htet Aung (18)

HIT3328 - Chapter0701 - Dialogs, Tabs and Lists
HIT3328 - Chapter0701 - Dialogs, Tabs and ListsHIT3328 - Chapter0701 - Dialogs, Tabs and Lists
HIT3328 - Chapter0701 - Dialogs, Tabs and Lists
 
HIT3328 - Chapter0602 - Sketching Apps
HIT3328 - Chapter0602 - Sketching AppsHIT3328 - Chapter0602 - Sketching Apps
HIT3328 - Chapter0602 - Sketching Apps
 
HIT3328 - Chapter0601 - Menus and Lists
HIT3328 - Chapter0601 - Menus and ListsHIT3328 - Chapter0601 - Menus and Lists
HIT3328 - Chapter0601 - Menus and Lists
 
HIT3328 - Chapter0702 - Navigation Flow and Design Approach
HIT3328 - Chapter0702 - Navigation Flow and Design ApproachHIT3328 - Chapter0702 - Navigation Flow and Design Approach
HIT3328 - Chapter0702 - Navigation Flow and Design Approach
 
HIT3328 - Chapter05 - Working with Forms
HIT3328 - Chapter05 - Working with FormsHIT3328 - Chapter05 - Working with Forms
HIT3328 - Chapter05 - Working with Forms
 
HIT3328 - Chapter02 - Foundation and Tools
HIT3328 - Chapter02 - Foundation and ToolsHIT3328 - Chapter02 - Foundation and Tools
HIT3328 - Chapter02 - Foundation and Tools
 
CSC1100 - Chapter11 - Programming Languages and Program Development
CSC1100 - Chapter11 - Programming Languages and Program DevelopmentCSC1100 - Chapter11 - Programming Languages and Program Development
CSC1100 - Chapter11 - Programming Languages and Program Development
 
CSC1100 - Chapter10 - Information System
CSC1100 - Chapter10 - Information SystemCSC1100 - Chapter10 - Information System
CSC1100 - Chapter10 - Information System
 
CSC1100 - Chapter09 - Computer Security, Ethics and Privacy
CSC1100 - Chapter09 - Computer Security, Ethics and PrivacyCSC1100 - Chapter09 - Computer Security, Ethics and Privacy
CSC1100 - Chapter09 - Computer Security, Ethics and Privacy
 
CSC1100 - Chapter08 - Database Management
CSC1100 - Chapter08 - Database ManagementCSC1100 - Chapter08 - Database Management
CSC1100 - Chapter08 - Database Management
 
CSC1100 - Chapter07 - Communications & Networks
CSC1100 - Chapter07 - Communications & NetworksCSC1100 - Chapter07 - Communications & Networks
CSC1100 - Chapter07 - Communications & Networks
 
CSC1100 - Chapter06 - Operating System & Utility Programs
CSC1100 - Chapter06 - Operating System & Utility ProgramsCSC1100 - Chapter06 - Operating System & Utility Programs
CSC1100 - Chapter06 - Operating System & Utility Programs
 
CSC1100 - Chapter05 - Storage
CSC1100 - Chapter05 - StorageCSC1100 - Chapter05 - Storage
CSC1100 - Chapter05 - Storage
 
CSC1100 - Chapter04 - Output
CSC1100 - Chapter04 - OutputCSC1100 - Chapter04 - Output
CSC1100 - Chapter04 - Output
 
CSC1100 - Chapter03 - Input
CSC1100 - Chapter03 - InputCSC1100 - Chapter03 - Input
CSC1100 - Chapter03 - Input
 
CSC1100 - Chapter02 - Components of the System Unit
CSC1100 - Chapter02 - Components of the System UnitCSC1100 - Chapter02 - Components of the System Unit
CSC1100 - Chapter02 - Components of the System Unit
 
CSC1100 - Chapter01 - Overview of Using Computers
CSC1100 - Chapter01 - Overview of Using ComputersCSC1100 - Chapter01 - Overview of Using Computers
CSC1100 - Chapter01 - Overview of Using Computers
 
CSC1100 - Chapter12 - Flow Charts
CSC1100 - Chapter12 - Flow ChartsCSC1100 - Chapter12 - Flow Charts
CSC1100 - Chapter12 - Flow Charts
 

KĂźrzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

KĂźrzlich hochgeladen (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

HIT3328 - Chapter01 - Platforms and Devices

  • 1. HIT3328 / HIT8328 Software Development for Mobile Devices Dr. Rajesh Vasa, 2012 1 Lecture 01 Platforms and Devices Image Source: Google
  • 2. R. Vasa, 20122 Lecture Overview •Eco Systems and Development Journey •Smartphone - Hardware Overview •Hardware Constraints (Dev. perspective) •Mobile Operating Systems •Convention Over Configuration
  • 3. R. Vasa, 20123 Mobile Ecosystem Ad Networks Platform Content Providers (Music/Video/Books) Handset OEMs Telephone Networks App. Distribution Cloud Infrastructu re Billing
  • 4. R. Vasa, 20124 Mobile Ecosystem - Android **Google, Double Click Google, Amazon Samsung, HTC, Motorola, Sony ... Platform Cloud Infrastructure Ad Networks Content Providers (Music/Video/Books) Handset (OEMs) Telephone Networks App. Distribution Billing Google Checkout Android Google, Amazon
  • 5. R. Vasa, 20125 Mobile Ecosystem - Apple iTunes iAd Ad Networks Platform Content Providers (Music/Video/Books) iPhone/iPa d/iPod Telephone Networks App. Distribution Cloud Infrastructure Billing App Store iTunes + App. Store Dropbox, Google iOS
  • 6. R. Vasa, 20126 Lecture Overview - Where are we? •Eco Systems and Development Journey •Smartphone - Hardware Overview •Hardware Constraints (Dev. perspective) •Mobile Operating Systems •Convention Over Configuration
  • 7. R. Vasa, 20127 App. Development Journey •Application Planning •Platform / Library Selection •Develop and Test •Prepare for Market and Deploy •Monetization •Analytics, Support and Update Management Planning Platform Prep Develop & Test Deploy Monetize Support> > > > >
  • 8. R. Vasa, 20128 App. Development Journey •Planning •User identification •Concept / Prototype design •Market research (focus groups) •Requirements documentation •[Business case / Budget] Planning Platform Prep Develop & Test Deploy Monetize Support> > > > >
  • 9. R. Vasa, 20129 App. Development Journey •Platform Preparation •Identifying appropriate platform •Selection of libraries and tools (increase productivity) •Development methodology •Gap identification and learning plan •Working with development community Planning Platform Prep Develop & Test Deploy Monetize Support> > > > >
  • 10. R. Vasa, 201210 App. Development Journey •Develop and Test •IDE, SDK, Source code control tools •UI construction / automation tools •Emulators, Simulators, Debuggers •Profiling and Testing tools •Porting, internationalization •Cloud infrastructure and services Planning Platform Prep Develop & Test Deploy Monetize Support> > > > >
  • 11. R. Vasa, 201211 App. Development Journey •Deployment •Packaging and Signing •Certification and Approval process •Beta testing (Sandbox-ed networks) •Localization •Packaging and Managing versions •Technical support frameworks Planning Platform Prep Develop & Test Deploy Monetize Support> > > > >
  • 12. R. Vasa, 201212 App. Development Journey •Monetization •Distribution methods and channels •Tools to aid promotion •Ad. networks •Billing and Settlement (in-app selling) •Application usage profiling Planning Platform Prep Develop & Test Deploy Monetize Support> > > > >
  • 13. R. Vasa, 201213 App. Development Journey •Support and Tracking •Analytics (tracking usage) •User ratings, support •Managing application upgrades / updates •Privacy management Planning Platform Prep Develop & Test Deploy Monetize Support> > > > >
  • 14. R. Vasa, 201214 Lecture Overview - Where are we? •Eco Systems and Development Journey •Smartphone - Hardware Overview •Hardware Constraints (Dev. perspective) •Mobile Operating Systems •Convention Over Configuration
  • 15. R. Vasa, 201215 Typical Hardware Capabilities •Mobile telephony •Sensors & Actuators •Location detector •CPU / GPU (optimised to run on battery) •Touch screen (&& || small keyboards) •Networking (WiFi, Bluetooth, 3G, 4G...) •High resolution battery efficient display •Memory (onboard + SD Card)
  • 16. R. Vasa, 201216 Sensors and Actuators •Magnetometer •Accelerometer/Gyro •Temperature (and humidity) sensors •Proximity / Light sensors •Vibrator and Haptic feedback •Camera (Front and Back) + Flash •Vibrate motor
  • 17. R. Vasa, 201217 Location Detection •Location detection is possible at fine or coarse level using: •GPS (fine -- to few meters) •Cell grid triangulation (to 100 meters) •IP network location (Suburb / City)
  • 18. R. Vasa, 201218 Touch Screen •Resistive (cheaper) touch screen •Detects a change in current when touched -- any object can touch it •Need some pressure applied •Capacitive (expensive) touch screen •Respond to conductive surface (like a human finger) -- capacitance change •Ideal for gesture / multi-touch UI
  • 19. R. Vasa, 201219 CPU / GPU •Current generation in wide use •CPU + GPU on single die •~ 50% of the graphics power of a PS3 •Next generation (Tegra series chips) •Dual/Quad core CPUs •GPU (8-core or 16-core) •Entire phone feature set on single chip •Dual/Quad core are more power efficient
  • 20. R. Vasa, 201220 Networking •Full TCP/IP support •WiFi (theory~54Mbps, practice~30Mbps) •GPRS (48 Kbps) a.k.a. 2.5G •3G (HSDPA ~ 7Mbps, HSUPA ~ 5Mbps) •Bluetooth (~3Mbps, Next-Gen ~ 24Mbps) •Note: If network is operating at 1Mbps, then you can download a 1 Mega Byte file in 10 seconds. (Mbps is megabit per sec)
  • 21. R. Vasa, 201221 Battery Technology •Popular technology - Lithium-Ion •Generally around 1500 mAh battery pack •Current generation batteries will power, •light use (typical): ~ 2 days •heavy use (esp. internet): 6 to 10 hours •game play/video: 2 to 3 hours •Battery drain depends on sensor use (but display is the largest consumer of power)
  • 22. R. Vasa, 201222 Where does battery go? •How is battery used (without GPS)? •Display (50%) •Cell grid usage including stand by (25%) •WiFi (20%) •Phone Idle (5%) •If GPS is enabled -- it will use about 20-25% of the battery power. •Note: The above is based on an average user
  • 23. R. Vasa, 201223 Memory •Persistent Solid State Storage •Flash memory (8/16/32Gb, @ ~10MB/sec ) •SD Card (@ ~ 4 - 6 MB/sec) •2 Gb special memory for (O/S + drivers) •Volatile •RAM (256 Mb - 512 Mb) •GPU shares RAM •Memory read/write speed is a constraint
  • 24. R. Vasa, 201224 Display Technology •Bright / full colour - AMOLED, OLED, LCD •Different resolutions are used •eXtra High density (640 x 960 @ 320 dpi) •High density (480 x 800 @ 240 dpi) •Medium density (320 x 480 @ 160 dpi) •Low density (240 x 400 @ 120 dpi) •Physical width often ~ 2 inches (goldilocks width for human hands) •Height often between 2 - 4.5 inches
  • 25. R. Vasa, 201225 Lecture Overview - Where are we? •Eco Systems and Development Journey •Smartphone - Hardware Overview •Hardware Constraints (Dev. perspective) •Mobile Operating Systems •Convention Over Configuration
  • 26. R. Vasa, 201226 Next Generation Displays •Most widely used are medium density and high-density (320x480 @ 160 dpi and 480 x 800 @ 240 dpi ) •iPhone4 is ~ 320 dpi (more pixels per inch) Image Source: Gizmodo
  • 27. R. Vasa, 201227 What are the constraints? •As a developer you need to, •Know typical usage (minutes or hours) •Understand sensors (efficiency / accuracy / reliability / batt. drain) •Know network is unreliable and offers erratic speeds •Be aware that the phone may/will/can ring •Display size, DPI & processor speed are variable
  • 28. R. Vasa, 201228 More constraints.... •You must develop apps that, •Use only a few MB of memory •Are a couple of MB in size •Store data as efficiently as possible •Can work with sensors where precision is not identical across devices (even iPhone has 3 generations in wide-spread use) •Can work with a range of memory, cpu, and GPU capabilities
  • 29. R. Vasa, 201229 Biggest Constraint of ALL •The Phone can (will) RING •When the phone rings, •Your app. is put in the background by O/S •If you want to save state -- you have to manage this •When the phone call ends, •The O/S will try to bring your app. back into the foreground (but not guaranteed)
  • 30. R. Vasa, 201230 Time for distraction... • Guess how much effort went into the design and construction of the core font (Droid Font) for the Android platform? • This was followed by even more work on the new Roboto Font.
  • 31. R. Vasa, 201231 Short Problem 1 •Scenario: •You are developing a “Stopwatch + Count Down timer” App. •Use case: The user has set the count down timer for 2 minutes -- pressed “start”. After 45 seconds, phone rings •What is the behaviour of your app. when the phone rings?
  • 32. R. Vasa, 201232 Short Problem 2 •Scenario: You developed an app that “needs” to download ~ 30MB of data daily (Common for newspaper apps) •How long will it take on, •Home broadband/WiFi (3 Mbps), 3G (1.5 Mbps), GPRS (48 Kbps) •Design choices will you make in terms of, •How data is downloaded? Protocols supported? Dealing with dropped connections?
  • 33. R. Vasa, 201233 Short Problem 3 •Scenario: You are planning to develop an app. that will show the weather forecast for a particular location. You want to use the GPS to obtain the location. •However, obtaining an initial GPS lock takes time (30 seconds -- 2 minutes) •Do you think it is reasonable to ask the user to wait a couple of minutes to get the location? If not, what will you do different?
  • 34. R. Vasa, 201234 Short Problem 4 •Scenario: Weather App. •Phone (at home) has not been used for around 30 minutes. •User wants to check the weather. •The app. opens a network connection -- downloads the weather information. •The app takes about 60 - 90 seconds to download weather data. Why is it taking so long? Is this a reasonable delay?
  • 35. R. Vasa, 201235 Lecture Overview - Where are we? •Eco Systems and Development Journey •Smartphone - Hardware Overview •Hardware Constraints (Dev. perspective) •Mobile Operating Systems •Convention Over Configuration
  • 36. R. Vasa, 201236 Mobile Operating System •Operating System == Resource Manager •Tight resource constraints on mobile •Low powered (Batt. 1200 - 1500 mAh) •Limited RAM (256 - 512 MB) •Relatively small disk (8GB - 16GB) •Small (yet power draining) display •Network access - expensive yet needed! •If phone rings -- call gets highest priority
  • 37. R. Vasa, 201237 Mobile Operating Systems •Very different to how PC operating systems are designed •The life cycle of an application is very tightly controlled by O/S •If an app. is a resource hog -- it will get killed (or suspended) by the O/S •O/S trickle allocates memory to apps, but aggressively de-allocates it •If a view/image is not in the foreground/running -- then it will be destroyed
  • 38. R. Vasa, 201238 Mobile Op. Systems are e-VIL? •If you request a network connection -- but have not used it for a while, •O/S will power down network hardware •O/S may close the connection / port •If the devices goes to sleep (default is few min.) then the memory allocated to app. is de- allocated. •O/S (thankfully) provide a short warning and you have options to save data.
  • 39. R. Vasa, 201239 Android App Life Cycle Key feature of a Mobile O/S Remember: ~ 256MB only available in RAM Image Source: http://developer.android.co m 39
  • 40. R. Vasa, 201240 iOS Application Life Cycle (is similar) •Memory management is different in iOS compared to Android •iOS will still, •Terminate apps. if memory needed (test for yourself -- load few large games on an iPhone) •Send an app. into background if Phone rings •Flush caches (used by images mainly) at regular intervals to free resources
  • 41. R. Vasa, 201241 States of an App. •An app. can be in one of the following states: •Not Running (not launched) •Running (foreground or background) •Active •In-Active (waiting for I/O) •Suspended (background) •Process state information is saved, but RAM used is generally purged
  • 42. R. Vasa, 201242 Short Problem 5 •Consider this hypothetical situation, •Each time you minimise the IDE on your laptop computer, the O/S will suspend the application for 15 minutes -- then terminates the application. •If you were developing the IDE -- and want to offer a reasonable user experience on this OS - - what can you do?
  • 43. R. Vasa, 201243 Mobile File Systems •Designed to work with Flash memory •Flash memory is designed for max. 10k writes •File system is optimised to ensure that the same block does not receive too many writes (known as wear levelling) •Write operation -> (erase first), then write data •Read operations are faster than write •Read speed ~ 6 MB/sec, Write ~ 3 MB/sec •I/O speed optimisation critical in games
  • 44. R. Vasa, 201244 Short Problem 6 •You have created a new “app” for the Android platform -- •App Size is 25MB (20M is media) •What is the minimum load time for this app? •Do you think this is a reasonable size for a weather app.?
  • 45. R. Vasa, 201245 When building mobile apps... •Assume phone will ring •Save state regularly (in fact, be paranoid) •Assume resources are allocated reluctantly •Assume erratic network connectivity •Assume slow read/write speed to Flash card •Use RAM carefully, minimise sensor use •Inform user if any operation takes over 3 sec. •Keep core use case as short as possible
  • 46. R. Vasa, 201246 Lecture Overview - Where are we? •Eco Systems and Development Journey •Smartphone - Hardware Overview •Hardware Constraints (Dev. perspective) •Mobile Operating Systems •Convention Over Configuration
  • 47. R. Vasa, 201247 Convention Over Configuration •Software design paradigm •Aims to reduce decisions developers make •Why is this needed? •When we build software, there is a lot of routine and repetitive decision making •By following a certain development style, we reduce the decisions we need to make •What do we lose? -- Some flexibility, and developers have to accept the convention
  • 48. R. Vasa, 201248 Example .... •Software systems often make use of a large number of images (icons, background etc.) •Developers now have to make a decision: 1. Store the images in a central directory? 2. Distribute them into different directories (closer to modules?) 3. Store them in a database system? 4. Naming of images, meta-data? •What is the best option? Will it work? Risk?
  • 49. R. Vasa, 201249 Decision making process.. •In order to make a decision, •Options must be identified (takes effort) •Options must be ranked (opinions and ideas of different developers will come into play) •An option must be selected •Team must accept the selected option •May results in ... “decision paralysis” •Worse, sub-optimal decision making + increase in stress
  • 50. R. Vasa, 201250 Coding by configuration... •Consider the “image storage example” •Assume developers have made a choice •Developers have to explicitly write code to, •Load these image resources •Manage the location that they are stored in •Find a consistent way to refer to these images •Agree on a naming style etc... •Work is done -- but has minimal value add
  • 51. R. Vasa, 201251 Coding by convention.. •All images are stored in the “images” directory •Framework will automatically, •Generate references to these images •Provide code to load these images •Enforce naming rules to identify different types of images •e.g. Icons will be named with ic_ prefix. •We improve productivity -- in terms of reduced decision making
  • 52. R. Vasa, 201252 Why does this matter? •Android prefers and dictates “convention” •However, •You can ignore the convention and fallback to configuration •Benefits of convention, •Productivity improvement •Improve team coordination •Reduces unnecessary stress •iOS development has its own conventions!
  • 53. R. Vasa, 201253 Android Project Structure (convention) •Source code (src) •Generated code (gen) •Resources (res) •Images (drawable) •Layout of app (layout) •Constants/Strings (values)
  • 54. R. Vasa, 201254 Demo -- Hello World •Create a ‘Hello World’ app. •Quick overview of the IDE & Emulator •Create + Run app. (in emulator) •Change the font size (run again) •Display “Hello, HIT3328 / HIT8328” •Why do we have generated code?
  • 55. R. Vasa, 201255 Lecture Review - Key points •Understand the hardware and sensors •Constraints are real -- must work within them •Mobile Operating Systems •Be paranoid about storing state •Convention Over Configuration •Follow the pattern -- increase productivity