SlideShare a Scribd company logo
1 of 15
Download to read offline
HIT3328 / HIT8328 Software Development for
Mobile Devices
Dr. Rajesh Vasa, 2012
Twitter: @rvasa
Blog: http://rvasa.blogspot.com
1
Lecture 02
Foundation and
Tools
R. Vasa, 20122
Lecture Overview
•Programs and Operating Systems
•What is Android (for a programmer)?
•Android - Device and Interaction Overview
•Development Tools
•Configuring the IDE for Android
Development
•Using the Logger
•Building a Simple App.
•Building an Interactive App.
R. Vasa, 20123
Programs and Operating
Systems
•All programs eventually execute on
Hardware
•They all make use of services from O/S
PrograProgra
mm
OperatingOperating
SystemsSystems
HardwareHardware
R. Vasa, 20124
We program to an API
•Programs use services from O/S (via API)
PrograProgra
mm
OperatingOperating
SystemsSystems
HardwareHardware
APIAPI
R. Vasa, 20125
API is good - but frameworks
are better
•Android and iOS are more than O/S
•They are platforms and hence include,
•Operating System (with primitive API)
•Frameworks (incl. Components/Libraries)
PrograProgra
mm
OperatingOperating
SystemsSystems
Android
iOS
FrameworFramewor
ksks
APIAPI
R. Vasa, 20126
iOS
Cocoa TouchCocoa Touch
MediaMedia
Core ServicesCore Services
Core O/SCore O/S
Touch UI, Gestures
Audio, Video
Data, Telephony,
Networking, Location
Primary programming language: Objective-C
R. Vasa, 20127
Android
Image Source: http://developer.android.com
Programming languages: Java, C/C++
R. Vasa, 20128
We write to a
framework/library
•We are developing programs to use a
framework
•Knowledge of framework is very important
•Android / iOS have very different
frameworks
•Different data structures & algorithms
•Different nuances and culture
•But ... broad concepts are similar
•You can learn iOS faster if you know Android
(vice-versa)
R. Vasa, 20129
Lecture Overview - Where are
we?
•Programs and Operating Systems
•What is Android (for a programmer)?
•Android - Device and Interaction Overview
•Development Tools
•Configuring the IDE for Android
Development
•Using the Logger
•Building a Simple App.
•Building an Interactive App.
R. Vasa, 201210
Android is a bi-lingual platform
Image Source: http://www.tbray.org
JavaC/C++
R. Vasa, 201211
What is Dalvik?
•Dalvik is a Virtual Machine
•Dalvik executes the compiled Java code
•Dalvik uses a ‘register-based architecture’
•It is NOT a stack machine like the JVM
•Stack machine Vs Register machines
•Data is loaded and manipulated differently
•Register based -> quicker load and
execution, but slightly larger program size
R. Vasa, 201212
What is in the Android
Framework?
•All of these are available via Java (or C/C+
+)
Image Source: http://www.tbray.org
R. Vasa, 201213
Android Standard Libraries
•Java & C/C++ code can access these
libraries
Background Image Source: http://www.tbray.org
RDBMS Web Page
Rendering
XML
FontsCrypto
R. Vasa, 201214
Where do we start with
Android? Simple Graphical
Applications
R. Vasa, 201215
Some Assumptions (from now
on...)
•You know how to build Java programs
•You also know,
•Package organisation system of Java
•Aware of commonly used standard libraries
•Can use a command interface (Terminal in
OSX, MS Dos console in Windows)
•Can read Java code and understand
logic/flow
•Interface inheritance
R. Vasa, 201216
If your Java is rusty
•You have some catching up to do....
Free e-Book at http://www.mindview.net/Books/TIJ/
R. Vasa, 201217
If you know these, you will
learn faster
•Event handling
•By implementing listener interfaces
•By use of anonymous inner classes
•Hash Tables / Maps (concept + code)
•Singleton, Factory, Visitor design patterns
•Have built user interfaces in another
language/framework (incl. Swing/AWT)
•Call-backs
R. Vasa, 201218
Lecture Overview - Where are
we?
•Programs and Operating Systems
•What is Android (for a programmer)?
•Android - Device and Interaction
Overview
•Development Tools
•Configuring the IDE for Android
Development
•Using the Logger
•Building a Simple App.
•Building an Interactive App.
R. Vasa, 201219
Android Device User
Interaction
•Android has a three key buttons
Menu
HomeBack
Apart from these
buttons, vendors can
add more buttons (if
they wish)
R. Vasa, 201220
Vendors can add additional
buttons
R. Vasa, 201221
There are variations in physical
form
But all phones have Home, Menu, & Back Buttons
R. Vasa, 201222
Home Button...
•Typically, this will take you back to the
Home Screen of the phone
•Same (default) behaviour as the iPhone /
iPad button
Home
R. Vasa, 201223
Back Button
•This will take you back to the previous
screen
•If app. has only one screen, this will exit
app.
•R. Vasa Personal Note: I miss this button the
most when I use the iPhone / iPad)
Back
R. Vasa, 201224
Menu Button
•This will show a contextual menu for a
screen (if one is available)
•Developers can write their own menu for
any screen in their app.
•Quite handy (iOS should borrow this idea)
Menu (as
open)
R. Vasa, 201225
Honeycomb (Android 3.0) is
different...
Back, Home
Where is menu button?
(Buttons need not be physical in Android)
Action Bar
R. Vasa, 201226
Menu Visibility is contextual
(Android 3.0+)
Menu
Sadly, menu position is not mandated (yuk?)
R. Vasa, 201227
Short Problem 1
•This is UX (User Experience) related
•What is the likely rationale for discarding the
‘menu’ button from being always available?
•Would you have made a similar choice?
•Menu position is not mandated (can be top-
right, bottom left etc.)
•As a developer do you prefer the freedom?
•btw. Google’s choices were intentional
R. Vasa, 201228
Lecture Overview - Where are
we?
•Programs and Operating Systems
•What is Android (for a programmer)?
•Android - Device and Interaction Overview
•Development Tools
•Configuring the IDE for Android
Development
•Using the Logger
•Building a Simple App.
•Building an Interactive App.
R. Vasa, 201229
Development Tools
•iOS - XCode IDE + iOS SDK (from Apple)
•Offers a robust/powerful Visual UI Builder
•Android
•Android SDK (Compiler and Emulator)
•Eclipse IDE + Android Plug-in
•Ant (Build System)
•Debugger is powerful
•Visual UI Builder (is getting better)
R. Vasa, 201230
IDE, SDK and Emulator
•IDE - Editor where we write the code
•SDK - Tools that will compile our code
•Emulator - Runs the code
•Emulator runs as a separate application
•IDE communicates to this emulator to
deploy the code
•Debugger (in IDE) also works with emulator
R. Vasa, 201231
Eclipse IDE
R. Vasa, 201232
Eclipse IDE - Graphical UI
Editor
R. Vasa, 201233
Android Emulator
Permits checking
Portrait and
Landscape views
R. Vasa, 201234
Emulator is nice .. but phone is
better
•The emulator runs the Android O/S (you can
run any version from 1.6 up)
•Emulates the phone hardware (like
VMWare)
•Emulator does not have sensors (e.g. GPS,
Gyro, Accelerometer, Cell phone etc.)
•Offers ways to simulate sensor data
R. Vasa, 201235
Emulators Vs Simulator
•iOS offers a simulator
•Android has gone down the emulator path
•Trade-offs (pros and cons),
•Simulators start-up faster, good enough
•Emulators allow checking against rel. 1.6 of
the O/S easily + closer to phone hardware
•Emulators and Simulators cannot mimic real
CPU speed, disk speed, network speed etc.
(yet!)
R. Vasa, 201236
You need a phone (for serious
work)
•Emulator + Simulators are great to learn
with
•Commercial (or serious work) - Need Phone
•Why?
•Mobile apps. are context based (& mobile)
•Best way to test them is in their natural
environment
•Sticky message: “Cannot get users to walk
around with an emulator to their head”
R. Vasa, 201237
Short Problem 2 (True Story)
•An app. to learn Japanese
•Built around Flash Card
metaphor
•Database of 145k words
•During development,
•Search was super-quick
•When tested on phone,
•Search was taking too long
•Why?
R. Vasa, 201238
Lets get our feet wet
R. Vasa, 201239
Demo 1
•Run IDE + Create Simple Hello World
•Send it to Emulator
•Watch what happens on Console View
•Send an SMS to the Emulator
R. Vasa, 201240
Lecture Overview - Where are
we?
•Programs and Operating Systems
•What is Android (for a programmer)?
•Android - Device and Interaction Overview
•Development Tools
•Configuring IDE for Additional Insight
•Using the Logger
•Building a Simple App.
•Building an Interactive App.
R. Vasa, 201241
Developers need more
insight...
•You need a lot of information when
developing apps:
Views
Need these to see program behaviour
(there is no console or MS-DOS prompt)
R. Vasa, 201242
What do developers need?
•Ability to control the Emulator
•Ability to watch the messages between IDE
and Emulator (things are not always
perfect)
•Ability to inspect the processes running on
the emulator (or phone)
•Ability to watch the threads and resources
used by various apps.
•Ability to inspect “LOG” messages
R. Vasa, 201243
Lecture Overview - Where are
we?
•Programs and Operating Systems
•What is Android (for a programmer)?
•Android - Device and Interaction Overview
•Development Tools
•Configuring IDE for Additional Insight
•Using the Logger
•Building a Simple App.
•Building an Interactive App.
R. Vasa, 201244
Can you program without
println?
•Guess what? We cannot do ...
• System.out.println(“I am here!”);
•Same issue in iOS and Android
•These devices do not have a console
•But, we can log messages and watch them
•In Android, we can do,
• Log.d(“TAG”, “I am here!”);
R. Vasa, 201245
Log Messages in Android
R. Vasa, 201246
Demo 2
•Logging a message in Android
•Multiple levels of logging
•Verbose (Log.v(“TAGTAG”, “MethodX Called”);
•Debug (Log.d(“BLAH”, “x should be 34” );
•Information (Log.i(“TAGBLAH”, “Socket open”);)
•We also have Warning, Error, Fatal, Silent
•You can stop log messages from showing
• http://developer.android.com/reference/android/util/Log.html
(See last few methods .. you may say
@#$)
R. Vasa, 201247
Logging
•Android has Log class, iOS has NSLog
•When shipping production/final code -- we
should remove these Log methods
•iOS -- Use a #define in the make script
•Android -- Adjust configuration of ProGuard
•What is ProGuard?
•Code optimisation/obfuscation tool (we will
discuss later...)
•Bundled as part of Android SDK
R. Vasa, 201248
Concept Recap
•Key Buttons -- Home, Back, Menu
•IDE, SDK, Emulator
•Customising IDE to show additional info.
•Logging, Emulator Control, Console
•Sending messages to emulator
•Use of the Log class
R. Vasa, 201249
Lecture Overview - Where are
we?
•Programs and Operating Systems
•What is Android (for a programmer)?
•Android - Device and Interaction Overview
•Development Tools
•Configuring IDE for Additional Insight
•Using the Logger
•Building a Simple App.
•Building an Interactive App.
R. Vasa, 201250
Building a Simple App.
R. Vasa, 201251
What is involved?
•Place UI controls (Text and Image)
•Layout the controls
•Centre text
•Make text large font
•Display Image to take up all space
R. Vasa, 201252
Knowledge Needed to Build it...
•What UI Controls available?
•How do we place/layout the UI controls?
•How do we set the start screen?
•How is the UI Constructed & Destroyed
•How exactly do we start/exit the app.?
R. Vasa, 201253
Android Offers a number of UI
Controls
•Offers all standard controls and lot more...
Progress
These
are a
small
subset of
available
controls
R. Vasa, 201254
Each Screen is an Activity
•Android app. is made up of Activities
Activity
R. Vasa, 201255
Views are Android’s Key UI
Building Block
•We need two views on the Activity
TextView
ImageView
R. Vasa, 201256
Views are Placed inside a View
Group
•Different types of View Groups are provided
•Each View Group offers a different method
to layout the Views
View Group(Linear
Layout)
R. Vasa, 201257
View Groups and Layouts
•Android offers the following View Groups,
•Linear Layout (Horizontal or Vertical)
•Absolute Layout (You set X, Y for each View)
•Table Layout (Rows and Columns)
•Relative Layout (Position relative to other
Views)
•Frame Layout (Show only one view at a
time)
•Scroll View (Permits scrolling of the screen)
•View Groups can be nested
R. Vasa, 201258
Linear Layout
•Two Linear Layouts with 4 Views each
•Nested View Groups
•Activity contains,
•Linear Layout (Vertical)
•Linear Layout (Horizontal)
•Linear Layout (Vertical)
•8 Text Views
Source code:
http://developer.android.com/resources/tutorials/views/hello-linearlayout.html
R. Vasa, 201259
How do we program the
Layout?
•Layout can be written as an XML file
•Layout can be also be written in Java
•XML file is easier to start off with
Layout Definition XML File
R. Vasa, 201260
Concept Recap
•We use a View Group to place and control
where Views are shown
•An App. can have one or more Activities
Activity View Group Views
(Layout)
R. Vasa, 201261
Demo 3 - Linear Layout Control
•The layout manager offers control on how
much a View will stretch
•You can set width / height of each View
to,
•Match Parent (same width/height as parent)
•Fill Parent (cover up parent)
•Wrap Content (use only what is needed)
•You can use Gravity to position View
•You can combine using bit masking
•You can also assign weight to Views
R. Vasa, 201262
Common Layouts
•Recommended Reading:
• http://developer.android.com/guide/topics/ui/layout-objects.html
•Layouts take some time to learn
•Try different layouts and adjust options
•Change the background colour of the views
to see how the layout works
•Remember -- gravity and weight
adjustment
R. Vasa, 201263
Generated Code, Layout &
Resources
•How did Australia image get into the App.?
•How did we set the text to “Australia”?
•Recall: Convention Over Configuration
•Layout Defined in /layout/main.xml
•Resources Placed in /res/drawable-
•String values defined in
/values/strings.xml
R. Vasa, 201264
Resource Definition
•All images (and media) are placed in “res”
directory -- within subfolders
•Android SDK tools will generate R.java
which contains a reference to these
resources
R. Vasa, 201265
Resources and Generated Code
A reference to
these gets
automatically
generated by the
Android SDK tools
R. Vasa, 201266
Resources and Generated Code
Generated Code
static final int australia=0x7f020000;
R. Vasa, 201267
A Reference to Layout also
Generated
All References are Integers
R. Vasa, 201268
Concept Recap
•We use a View Group to place and control
where Views are shown
•An App. can have one or more Activities
Activity View Group Views
(Layout)
R. Vasa, 201269
How does Activity know about
layout?
Reference to the layout
This is the Activity Class
(Android Runtime will Render this Layout)
R. Vasa, 201270
Who writes the Activity code?
This block of code is created by
IDE/SDK when we create new
Android projectYou can also write you own -- more on that later in
semester
R. Vasa, 201271
Activity Creation
Method called (by the Application
Launcher) when Activity is first
created
R. Vasa, 201272
Activity Creation - Layout
Rendeing
Method call will pass the reference to
the layout that needs to be rendered
on the screen
(We will discuss the “rending model” later in the
semester)
R. Vasa, 201273
What is the “root” Activity?
•How does Android know which Activity to
create first?
Answer: Application Manifest File
R. Vasa, 201274
Application Manifest File
Activity Name
Application Icon Reference
Category
R. Vasa, 201275
Concept Recap
Activity
View Group
(Layout)
Activity Class (Java)
Layout Definition
(main.xml)
R. Vasa, 201276
Layouts and Resources
•How did the Australia image get into
layout?
Layout can refer to resources
@drawable is a special tag
R. Vasa, 201277
Layouts and String Information
•How did we set the text to “Australia”
String constant
R. Vasa, 201278
Layout and String Information
•String information can come from constant
values defined in values.xml
Context Help
shows
recommendations
R. Vasa, 201279
String Constant Values
Defined as a
resource
Refer using an @string tag
R. Vasa, 201280
What is it with the @ tag?
•Constant Resources in Android can be
referred using the “@” tag in XML layout
•Example: @drawable, @string ...
@drawable/australia
@drawable/bots
R. Vasa, 201281
Significance of hdpi/ldpi/mdpi
High-Res, 240 dpi screen
Low-Res, 120 dpi screen
Med-Res, 160 dpi screen
Different resolution images
R. Vasa, 2012
@ Tag and Multiple Screen
Resolutions
•Dealing with multiple screen resolutions
@drawable/icon
Android Runtime decides best resource to use
based on hardware capabilities
R. Vasa, 201283
Drawable at Different
Resolutions
High
Low
Medium
R. Vasa, 201284
Drawable at Multiple
Resolutions
•You should ideally provide these images
•Runtime will try to
•Scale down Highest resolution available, (or)
•But, Low may need scaling up (yuk!)
•Images at different resolution must be
called the “same name”
•SDK convention based tools will select best
option
R. Vasa, 201285
Lecture Overview - Where are
we?
•Programs and Operating Systems
•What is Android (for a programmer)?
•Android - Device and Interaction Overview
•Development Tools
•Configuring IDE for Additional Insight
•Using the Logger
•Building a Simple App.
•Building an Interactive App.
R. Vasa, 201286
Building an App with Simple
Interaction
•Temperature Conversion (C -> F)
R. Vasa, 201287
What is involved?
•Place some UI controls
•Write a simple function (C -> F)
•When Button is clicked,
•Use (C->F) function
•Pass it the Celsius value
•Display the Fahrenheit Value
R. Vasa, 201288
Demo 4
•Walk through of (C->F) Conversion App.
•Recap: Activity, Layout and Views
•Event Handling
R. Vasa, 201289
Recommended Reading
•What Android Is, Tim Bray
• http://www.tbray.org/ongoing/When/201x/2010/11/14/What-Android-Is
•Android Developers Guide
• http://developer.android.com
• Common Layouts
• http://developer.android.com/guide/topics/ui/layout-objects.html

More Related Content

What's hot

Debugging with NetBeans IDE
Debugging with NetBeans IDEDebugging with NetBeans IDE
Debugging with NetBeans IDEAndreas Ruppen
 
Introduction to Mobile-UI Automated Testing Tools
Introduction to Mobile-UI Automated Testing ToolsIntroduction to Mobile-UI Automated Testing Tools
Introduction to Mobile-UI Automated Testing Toolsi_am_craig
 
100 effective software testing tools that boost your Testing
100 effective software testing tools that boost your Testing100 effective software testing tools that boost your Testing
100 effective software testing tools that boost your TestingBugRaptors
 
Pedometer mobile application ppt
Pedometer mobile application pptPedometer mobile application ppt
Pedometer mobile application pptSaurabh Nimbade
 
Basic iOS Training with SWIFT - Part 4
Basic iOS Training with SWIFT - Part 4Basic iOS Training with SWIFT - Part 4
Basic iOS Training with SWIFT - Part 4Manoj Ellappan
 
Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...
Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...
Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...Kevin Moran
 
Mobile Application Testing
Mobile Application Testing Mobile Application Testing
Mobile Application Testing Shivaraj R
 
Automated UI Testing for Web and Native Apps on iOS and Android
Automated UI Testing for  Web and Native Apps on iOS and AndroidAutomated UI Testing for  Web and Native Apps on iOS and Android
Automated UI Testing for Web and Native Apps on iOS and AndroidOperation Mobile
 
Tech fuse11 toolingtestingci-vs2010teamcity
Tech fuse11 toolingtestingci-vs2010teamcityTech fuse11 toolingtestingci-vs2010teamcity
Tech fuse11 toolingtestingci-vs2010teamcityBaskin Tapkan
 
How do Developers Test Android Applications?
How do Developers Test Android Applications?How do Developers Test Android Applications?
How do Developers Test Android Applications?Kevin Moran
 
ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated T...
ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated T...ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated T...
ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated T...Kevin Moran
 
Android Application Development at JFokus 2011
Android Application Development at JFokus 2011Android Application Development at JFokus 2011
Android Application Development at JFokus 2011Anders Göransson
 
Automated GUI-Testing of Android Apps: From Research to Practice
Automated GUI-Testing of Android Apps: From Research to PracticeAutomated GUI-Testing of Android Apps: From Research to Practice
Automated GUI-Testing of Android Apps: From Research to PracticeKevin Moran
 

What's hot (15)

Debugging with NetBeans IDE
Debugging with NetBeans IDEDebugging with NetBeans IDE
Debugging with NetBeans IDE
 
Introduction to Mobile-UI Automated Testing Tools
Introduction to Mobile-UI Automated Testing ToolsIntroduction to Mobile-UI Automated Testing Tools
Introduction to Mobile-UI Automated Testing Tools
 
100 effective software testing tools that boost your Testing
100 effective software testing tools that boost your Testing100 effective software testing tools that boost your Testing
100 effective software testing tools that boost your Testing
 
Pedometer mobile application ppt
Pedometer mobile application pptPedometer mobile application ppt
Pedometer mobile application ppt
 
Basic iOS Training with SWIFT - Part 4
Basic iOS Training with SWIFT - Part 4Basic iOS Training with SWIFT - Part 4
Basic iOS Training with SWIFT - Part 4
 
Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...
Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...
Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...
 
Mobile Application Testing
Mobile Application Testing Mobile Application Testing
Mobile Application Testing
 
Automated UI Testing for Web and Native Apps on iOS and Android
Automated UI Testing for  Web and Native Apps on iOS and AndroidAutomated UI Testing for  Web and Native Apps on iOS and Android
Automated UI Testing for Web and Native Apps on iOS and Android
 
Mobile testing
Mobile testingMobile testing
Mobile testing
 
Tech fuse11 toolingtestingci-vs2010teamcity
Tech fuse11 toolingtestingci-vs2010teamcityTech fuse11 toolingtestingci-vs2010teamcity
Tech fuse11 toolingtestingci-vs2010teamcity
 
How do Developers Test Android Applications?
How do Developers Test Android Applications?How do Developers Test Android Applications?
How do Developers Test Android Applications?
 
Presentation1
Presentation1Presentation1
Presentation1
 
ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated T...
ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated T...ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated T...
ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated T...
 
Android Application Development at JFokus 2011
Android Application Development at JFokus 2011Android Application Development at JFokus 2011
Android Application Development at JFokus 2011
 
Automated GUI-Testing of Android Apps: From Research to Practice
Automated GUI-Testing of Android Apps: From Research to PracticeAutomated GUI-Testing of Android Apps: From Research to Practice
Automated GUI-Testing of Android Apps: From Research to Practice
 

Viewers also liked

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 DevelopmentYhal Htet Aung
 
江南風雲錄與二泉映月
江南風雲錄與二泉映月江南風雲錄與二泉映月
江南風雲錄與二泉映月James Lee
 
Postmodernizm prezentacja
Postmodernizm prezentacjaPostmodernizm prezentacja
Postmodernizm prezentacjaiwa22
 
HIT3328 - Chapter01 - Platforms and Devices
HIT3328 - Chapter01 - Platforms and DevicesHIT3328 - Chapter01 - Platforms and Devices
HIT3328 - Chapter01 - Platforms and DevicesYhal Htet Aung
 
CSC1100 - Chapter10 - Information System
CSC1100 - Chapter10 - Information SystemCSC1100 - Chapter10 - Information System
CSC1100 - Chapter10 - Information SystemYhal Htet Aung
 
HIT3328 - Chapter04 - Complex Interactions
HIT3328 - Chapter04 - Complex InteractionsHIT3328 - Chapter04 - Complex Interactions
HIT3328 - Chapter04 - Complex InteractionsYhal Htet Aung
 
EduBrand Alumni Loyalty Program
EduBrand Alumni Loyalty ProgramEduBrand Alumni Loyalty Program
EduBrand Alumni Loyalty ProgramAlex Fabristov
 
CSC1100 - Chapter05 - Storage
CSC1100 - Chapter05 - StorageCSC1100 - Chapter05 - Storage
CSC1100 - Chapter05 - StorageYhal Htet Aung
 
CSC1100 - Chapter07 - Communications & Networks
CSC1100 - Chapter07 - Communications & NetworksCSC1100 - Chapter07 - Communications & Networks
CSC1100 - Chapter07 - Communications & NetworksYhal Htet Aung
 
HIT3328 - Chapter03 - Simple Interactive Apps
HIT3328 - Chapter03 - Simple Interactive AppsHIT3328 - Chapter03 - Simple Interactive Apps
HIT3328 - Chapter03 - Simple Interactive AppsYhal Htet Aung
 
Practica 1
Practica 1Practica 1
Practica 1urilaura
 
Ambiente manuale orto_sinergico_rilegato
Ambiente manuale orto_sinergico_rilegatoAmbiente manuale orto_sinergico_rilegato
Ambiente manuale orto_sinergico_rilegatoAldo Salvatore Coraggio
 
Postmodernizm prezentacja
Postmodernizm prezentacjaPostmodernizm prezentacja
Postmodernizm prezentacjaiwa22
 

Viewers also liked (19)

Associazioni dacontattare
Associazioni dacontattareAssociazioni dacontattare
Associazioni dacontattare
 
Manifesto ecovillaggiosubbiano
Manifesto ecovillaggiosubbianoManifesto ecovillaggiosubbiano
Manifesto ecovillaggiosubbiano
 
Per unmondonuovo
Per unmondonuovoPer unmondonuovo
Per unmondonuovo
 
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
 
江南風雲錄與二泉映月
江南風雲錄與二泉映月江南風雲錄與二泉映月
江南風雲錄與二泉映月
 
Postmodernizm prezentacja
Postmodernizm prezentacjaPostmodernizm prezentacja
Postmodernizm prezentacja
 
HIT3328 - Chapter01 - Platforms and Devices
HIT3328 - Chapter01 - Platforms and DevicesHIT3328 - Chapter01 - Platforms and Devices
HIT3328 - Chapter01 - Platforms and Devices
 
CSC1100 - Chapter10 - Information System
CSC1100 - Chapter10 - Information SystemCSC1100 - Chapter10 - Information System
CSC1100 - Chapter10 - Information System
 
Momentum
MomentumMomentum
Momentum
 
HIT3328 - Chapter04 - Complex Interactions
HIT3328 - Chapter04 - Complex InteractionsHIT3328 - Chapter04 - Complex Interactions
HIT3328 - Chapter04 - Complex Interactions
 
EduBrand Alumni Loyalty Program
EduBrand Alumni Loyalty ProgramEduBrand Alumni Loyalty Program
EduBrand Alumni Loyalty Program
 
CSC1100 - Chapter05 - Storage
CSC1100 - Chapter05 - StorageCSC1100 - Chapter05 - Storage
CSC1100 - Chapter05 - Storage
 
Presentazione progettoglobale
Presentazione progettoglobalePresentazione progettoglobale
Presentazione progettoglobale
 
CSC1100 - Chapter07 - Communications & Networks
CSC1100 - Chapter07 - Communications & NetworksCSC1100 - Chapter07 - Communications & Networks
CSC1100 - Chapter07 - Communications & Networks
 
HIT3328 - Chapter03 - Simple Interactive Apps
HIT3328 - Chapter03 - Simple Interactive AppsHIT3328 - Chapter03 - Simple Interactive Apps
HIT3328 - Chapter03 - Simple Interactive Apps
 
Practica 1
Practica 1Practica 1
Practica 1
 
Ambiente manuale orto_sinergico_rilegato
Ambiente manuale orto_sinergico_rilegatoAmbiente manuale orto_sinergico_rilegato
Ambiente manuale orto_sinergico_rilegato
 
Postmodernizm prezentacja
Postmodernizm prezentacjaPostmodernizm prezentacja
Postmodernizm prezentacja
 
Momentum2
Momentum2Momentum2
Momentum2
 

Similar to HIT3328 - Chapter02 - Foundation and Tools

Jan Kroon's talk @mdevcon 2012
Jan Kroon's talk @mdevcon 2012Jan Kroon's talk @mdevcon 2012
Jan Kroon's talk @mdevcon 2012Jan Kroon
 
Android development orientation for starters v2
Android development orientation for starters v2Android development orientation for starters v2
Android development orientation for starters v2Joemarie Amparo
 
Matteo Gazzurelli - Introduction to Android Development - Have a break edition
Matteo Gazzurelli - Introduction to Android Development - Have a break editionMatteo Gazzurelli - Introduction to Android Development - Have a break edition
Matteo Gazzurelli - Introduction to Android Development - Have a break editionDuckMa
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Javaamaankhan
 
Android Seminar || history || versions||application developement
Android Seminar || history || versions||application developement Android Seminar || history || versions||application developement
Android Seminar || history || versions||application developement Shubham Pahune
 
Climbing Mount Android
Climbing Mount AndroidClimbing Mount Android
Climbing Mount AndroidRajesh Vasa
 
Basic iOS Training with SWIFT - Part 1
Basic iOS Training with SWIFT - Part 1Basic iOS Training with SWIFT - Part 1
Basic iOS Training with SWIFT - Part 1Manoj Ellappan
 
First Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting IntroductionFirst Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting IntroductionCesar Augusto Nogueira
 
Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013
Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013
Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013DuckMa
 
Presentation on Android application
Presentation on Android applicationPresentation on Android application
Presentation on Android applicationAtibur Rahman
 
Mobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and DockerMobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and DockerMoataz Nabil
 
Climbing Mount Android (June 2011)
Climbing Mount Android (June 2011)Climbing Mount Android (June 2011)
Climbing Mount Android (June 2011)Rajesh Vasa
 
Introduction_to_android_and_android_studio
Introduction_to_android_and_android_studioIntroduction_to_android_and_android_studio
Introduction_to_android_and_android_studioAbdul Basit
 
Getting started with android programming
Getting started with android programmingGetting started with android programming
Getting started with android programmingPERKYTORIALS
 
Seminar on android app development
Seminar on android app developmentSeminar on android app development
Seminar on android app developmentAbhishekKumar4779
 

Similar to HIT3328 - Chapter02 - Foundation and Tools (20)

Jan Kroon's talk @mdevcon 2012
Jan Kroon's talk @mdevcon 2012Jan Kroon's talk @mdevcon 2012
Jan Kroon's talk @mdevcon 2012
 
Intro to android (gdays)
Intro to android (gdays)Intro to android (gdays)
Intro to android (gdays)
 
Android development orientation for starters v2
Android development orientation for starters v2Android development orientation for starters v2
Android development orientation for starters v2
 
Matteo Gazzurelli - Introduction to Android Development - Have a break edition
Matteo Gazzurelli - Introduction to Android Development - Have a break editionMatteo Gazzurelli - Introduction to Android Development - Have a break edition
Matteo Gazzurelli - Introduction to Android Development - Have a break edition
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Java
 
Android Seminar || history || versions||application developement
Android Seminar || history || versions||application developement Android Seminar || history || versions||application developement
Android Seminar || history || versions||application developement
 
Android platform
Android platform Android platform
Android platform
 
Android - Anroid Pproject
Android - Anroid PprojectAndroid - Anroid Pproject
Android - Anroid Pproject
 
Climbing Mount Android
Climbing Mount AndroidClimbing Mount Android
Climbing Mount Android
 
Basic iOS Training with SWIFT - Part 1
Basic iOS Training with SWIFT - Part 1Basic iOS Training with SWIFT - Part 1
Basic iOS Training with SWIFT - Part 1
 
Mobile app
Mobile appMobile app
Mobile app
 
First Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting IntroductionFirst Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting Introduction
 
Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013
Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013
Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013
 
Presentation on Android application
Presentation on Android applicationPresentation on Android application
Presentation on Android application
 
Mobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and DockerMobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and Docker
 
Climbing Mount Android (June 2011)
Climbing Mount Android (June 2011)Climbing Mount Android (June 2011)
Climbing Mount Android (June 2011)
 
Android Apps
Android AppsAndroid Apps
Android Apps
 
Introduction_to_android_and_android_studio
Introduction_to_android_and_android_studioIntroduction_to_android_and_android_studio
Introduction_to_android_and_android_studio
 
Getting started with android programming
Getting started with android programmingGetting started with android programming
Getting started with android programming
 
Seminar on android app development
Seminar on android app developmentSeminar on android app development
Seminar on android app development
 

More from 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 ListsYhal Htet Aung
 
HIT3328 - Chapter0602 - Sketching Apps
HIT3328 - Chapter0602 - Sketching AppsHIT3328 - Chapter0602 - Sketching Apps
HIT3328 - Chapter0602 - Sketching AppsYhal Htet Aung
 
HIT3328 - Chapter0601 - Menus and Lists
HIT3328 - Chapter0601 - Menus and ListsHIT3328 - Chapter0601 - Menus and Lists
HIT3328 - Chapter0601 - Menus and ListsYhal 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 ApproachYhal Htet Aung
 
HIT3328 - Chapter05 - Working with Forms
HIT3328 - Chapter05 - Working with FormsHIT3328 - Chapter05 - Working with Forms
HIT3328 - Chapter05 - Working with FormsYhal Htet Aung
 
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 PrivacyYhal Htet Aung
 
CSC1100 - Chapter08 - Database Management
CSC1100 - Chapter08 - Database ManagementCSC1100 - Chapter08 - Database Management
CSC1100 - Chapter08 - Database ManagementYhal Htet Aung
 
CSC1100 - Chapter06 - Operating System & Utility Programs
CSC1100 - Chapter06 - Operating System & Utility ProgramsCSC1100 - Chapter06 - Operating System & Utility Programs
CSC1100 - Chapter06 - Operating System & Utility ProgramsYhal Htet Aung
 
CSC1100 - Chapter04 - Output
CSC1100 - Chapter04 - OutputCSC1100 - Chapter04 - Output
CSC1100 - Chapter04 - OutputYhal Htet Aung
 
CSC1100 - Chapter03 - Input
CSC1100 - Chapter03 - InputCSC1100 - Chapter03 - Input
CSC1100 - Chapter03 - InputYhal Htet Aung
 
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 UnitYhal Htet Aung
 
CSC1100 - Chapter01 - Overview of Using Computers
CSC1100 - Chapter01 - Overview of Using ComputersCSC1100 - Chapter01 - Overview of Using Computers
CSC1100 - Chapter01 - Overview of Using ComputersYhal Htet Aung
 
CSC1100 - Chapter12 - Flow Charts
CSC1100 - Chapter12 - Flow ChartsCSC1100 - Chapter12 - Flow Charts
CSC1100 - Chapter12 - Flow ChartsYhal Htet Aung
 

More from Yhal Htet Aung (13)

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
 
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 - Chapter06 - Operating System & Utility Programs
CSC1100 - Chapter06 - Operating System & Utility ProgramsCSC1100 - Chapter06 - Operating System & Utility Programs
CSC1100 - Chapter06 - Operating System & Utility Programs
 
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
 

Recently uploaded

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 

Recently uploaded (20)

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 

HIT3328 - Chapter02 - Foundation and Tools

  • 1. HIT3328 / HIT8328 Software Development for Mobile Devices Dr. Rajesh Vasa, 2012 Twitter: @rvasa Blog: http://rvasa.blogspot.com 1 Lecture 02 Foundation and Tools R. Vasa, 20122 Lecture Overview •Programs and Operating Systems •What is Android (for a programmer)? •Android - Device and Interaction Overview •Development Tools •Configuring the IDE for Android Development •Using the Logger •Building a Simple App. •Building an Interactive App. R. Vasa, 20123 Programs and Operating Systems •All programs eventually execute on Hardware •They all make use of services from O/S PrograProgra mm OperatingOperating SystemsSystems HardwareHardware R. Vasa, 20124 We program to an API •Programs use services from O/S (via API) PrograProgra mm OperatingOperating SystemsSystems HardwareHardware APIAPI R. Vasa, 20125 API is good - but frameworks are better •Android and iOS are more than O/S •They are platforms and hence include, •Operating System (with primitive API) •Frameworks (incl. Components/Libraries) PrograProgra mm OperatingOperating SystemsSystems Android iOS FrameworFramewor ksks APIAPI R. Vasa, 20126 iOS Cocoa TouchCocoa Touch MediaMedia Core ServicesCore Services Core O/SCore O/S Touch UI, Gestures Audio, Video Data, Telephony, Networking, Location Primary programming language: Objective-C
  • 2. R. Vasa, 20127 Android Image Source: http://developer.android.com Programming languages: Java, C/C++ R. Vasa, 20128 We write to a framework/library •We are developing programs to use a framework •Knowledge of framework is very important •Android / iOS have very different frameworks •Different data structures & algorithms •Different nuances and culture •But ... broad concepts are similar •You can learn iOS faster if you know Android (vice-versa) R. Vasa, 20129 Lecture Overview - Where are we? •Programs and Operating Systems •What is Android (for a programmer)? •Android - Device and Interaction Overview •Development Tools •Configuring the IDE for Android Development •Using the Logger •Building a Simple App. •Building an Interactive App. R. Vasa, 201210 Android is a bi-lingual platform Image Source: http://www.tbray.org JavaC/C++ R. Vasa, 201211 What is Dalvik? •Dalvik is a Virtual Machine •Dalvik executes the compiled Java code •Dalvik uses a ‘register-based architecture’ •It is NOT a stack machine like the JVM •Stack machine Vs Register machines •Data is loaded and manipulated differently •Register based -> quicker load and execution, but slightly larger program size R. Vasa, 201212 What is in the Android Framework? •All of these are available via Java (or C/C+ +) Image Source: http://www.tbray.org
  • 3. R. Vasa, 201213 Android Standard Libraries •Java & C/C++ code can access these libraries Background Image Source: http://www.tbray.org RDBMS Web Page Rendering XML FontsCrypto R. Vasa, 201214 Where do we start with Android? Simple Graphical Applications R. Vasa, 201215 Some Assumptions (from now on...) •You know how to build Java programs •You also know, •Package organisation system of Java •Aware of commonly used standard libraries •Can use a command interface (Terminal in OSX, MS Dos console in Windows) •Can read Java code and understand logic/flow •Interface inheritance R. Vasa, 201216 If your Java is rusty •You have some catching up to do.... Free e-Book at http://www.mindview.net/Books/TIJ/ R. Vasa, 201217 If you know these, you will learn faster •Event handling •By implementing listener interfaces •By use of anonymous inner classes •Hash Tables / Maps (concept + code) •Singleton, Factory, Visitor design patterns •Have built user interfaces in another language/framework (incl. Swing/AWT) •Call-backs R. Vasa, 201218 Lecture Overview - Where are we? •Programs and Operating Systems •What is Android (for a programmer)? •Android - Device and Interaction Overview •Development Tools •Configuring the IDE for Android Development •Using the Logger •Building a Simple App. •Building an Interactive App.
  • 4. R. Vasa, 201219 Android Device User Interaction •Android has a three key buttons Menu HomeBack Apart from these buttons, vendors can add more buttons (if they wish) R. Vasa, 201220 Vendors can add additional buttons R. Vasa, 201221 There are variations in physical form But all phones have Home, Menu, & Back Buttons R. Vasa, 201222 Home Button... •Typically, this will take you back to the Home Screen of the phone •Same (default) behaviour as the iPhone / iPad button Home R. Vasa, 201223 Back Button •This will take you back to the previous screen •If app. has only one screen, this will exit app. •R. Vasa Personal Note: I miss this button the most when I use the iPhone / iPad) Back R. Vasa, 201224 Menu Button •This will show a contextual menu for a screen (if one is available) •Developers can write their own menu for any screen in their app. •Quite handy (iOS should borrow this idea) Menu (as open)
  • 5. R. Vasa, 201225 Honeycomb (Android 3.0) is different... Back, Home Where is menu button? (Buttons need not be physical in Android) Action Bar R. Vasa, 201226 Menu Visibility is contextual (Android 3.0+) Menu Sadly, menu position is not mandated (yuk?) R. Vasa, 201227 Short Problem 1 •This is UX (User Experience) related •What is the likely rationale for discarding the ‘menu’ button from being always available? •Would you have made a similar choice? •Menu position is not mandated (can be top- right, bottom left etc.) •As a developer do you prefer the freedom? •btw. Google’s choices were intentional R. Vasa, 201228 Lecture Overview - Where are we? •Programs and Operating Systems •What is Android (for a programmer)? •Android - Device and Interaction Overview •Development Tools •Configuring the IDE for Android Development •Using the Logger •Building a Simple App. •Building an Interactive App. R. Vasa, 201229 Development Tools •iOS - XCode IDE + iOS SDK (from Apple) •Offers a robust/powerful Visual UI Builder •Android •Android SDK (Compiler and Emulator) •Eclipse IDE + Android Plug-in •Ant (Build System) •Debugger is powerful •Visual UI Builder (is getting better) R. Vasa, 201230 IDE, SDK and Emulator •IDE - Editor where we write the code •SDK - Tools that will compile our code •Emulator - Runs the code •Emulator runs as a separate application •IDE communicates to this emulator to deploy the code •Debugger (in IDE) also works with emulator
  • 6. R. Vasa, 201231 Eclipse IDE R. Vasa, 201232 Eclipse IDE - Graphical UI Editor R. Vasa, 201233 Android Emulator Permits checking Portrait and Landscape views R. Vasa, 201234 Emulator is nice .. but phone is better •The emulator runs the Android O/S (you can run any version from 1.6 up) •Emulates the phone hardware (like VMWare) •Emulator does not have sensors (e.g. GPS, Gyro, Accelerometer, Cell phone etc.) •Offers ways to simulate sensor data R. Vasa, 201235 Emulators Vs Simulator •iOS offers a simulator •Android has gone down the emulator path •Trade-offs (pros and cons), •Simulators start-up faster, good enough •Emulators allow checking against rel. 1.6 of the O/S easily + closer to phone hardware •Emulators and Simulators cannot mimic real CPU speed, disk speed, network speed etc. (yet!) R. Vasa, 201236 You need a phone (for serious work) •Emulator + Simulators are great to learn with •Commercial (or serious work) - Need Phone •Why? •Mobile apps. are context based (& mobile) •Best way to test them is in their natural environment •Sticky message: “Cannot get users to walk around with an emulator to their head”
  • 7. R. Vasa, 201237 Short Problem 2 (True Story) •An app. to learn Japanese •Built around Flash Card metaphor •Database of 145k words •During development, •Search was super-quick •When tested on phone, •Search was taking too long •Why? R. Vasa, 201238 Lets get our feet wet R. Vasa, 201239 Demo 1 •Run IDE + Create Simple Hello World •Send it to Emulator •Watch what happens on Console View •Send an SMS to the Emulator R. Vasa, 201240 Lecture Overview - Where are we? •Programs and Operating Systems •What is Android (for a programmer)? •Android - Device and Interaction Overview •Development Tools •Configuring IDE for Additional Insight •Using the Logger •Building a Simple App. •Building an Interactive App. R. Vasa, 201241 Developers need more insight... •You need a lot of information when developing apps: Views Need these to see program behaviour (there is no console or MS-DOS prompt) R. Vasa, 201242 What do developers need? •Ability to control the Emulator •Ability to watch the messages between IDE and Emulator (things are not always perfect) •Ability to inspect the processes running on the emulator (or phone) •Ability to watch the threads and resources used by various apps. •Ability to inspect “LOG” messages
  • 8. R. Vasa, 201243 Lecture Overview - Where are we? •Programs and Operating Systems •What is Android (for a programmer)? •Android - Device and Interaction Overview •Development Tools •Configuring IDE for Additional Insight •Using the Logger •Building a Simple App. •Building an Interactive App. R. Vasa, 201244 Can you program without println? •Guess what? We cannot do ... • System.out.println(“I am here!”); •Same issue in iOS and Android •These devices do not have a console •But, we can log messages and watch them •In Android, we can do, • Log.d(“TAG”, “I am here!”); R. Vasa, 201245 Log Messages in Android R. Vasa, 201246 Demo 2 •Logging a message in Android •Multiple levels of logging •Verbose (Log.v(“TAGTAG”, “MethodX Called”); •Debug (Log.d(“BLAH”, “x should be 34” ); •Information (Log.i(“TAGBLAH”, “Socket open”);) •We also have Warning, Error, Fatal, Silent •You can stop log messages from showing • http://developer.android.com/reference/android/util/Log.html (See last few methods .. you may say @#$) R. Vasa, 201247 Logging •Android has Log class, iOS has NSLog •When shipping production/final code -- we should remove these Log methods •iOS -- Use a #define in the make script •Android -- Adjust configuration of ProGuard •What is ProGuard? •Code optimisation/obfuscation tool (we will discuss later...) •Bundled as part of Android SDK R. Vasa, 201248 Concept Recap •Key Buttons -- Home, Back, Menu •IDE, SDK, Emulator •Customising IDE to show additional info. •Logging, Emulator Control, Console •Sending messages to emulator •Use of the Log class
  • 9. R. Vasa, 201249 Lecture Overview - Where are we? •Programs and Operating Systems •What is Android (for a programmer)? •Android - Device and Interaction Overview •Development Tools •Configuring IDE for Additional Insight •Using the Logger •Building a Simple App. •Building an Interactive App. R. Vasa, 201250 Building a Simple App. R. Vasa, 201251 What is involved? •Place UI controls (Text and Image) •Layout the controls •Centre text •Make text large font •Display Image to take up all space R. Vasa, 201252 Knowledge Needed to Build it... •What UI Controls available? •How do we place/layout the UI controls? •How do we set the start screen? •How is the UI Constructed & Destroyed •How exactly do we start/exit the app.? R. Vasa, 201253 Android Offers a number of UI Controls •Offers all standard controls and lot more... Progress These are a small subset of available controls R. Vasa, 201254 Each Screen is an Activity •Android app. is made up of Activities Activity
  • 10. R. Vasa, 201255 Views are Android’s Key UI Building Block •We need two views on the Activity TextView ImageView R. Vasa, 201256 Views are Placed inside a View Group •Different types of View Groups are provided •Each View Group offers a different method to layout the Views View Group(Linear Layout) R. Vasa, 201257 View Groups and Layouts •Android offers the following View Groups, •Linear Layout (Horizontal or Vertical) •Absolute Layout (You set X, Y for each View) •Table Layout (Rows and Columns) •Relative Layout (Position relative to other Views) •Frame Layout (Show only one view at a time) •Scroll View (Permits scrolling of the screen) •View Groups can be nested R. Vasa, 201258 Linear Layout •Two Linear Layouts with 4 Views each •Nested View Groups •Activity contains, •Linear Layout (Vertical) •Linear Layout (Horizontal) •Linear Layout (Vertical) •8 Text Views Source code: http://developer.android.com/resources/tutorials/views/hello-linearlayout.html R. Vasa, 201259 How do we program the Layout? •Layout can be written as an XML file •Layout can be also be written in Java •XML file is easier to start off with Layout Definition XML File R. Vasa, 201260 Concept Recap •We use a View Group to place and control where Views are shown •An App. can have one or more Activities Activity View Group Views (Layout)
  • 11. R. Vasa, 201261 Demo 3 - Linear Layout Control •The layout manager offers control on how much a View will stretch •You can set width / height of each View to, •Match Parent (same width/height as parent) •Fill Parent (cover up parent) •Wrap Content (use only what is needed) •You can use Gravity to position View •You can combine using bit masking •You can also assign weight to Views R. Vasa, 201262 Common Layouts •Recommended Reading: • http://developer.android.com/guide/topics/ui/layout-objects.html •Layouts take some time to learn •Try different layouts and adjust options •Change the background colour of the views to see how the layout works •Remember -- gravity and weight adjustment R. Vasa, 201263 Generated Code, Layout & Resources •How did Australia image get into the App.? •How did we set the text to “Australia”? •Recall: Convention Over Configuration •Layout Defined in /layout/main.xml •Resources Placed in /res/drawable- •String values defined in /values/strings.xml R. Vasa, 201264 Resource Definition •All images (and media) are placed in “res” directory -- within subfolders •Android SDK tools will generate R.java which contains a reference to these resources R. Vasa, 201265 Resources and Generated Code A reference to these gets automatically generated by the Android SDK tools R. Vasa, 201266 Resources and Generated Code Generated Code static final int australia=0x7f020000;
  • 12. R. Vasa, 201267 A Reference to Layout also Generated All References are Integers R. Vasa, 201268 Concept Recap •We use a View Group to place and control where Views are shown •An App. can have one or more Activities Activity View Group Views (Layout) R. Vasa, 201269 How does Activity know about layout? Reference to the layout This is the Activity Class (Android Runtime will Render this Layout) R. Vasa, 201270 Who writes the Activity code? This block of code is created by IDE/SDK when we create new Android projectYou can also write you own -- more on that later in semester R. Vasa, 201271 Activity Creation Method called (by the Application Launcher) when Activity is first created R. Vasa, 201272 Activity Creation - Layout Rendeing Method call will pass the reference to the layout that needs to be rendered on the screen (We will discuss the “rending model” later in the semester)
  • 13. R. Vasa, 201273 What is the “root” Activity? •How does Android know which Activity to create first? Answer: Application Manifest File R. Vasa, 201274 Application Manifest File Activity Name Application Icon Reference Category R. Vasa, 201275 Concept Recap Activity View Group (Layout) Activity Class (Java) Layout Definition (main.xml) R. Vasa, 201276 Layouts and Resources •How did the Australia image get into layout? Layout can refer to resources @drawable is a special tag R. Vasa, 201277 Layouts and String Information •How did we set the text to “Australia” String constant R. Vasa, 201278 Layout and String Information •String information can come from constant values defined in values.xml Context Help shows recommendations
  • 14. R. Vasa, 201279 String Constant Values Defined as a resource Refer using an @string tag R. Vasa, 201280 What is it with the @ tag? •Constant Resources in Android can be referred using the “@” tag in XML layout •Example: @drawable, @string ... @drawable/australia @drawable/bots R. Vasa, 201281 Significance of hdpi/ldpi/mdpi High-Res, 240 dpi screen Low-Res, 120 dpi screen Med-Res, 160 dpi screen Different resolution images R. Vasa, 2012 @ Tag and Multiple Screen Resolutions •Dealing with multiple screen resolutions @drawable/icon Android Runtime decides best resource to use based on hardware capabilities R. Vasa, 201283 Drawable at Different Resolutions High Low Medium R. Vasa, 201284 Drawable at Multiple Resolutions •You should ideally provide these images •Runtime will try to •Scale down Highest resolution available, (or) •But, Low may need scaling up (yuk!) •Images at different resolution must be called the “same name” •SDK convention based tools will select best option
  • 15. R. Vasa, 201285 Lecture Overview - Where are we? •Programs and Operating Systems •What is Android (for a programmer)? •Android - Device and Interaction Overview •Development Tools •Configuring IDE for Additional Insight •Using the Logger •Building a Simple App. •Building an Interactive App. R. Vasa, 201286 Building an App with Simple Interaction •Temperature Conversion (C -> F) R. Vasa, 201287 What is involved? •Place some UI controls •Write a simple function (C -> F) •When Button is clicked, •Use (C->F) function •Pass it the Celsius value •Display the Fahrenheit Value R. Vasa, 201288 Demo 4 •Walk through of (C->F) Conversion App. •Recap: Activity, Layout and Views •Event Handling R. Vasa, 201289 Recommended Reading •What Android Is, Tim Bray • http://www.tbray.org/ongoing/When/201x/2010/11/14/What-Android-Is •Android Developers Guide • http://developer.android.com • Common Layouts • http://developer.android.com/guide/topics/ui/layout-objects.html