SlideShare a Scribd company logo
Chapter 2: Factors in Developing Mobile
Applications
2
Mobile OS
• is the operating system that controls a mobile device similar in
principle to an operating system such as Windows, Mac OS, or Linux
that controls a desktop computer or laptop.
3
Types of Mobile OS
4
Types of Mobile OS
• Symbian
• License : open source
• Company: Nokia.
• CPU Architecture: ARM
• Programmed in: C++
• Application store: Symbian Horizon,Ovistore(10000+)
• Package manager: Nokia Ovi Suite
• Other: multi-touch, easily affordable cost
5
Types of Mobile OS
• Android
License : open source
Company: Open Handset Alliance(Google).
CPU Architecture: ARM, x86
Programmed in: C, C++, Java
Application store: Android market(100,000+)
Package manager: APK
Other: multi-touch, Linux
6
Types of Mobile OS
• BlackBerry RIM OS
License : Proprietary
Company: Research in motion (RIM).
CPU Architecture: ARM
Programmed in: Java
Application store: Blackberry App World(30000+)
Package manager: Blackberry Desktop Manager
Other: not multi-touch, push email service
7
Types of Mobile OS
• Apple iOS
License : Proprietary
Company: Apple.
CPU Architecture: ARM
Programmed in: C, C++, Objective-C
Application store: Apple App Store
Package manager: iTunes
Other: Mac OS X, multi-touch, for iphone ,ipod touch ipad, Apple Tv only
8
Types of Mobile OS
• Windows Mobile
License : Proprietary
Company: Microsoft.
CPU Architecture: ARM
Programmed in: C++
Application store: Windows Marketplace for Mobile
Package manager: Windows Mobile Device Center/
ActiveSync
Other: multi-touch, Windows CE
9
Types of Mobile OS
• Others
Palm OS- mobile operating system initially developed by Palm
 webOS – Mobile operating system from HP/Palm
Bada - Mobile operating system developed by Samsung Electronics
MeeGo OS – from Nokia and Intel (open source, GPL)
10
Mobile Software Development
• Challenges
Different Operating Systems.
Different Screen Size.
• are a challenge even on the same OS
Different Input methods.
• Keyboard (Keypad – Keyboard – Soft Keyboard),
• TrackBall/Joystick, Pen (Handwriting), Touch,
• Microphone (Voice Command), Camera (Image Recognition), GPS
Different Hardware Architectures.
• most dominant architectures in the market of CPUs is the ARM
architecture
Limited computing capabilities.
Lack of good language support
Security
• Always shared medium
11
Mobile Software Development
• Programming Languages
C/C++, .NET, Java ME, FlashLite, SilverLight Mobile
JavaFX, HTML/WML/JAVASCRIPT/AJAX
• selection is same reasons for using them on the desktop.
• Some languages are for web,
• some are for performance,
• some for portability,
• some of skills and preferences.
12
Mobile Software Development
• Solutions to Challenges
Multi Modal Interface.
• E.g Combining the face and speech recognition together helps to increase speech
recognition accuracy and lower word error rate
Simplified Algorithms (Speed ).
Data Compression (Size & Speed).
Programming Language Selection.
Screen independent graphical coordinates or layout managers.
Unicode Support
Encryption and authentication
Requirements How to Install Android Studio
• Android Studio has the following requirements to be matched for smooth running
and performance:
For Windows OS
• Microsoft Windows 7/8/10 (32-bit or 64-bit)
• 4 GB RAM minimum, 8 GB RAM recommended
• 2 GB of available disk space minimum, 4 GB Recommended (500 MB for IDE +
1.5 GB for Android SDK and emulator system image)
• 1280 x 800 minimum screen resolution
• JDK 8 or higher
• For accelerated emulator: 64-bit operating system and Intel processor with support
for Intel VT-x, Intel EM64T (Intel 64), and Execute Disable (XD) Bit functionality
For Mac OS
• Mac OS X 10.8.5 or higher
• 4 GB RAM minimum, 8 GB RAM recommended
• 2 GB of available disk space minimum, 4 GB Recommended (500 MB for IDE + 1.5
GB for Android SDK and emulator system image)
• 1280 x 800 minimum screen resolution
• JDK 8 or higher
For Linux OS
• GNOME or KDE desktop: Tested on Ubuntu 12.04, Precise Pangolin (64-bit
distribution capable of running 32-bit applications)
• 4-bit distribution capable of running 32-bit applications
• GNU C Library (glibc) 2.11 or later
• 4 GB RAM minimum, 8 GB RAM recommended
• 2 GB of available disk space minimum,4 GB Recommended (500 MB for IDE + 1.5
GB for Android SDK and emulator system image)
• 1280 x 800 minimum screen resolution
• JDK 8 or higher
• For accelerated emulator: Intel processor with support for Intel VT-x, Intel EM64T
(Intel 64), and Execute Disable (XD) Bit functionality, or AMD processor with support
for AMD Virtualization (AMD-V)
Mobile App Development Frameworks in
2024
• Mobile App Development Framework is a library that offers the required fundamental
structure to create mobile applications for a specific environment.
• In short, it acts as a layout to support mobile app development.
• There are various advantages of Mobile App Development frameworks such as cost-
effectiveness, efficiency, and many more.
• Mobile application frameworks can be classified majorly into 3 categories: Native
Apps, Web Apps & Hybrid Apps.
• Native Apps: A Native App is an application specifically designed for a particular
platform or device.
• Web Apps: A Web App is concerned with an application that is designed to deliver web
pages on different web platforms for any device.
• Hybrid Apps: A Hybrid App is a combination of both native & web applications. It can
be developed for any platform from a single code base.
several leading Mobile Application Development Frameworks in 2024
1. React Native:-created by Facebook, is an open-source framework that develop mobile applications
for Android & iOS platforms.
2. Flutter:-developed by Google, is a UI toolkit to build native applications for mobile apps, desktop & web platforms.
3. Ionic:- developed in 2013, is an open-source framework that allows you to build cross-platform for mobile apps using web
technologies like HTML, CSS & JavaScript.
4. Xamarin is acquired by Microsoft, is based on .Net and allows you to build native applications for Android, iOS,
and Windows platforms.
5. Mobile Angular UI is an open-source mobile application development framework that merges the implementation of
the Bootstrap and Angular frameworks.
6. PhoneGap is used mobile app development frameworks and purchased by Adobe Systems in 2011, is an open-source
framework that allows you to build cross-platform applications using languages such as HTML5, CSS3, and JavaScript.
7. Appcelerator Titanium:- developed by Appcelerator Inc, is an open-source development framework that allows you to
build mobile apps for all platforms.
8. JQuery Mobile is a cross-platform development framework that is used to build mobile and web applications for various
devices.
9. Native Script is an open-source framework that is used to build native mobile applications
using Angular, Vue.js, TypeScript, or JavaScript.
18
Android GUI components
Familiarize with the main types of GUI components
Concepts:
Layouts
Widgets
Menus
Compiled By Mr.Abdisa L 19
Linear Layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
<TextView
android:text="red"
android:gravity="center_horizontal"
[…………………….]
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
<TextView
android:text="row one"
android:textSize="15pt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<TextView
android:text="row two"
android:textSize="15pt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
[…………………………………..]
</LinearLayout>
</LinearLayout>
http://developer.android.com/resources/tutorials/views/hello-linearlayout.html
Compiled By Mr.Abdisa L 20
Relative Layout
• <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/label"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Type here:"/>
<EditText
android:id="@+id/entry"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/editbox_background"
android:layout_below="@id/label"/>
<Button
android:id="@+id/ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/entry"
android:layout_alignParentRight="true"
android:layout_marginLeft="10dip"
android:text="OK" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/ok"
android:layout_alignTop="@id/ok"
android:text="Cancel" />
</RelativeLayout>
Compiled By Mr.Abdisa L 21
Table Layout
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1">
<TableRow>
<TextView
android:layout_column="1"
android:text="Open..."
android:padding="3dip" />
<TextView
android:text="Ctrl-O"
android:gravity="right"
android:padding="3dip" />
</TableRow>
<TableRow>
<TextView
android:layout_column="1"
android:text="Save..."
android:padding="3dip" />
<TextView
android:text="Ctrl-S"
android:gravity="right"
android:padding="3dip" />
</TableRow>
<TableRow>
<TextView
android:layout_column="1"
android:text="Save As..."
android:padding="3dip" />
<TextView
android:text="Ctrl-Shift-S"
android:gravity="right"
android:padding="3dip" />
</TableRow>
<View
android:layout_height="2dip"
android:background="#FF909090" />
[………………………]
</TableLayout>
Compiled By Mr.Abdisa L 22
TabLayout
• One activity per tab
• Create new Project
HelloTabs
Compiled By Mr.Abdisa L 23
Fill in the OnCreate() method
public class ArtistsActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView textview = new TextView(this);
textview.setText("This is the Artists tab");
setContentView(textview);
}
}
Quick and dirty
“by hand”
like in
HelloWorld
Copy and Paste ArtistsActivity into two more activities:
 AlbumsActivity and
 SongsActivity
Compiled By Mr.Abdisa L 24
Create ./res/drawable/ic_tab_artists.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- When selected, use grey -->
<item android:drawable="@drawable/ic_tab_artists_grey"
android:state_selected="true" />
<!-- When not selected, use white-->
<item android:drawable="@drawable/ic_tab_artists_white" />
</selector>
StateListDrawable object
that displays different
images for different
states of a View
25
Main Layout
• <?xml version="1.0" encoding="utf-8"?>
<TabHost
xmlns:android="http://schemas.android.com/apk/res/androi
d"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp" />
</LinearLayout>
</TabHost>
Compiled By Mr.Abdisa L
Compiled By Mr.Abdisa L 26
OnCreate() for HelloTabs
(main activity)
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Resources res = getResources(); // Resource object to get Drawables
TabHost tabHost = getTabHost(); // The activity TabHost
TabHost.TabSpec spec; // Resusable TabSpec for each tab
Intent intent; // Reusable Intent for each tab
// Create an Intent to launch an Activity for the tab (to be reused)
intent = new Intent().setClass(this, ArtistsActivity.class);
// Initialize a TabSpec for each tab and add it to the TabHost
spec = tabHost.newTabSpec("artists").setIndicator("Artists",
res.getDrawable(R.drawable.ic_tab_artists))
.setContent(intent);
tabHost.addTab(spec);
// Do the same for the other tabs
[………………………]
tabHost.setCurrentTab(2);
}
Main Activity is
a TabActivity –
has a TabHost
Builder
mapping the
resources to
the tab
Select Tab 2
Compiled By Mr.Abdisa L 27
Run it!
Compiled By Mr.Abdisa L 28
List View
• List of scrollable items
• Application will inherit from
ListActivity rather than Activity
• Create ./res/layout/list_item.xml
• Layout for each item
Compiled By Mr.Abdisa L 29
public class HelloListView extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, COUNTRIES));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
Toast.LENGTH_SHORT).show();
}
});
}
}
Override the OnCreate method
Setup the list for
this application,
with this layout
and this content
Enables filtering
by keyboard
Small Toast
showing the text
in the clicked item
for a short time
Compiled By Mr.Abdisa L 30
Run it!
Compiled By Mr.Abdisa L 31
Date Picker
• Will display a dialogbox
allowing to change the date
Compiled By Mr.Abdisa L 32
Layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/an
droid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView android:id="@+id/dateDisplay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""/>
<Button android:id="@+id/pickDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Change the date"/>
</LinearLayout>
Compiled By Mr.Abdisa L 33
OnCreate( )
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// capture our View elements
mDateDisplay = (TextView) findViewById(R.id.dateDisplay);
mPickDate = (Button) findViewById(R.id.pickDate);
// add a click listener to the button
mPickDate.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
showDialog(DATE_DIALOG_ID);
}
});
// get the current date
final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);
// display the current date (this method is below)
updateDisplay();
}
Compiled By Mr.Abdisa L 34
updateDisplay( )
// updates the date in the TextView
private void updateDisplay() {
mDateDisplay.setText(
new StringBuilder()
// Month is 0 based so add 1
.append(mMonth + 1).append("-")
.append(mDay).append("-")
.append(mYear).append(" "));
}
Compiled By Mr.Abdisa L 35
DatePickerDialog.OnDateSetListener( )
// the callback received when the user "sets" the date in the dialog
private DatePickerDialog.OnDateSetListener mDateSetListener =
new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
mYear = year;
mMonth = monthOfYear;
mDay = dayOfMonth;
updateDisplay();
}
};
Compiled By Mr.Abdisa L 36
onCreateDialog( )
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DATE_DIALOG_ID:
return new DatePickerDialog(this,
mDateSetListener,
mYear, mMonth, mDay);
}
return null;
}
Compiled By Mr.Abdisa L 37
Run it!
Compiled By Mr.Abdisa L 38
• Custom Buttons
• Edit Text
• Check Boxes
• Radio Boxes
• Toggle Button
• Rating Bar
Compiled By Mr.Abdisa L 39
Custom Button
• <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/android_pressed"
android:state_pressed="true" />
<item android:drawable="@drawable/android_focused"
android:state_focused="true" />
<item android:drawable="@drawable/android_normal" />
</selector>
• <Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:background="@drawable/android_button" />
• final Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// Perform action on clicks
Toast.makeText(HelloFormStuff.this, "Beep Bop", Toast.LENGTH_SHORT).show();
}
});
Compiled By Mr.Abdisa L 40
Edit Text
• <EditText
android:id="@+id/edittext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
• final EditText edittext = (EditText) findViewById(R.id.edittext);
edittext.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
// If the event is a key-down event on the "enter" button
if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
(KeyEvent.KEYCODE_ENTER)) {
// Perform action keyCode == on key press
Toast.makeText(HelloFormStuff.this, edittext.getText(), Toast.LENGTH_SHORT).show();
return true;
}
return false;
}
});
Compiled By Mr.Abdisa L 41
Check Box
• <CheckBox android:id="@+id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="check it out" />
• final CheckBox checkbox = (CheckBox) findViewById(R.id.checkbox);
checkbox.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// Perform action on clicks, depending on whether it's now checked
if (((CheckBox) v).isChecked()) {
Toast.makeText(HelloFormStuff.this, "Selected", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(HelloFormStuff.this, "Not selected", Toast.LENGTH_SHORT).show();
}
}
});
Compiled By Mr.Abdisa L 42
Radio Button
• <RadioGroup
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RadioButton android:id="@+id/radio_red"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Red" />
<RadioButton android:id="@+id/radio_blue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Blue" />
</RadioGroup>
• private OnClickListener radio_listener = new OnClickListener() {
public void onClick(View v) {
// Perform action on clicks
RadioButton rb = (RadioButton)
Toast.makeText(HelloFormStuff.this, rb.getText(), Toast.LENGTH_SHORT).show();
}
};
• final RadioButton radio_red = (RadioButton) findViewById(R.id.radio_red);
final RadioButton radio_blue = (RadioButton) findViewById(R.id.radio_blue);
radio_red.setOnClickListener(radio_listener);
radio_blue.setOnClickListener(radio_listener);
Compiled By Mr.Abdisa L 43
Toggle Button
• <ToggleButton android:id="@+id/togglebutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textOn="Vibrate on"
android:textOff="Vibrate off"/>
• final ToggleButton togglebutton = (ToggleButton) findViewById(R.id.togglebutton);
togglebutton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// Perform action on clicks
if (togglebutton.isChecked()) {
Toast.makeText(HelloFormStuff.this, "Checked", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(HelloFormStuff.this, "Not checked", Toast.LENGTH_SHORT).show();
}
}
});
Compiled By Mr.Abdisa L 44
Rating Bar
• <RatingBar android:id="@+id/ratingbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:stepSize="1.0"/>
• final RatingBar ratingbar = (RatingBar) findViewById(R.id.ratingbar);
ratingbar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
Toast.makeText(HelloFormStuff.this, "New Rating: " + rating, Toast.LENGTH_SHORT).show();
}
});
Compiled By Mr.Abdisa L 45
/res/layout/main.xml
• <?xml version="1.0" encoding="utf-8"?>
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
WebView
• Making a window for viewing web pages
Compiled By Mr.Abdisa L 46
OnCreate( )
• WebView mWebView;
• public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("http://www.google.com");
}
Compiled By Mr.Abdisa L 47
AndroidManifest
• <uses-permission android:name="android.permission.INTERNET" />
• <activity android:name=".HelloWebView" android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar">
Compiled By Mr.Abdisa L 48
Run it!

More Related Content

PPTX
Tk2323 lecture 1 introduction to mobile application
PDF
TK2323 Lecture 1 - Introduction to Mobile Application.pdf
PPTX
Mobile Application Development Unit 1.pptx
PDF
Android App Development 01 : Getting Start
PDF
Mse july13 (1/3)
PPTX
Mobile Application Development Handout by Tariku
PPTX
Android Development: Approach for Agile Teams
PPTX
Android before getting started
Tk2323 lecture 1 introduction to mobile application
TK2323 Lecture 1 - Introduction to Mobile Application.pdf
Mobile Application Development Unit 1.pptx
Android App Development 01 : Getting Start
Mse july13 (1/3)
Mobile Application Development Handout by Tariku
Android Development: Approach for Agile Teams
Android before getting started

Similar to Chapter 2-IS dept.pptxhjvcbtffffffffffffffffffffffffffff6 (20)

PPTX
Day: 1 Introduction to Mobile Application Development (in Android)
PPTX
Introduction To Mobile Application Development
PDF
Simon Bates, Manifesto Digital - Mobile Application Development: Past, Presen...
PPTX
developementofmobileapplication-160412025313 (1).pptx
PDF
Overlook to the Future of Mobile Application Development- TechGropse.pdf
PPTX
Development of Mobile Application -PPT
PPTX
Top 11 Mobile App Development Frameworks
PPT
"double quotes"
PPT
Android overview
PPT
Android overview 123
PPT
Android overview
PPT
Android overview
PPT
Android overview
PPT
From Deepa's client
PPTX
MOBILE APPLICATIONS DEVELOPMENT AND SERVICES.pptx
PDF
Chapter 1 - The Computer of The Future is in Your Hand.pdf
PDF
Which technology is best for mobile app development
PPTX
Introduction to Android Development: Before Getting Started
PDF
Developers Guide To The Galaxy 8th edition
PPSX
Android Introduction
Day: 1 Introduction to Mobile Application Development (in Android)
Introduction To Mobile Application Development
Simon Bates, Manifesto Digital - Mobile Application Development: Past, Presen...
developementofmobileapplication-160412025313 (1).pptx
Overlook to the Future of Mobile Application Development- TechGropse.pdf
Development of Mobile Application -PPT
Top 11 Mobile App Development Frameworks
"double quotes"
Android overview
Android overview 123
Android overview
Android overview
Android overview
From Deepa's client
MOBILE APPLICATIONS DEVELOPMENT AND SERVICES.pptx
Chapter 1 - The Computer of The Future is in Your Hand.pdf
Which technology is best for mobile app development
Introduction to Android Development: Before Getting Started
Developers Guide To The Galaxy 8th edition
Android Introduction
Ad

Recently uploaded (20)

PPTX
NOI Hackathon - Summer Edition - GreenThumber.pptx
PDF
LDMMIA Reiki Yoga Workshop 15 MidTerm Review
PPTX
Information Texts_Infographic on Forgetting Curve.pptx
PPTX
Open Quiz Monsoon Mind Game Prelims.pptx
PDF
Piense y hagase Rico - Napoleon Hill Ccesa007.pdf
PDF
5.Universal-Franchise-and-Indias-Electoral-System.pdfppt/pdf/8th class social...
PDF
Landforms and landscapes data surprise preview
PPTX
How to Manage Loyalty Points in Odoo 18 Sales
PDF
Sunset Boulevard Student Revision Booklet
PDF
Electrolyte Disturbances and Fluid Management A clinical and physiological ap...
PPTX
Strengthening open access through collaboration: building connections with OP...
PPTX
family health care settings home visit - unit 6 - chn 1 - gnm 1st year.pptx
PPTX
Introduction and Scope of Bichemistry.pptx
DOCX
UPPER GASTRO INTESTINAL DISORDER.docx
PPTX
Odoo 18 Sales_ Managing Quotation Validity
PDF
What Is Coercive Control? Understanding and Recognizing Hidden Abuse
PPTX
Congenital Hypothyroidism pptx
PDF
LDMMIA Reiki Yoga S2 L3 Vod Sample Preview
PPTX
Skill Development Program For Physiotherapy Students by SRY.pptx
PPTX
Cardiovascular Pharmacology for pharmacy students.pptx
NOI Hackathon - Summer Edition - GreenThumber.pptx
LDMMIA Reiki Yoga Workshop 15 MidTerm Review
Information Texts_Infographic on Forgetting Curve.pptx
Open Quiz Monsoon Mind Game Prelims.pptx
Piense y hagase Rico - Napoleon Hill Ccesa007.pdf
5.Universal-Franchise-and-Indias-Electoral-System.pdfppt/pdf/8th class social...
Landforms and landscapes data surprise preview
How to Manage Loyalty Points in Odoo 18 Sales
Sunset Boulevard Student Revision Booklet
Electrolyte Disturbances and Fluid Management A clinical and physiological ap...
Strengthening open access through collaboration: building connections with OP...
family health care settings home visit - unit 6 - chn 1 - gnm 1st year.pptx
Introduction and Scope of Bichemistry.pptx
UPPER GASTRO INTESTINAL DISORDER.docx
Odoo 18 Sales_ Managing Quotation Validity
What Is Coercive Control? Understanding and Recognizing Hidden Abuse
Congenital Hypothyroidism pptx
LDMMIA Reiki Yoga S2 L3 Vod Sample Preview
Skill Development Program For Physiotherapy Students by SRY.pptx
Cardiovascular Pharmacology for pharmacy students.pptx
Ad

Chapter 2-IS dept.pptxhjvcbtffffffffffffffffffffffffffff6

  • 1. Chapter 2: Factors in Developing Mobile Applications
  • 2. 2 Mobile OS • is the operating system that controls a mobile device similar in principle to an operating system such as Windows, Mac OS, or Linux that controls a desktop computer or laptop.
  • 4. 4 Types of Mobile OS • Symbian • License : open source • Company: Nokia. • CPU Architecture: ARM • Programmed in: C++ • Application store: Symbian Horizon,Ovistore(10000+) • Package manager: Nokia Ovi Suite • Other: multi-touch, easily affordable cost
  • 5. 5 Types of Mobile OS • Android License : open source Company: Open Handset Alliance(Google). CPU Architecture: ARM, x86 Programmed in: C, C++, Java Application store: Android market(100,000+) Package manager: APK Other: multi-touch, Linux
  • 6. 6 Types of Mobile OS • BlackBerry RIM OS License : Proprietary Company: Research in motion (RIM). CPU Architecture: ARM Programmed in: Java Application store: Blackberry App World(30000+) Package manager: Blackberry Desktop Manager Other: not multi-touch, push email service
  • 7. 7 Types of Mobile OS • Apple iOS License : Proprietary Company: Apple. CPU Architecture: ARM Programmed in: C, C++, Objective-C Application store: Apple App Store Package manager: iTunes Other: Mac OS X, multi-touch, for iphone ,ipod touch ipad, Apple Tv only
  • 8. 8 Types of Mobile OS • Windows Mobile License : Proprietary Company: Microsoft. CPU Architecture: ARM Programmed in: C++ Application store: Windows Marketplace for Mobile Package manager: Windows Mobile Device Center/ ActiveSync Other: multi-touch, Windows CE
  • 9. 9 Types of Mobile OS • Others Palm OS- mobile operating system initially developed by Palm  webOS – Mobile operating system from HP/Palm Bada - Mobile operating system developed by Samsung Electronics MeeGo OS – from Nokia and Intel (open source, GPL)
  • 10. 10 Mobile Software Development • Challenges Different Operating Systems. Different Screen Size. • are a challenge even on the same OS Different Input methods. • Keyboard (Keypad – Keyboard – Soft Keyboard), • TrackBall/Joystick, Pen (Handwriting), Touch, • Microphone (Voice Command), Camera (Image Recognition), GPS Different Hardware Architectures. • most dominant architectures in the market of CPUs is the ARM architecture Limited computing capabilities. Lack of good language support Security • Always shared medium
  • 11. 11 Mobile Software Development • Programming Languages C/C++, .NET, Java ME, FlashLite, SilverLight Mobile JavaFX, HTML/WML/JAVASCRIPT/AJAX • selection is same reasons for using them on the desktop. • Some languages are for web, • some are for performance, • some for portability, • some of skills and preferences.
  • 12. 12 Mobile Software Development • Solutions to Challenges Multi Modal Interface. • E.g Combining the face and speech recognition together helps to increase speech recognition accuracy and lower word error rate Simplified Algorithms (Speed ). Data Compression (Size & Speed). Programming Language Selection. Screen independent graphical coordinates or layout managers. Unicode Support Encryption and authentication
  • 13. Requirements How to Install Android Studio • Android Studio has the following requirements to be matched for smooth running and performance: For Windows OS • Microsoft Windows 7/8/10 (32-bit or 64-bit) • 4 GB RAM minimum, 8 GB RAM recommended • 2 GB of available disk space minimum, 4 GB Recommended (500 MB for IDE + 1.5 GB for Android SDK and emulator system image) • 1280 x 800 minimum screen resolution • JDK 8 or higher • For accelerated emulator: 64-bit operating system and Intel processor with support for Intel VT-x, Intel EM64T (Intel 64), and Execute Disable (XD) Bit functionality
  • 14. For Mac OS • Mac OS X 10.8.5 or higher • 4 GB RAM minimum, 8 GB RAM recommended • 2 GB of available disk space minimum, 4 GB Recommended (500 MB for IDE + 1.5 GB for Android SDK and emulator system image) • 1280 x 800 minimum screen resolution • JDK 8 or higher
  • 15. For Linux OS • GNOME or KDE desktop: Tested on Ubuntu 12.04, Precise Pangolin (64-bit distribution capable of running 32-bit applications) • 4-bit distribution capable of running 32-bit applications • GNU C Library (glibc) 2.11 or later • 4 GB RAM minimum, 8 GB RAM recommended • 2 GB of available disk space minimum,4 GB Recommended (500 MB for IDE + 1.5 GB for Android SDK and emulator system image) • 1280 x 800 minimum screen resolution • JDK 8 or higher • For accelerated emulator: Intel processor with support for Intel VT-x, Intel EM64T (Intel 64), and Execute Disable (XD) Bit functionality, or AMD processor with support for AMD Virtualization (AMD-V)
  • 16. Mobile App Development Frameworks in 2024 • Mobile App Development Framework is a library that offers the required fundamental structure to create mobile applications for a specific environment. • In short, it acts as a layout to support mobile app development. • There are various advantages of Mobile App Development frameworks such as cost- effectiveness, efficiency, and many more. • Mobile application frameworks can be classified majorly into 3 categories: Native Apps, Web Apps & Hybrid Apps. • Native Apps: A Native App is an application specifically designed for a particular platform or device. • Web Apps: A Web App is concerned with an application that is designed to deliver web pages on different web platforms for any device. • Hybrid Apps: A Hybrid App is a combination of both native & web applications. It can be developed for any platform from a single code base.
  • 17. several leading Mobile Application Development Frameworks in 2024 1. React Native:-created by Facebook, is an open-source framework that develop mobile applications for Android & iOS platforms. 2. Flutter:-developed by Google, is a UI toolkit to build native applications for mobile apps, desktop & web platforms. 3. Ionic:- developed in 2013, is an open-source framework that allows you to build cross-platform for mobile apps using web technologies like HTML, CSS & JavaScript. 4. Xamarin is acquired by Microsoft, is based on .Net and allows you to build native applications for Android, iOS, and Windows platforms. 5. Mobile Angular UI is an open-source mobile application development framework that merges the implementation of the Bootstrap and Angular frameworks. 6. PhoneGap is used mobile app development frameworks and purchased by Adobe Systems in 2011, is an open-source framework that allows you to build cross-platform applications using languages such as HTML5, CSS3, and JavaScript. 7. Appcelerator Titanium:- developed by Appcelerator Inc, is an open-source development framework that allows you to build mobile apps for all platforms. 8. JQuery Mobile is a cross-platform development framework that is used to build mobile and web applications for various devices. 9. Native Script is an open-source framework that is used to build native mobile applications using Angular, Vue.js, TypeScript, or JavaScript.
  • 18. 18 Android GUI components Familiarize with the main types of GUI components Concepts: Layouts Widgets Menus
  • 19. Compiled By Mr.Abdisa L 19 Linear Layout <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"> <TextView android:text="red" android:gravity="center_horizontal" […………………….] </LinearLayout> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"> <TextView android:text="row one" android:textSize="15pt" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"/> <TextView android:text="row two" android:textSize="15pt" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"/> […………………………………..] </LinearLayout> </LinearLayout> http://developer.android.com/resources/tutorials/views/hello-linearlayout.html
  • 20. Compiled By Mr.Abdisa L 20 Relative Layout • <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:id="@+id/label" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Type here:"/> <EditText android:id="@+id/entry" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@android:drawable/editbox_background" android:layout_below="@id/label"/> <Button android:id="@+id/ok" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/entry" android:layout_alignParentRight="true" android:layout_marginLeft="10dip" android:text="OK" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toLeftOf="@id/ok" android:layout_alignTop="@id/ok" android:text="Cancel" /> </RelativeLayout>
  • 21. Compiled By Mr.Abdisa L 21 Table Layout <?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:stretchColumns="1"> <TableRow> <TextView android:layout_column="1" android:text="Open..." android:padding="3dip" /> <TextView android:text="Ctrl-O" android:gravity="right" android:padding="3dip" /> </TableRow> <TableRow> <TextView android:layout_column="1" android:text="Save..." android:padding="3dip" /> <TextView android:text="Ctrl-S" android:gravity="right" android:padding="3dip" /> </TableRow> <TableRow> <TextView android:layout_column="1" android:text="Save As..." android:padding="3dip" /> <TextView android:text="Ctrl-Shift-S" android:gravity="right" android:padding="3dip" /> </TableRow> <View android:layout_height="2dip" android:background="#FF909090" /> [………………………] </TableLayout>
  • 22. Compiled By Mr.Abdisa L 22 TabLayout • One activity per tab • Create new Project HelloTabs
  • 23. Compiled By Mr.Abdisa L 23 Fill in the OnCreate() method public class ArtistsActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView textview = new TextView(this); textview.setText("This is the Artists tab"); setContentView(textview); } } Quick and dirty “by hand” like in HelloWorld Copy and Paste ArtistsActivity into two more activities:  AlbumsActivity and  SongsActivity
  • 24. Compiled By Mr.Abdisa L 24 Create ./res/drawable/ic_tab_artists.xml <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- When selected, use grey --> <item android:drawable="@drawable/ic_tab_artists_grey" android:state_selected="true" /> <!-- When not selected, use white--> <item android:drawable="@drawable/ic_tab_artists_white" /> </selector> StateListDrawable object that displays different images for different states of a View
  • 25. 25 Main Layout • <?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/androi d" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dp"> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dp" /> </LinearLayout> </TabHost> Compiled By Mr.Abdisa L
  • 26. Compiled By Mr.Abdisa L 26 OnCreate() for HelloTabs (main activity) public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); Resources res = getResources(); // Resource object to get Drawables TabHost tabHost = getTabHost(); // The activity TabHost TabHost.TabSpec spec; // Resusable TabSpec for each tab Intent intent; // Reusable Intent for each tab // Create an Intent to launch an Activity for the tab (to be reused) intent = new Intent().setClass(this, ArtistsActivity.class); // Initialize a TabSpec for each tab and add it to the TabHost spec = tabHost.newTabSpec("artists").setIndicator("Artists", res.getDrawable(R.drawable.ic_tab_artists)) .setContent(intent); tabHost.addTab(spec); // Do the same for the other tabs [………………………] tabHost.setCurrentTab(2); } Main Activity is a TabActivity – has a TabHost Builder mapping the resources to the tab Select Tab 2
  • 27. Compiled By Mr.Abdisa L 27 Run it!
  • 28. Compiled By Mr.Abdisa L 28 List View • List of scrollable items • Application will inherit from ListActivity rather than Activity • Create ./res/layout/list_item.xml • Layout for each item
  • 29. Compiled By Mr.Abdisa L 29 public class HelloListView extends ListActivity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, COUNTRIES)); ListView lv = getListView(); lv.setTextFilterEnabled(true); lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // When clicked, show a toast with the TextView text Toast.makeText(getApplicationContext(), ((TextView) view).getText(), Toast.LENGTH_SHORT).show(); } }); } } Override the OnCreate method Setup the list for this application, with this layout and this content Enables filtering by keyboard Small Toast showing the text in the clicked item for a short time
  • 30. Compiled By Mr.Abdisa L 30 Run it!
  • 31. Compiled By Mr.Abdisa L 31 Date Picker • Will display a dialogbox allowing to change the date
  • 32. Compiled By Mr.Abdisa L 32 Layout <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/an droid" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/dateDisplay" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=""/> <Button android:id="@+id/pickDate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Change the date"/> </LinearLayout>
  • 33. Compiled By Mr.Abdisa L 33 OnCreate( ) protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // capture our View elements mDateDisplay = (TextView) findViewById(R.id.dateDisplay); mPickDate = (Button) findViewById(R.id.pickDate); // add a click listener to the button mPickDate.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { showDialog(DATE_DIALOG_ID); } }); // get the current date final Calendar c = Calendar.getInstance(); mYear = c.get(Calendar.YEAR); mMonth = c.get(Calendar.MONTH); mDay = c.get(Calendar.DAY_OF_MONTH); // display the current date (this method is below) updateDisplay(); }
  • 34. Compiled By Mr.Abdisa L 34 updateDisplay( ) // updates the date in the TextView private void updateDisplay() { mDateDisplay.setText( new StringBuilder() // Month is 0 based so add 1 .append(mMonth + 1).append("-") .append(mDay).append("-") .append(mYear).append(" ")); }
  • 35. Compiled By Mr.Abdisa L 35 DatePickerDialog.OnDateSetListener( ) // the callback received when the user "sets" the date in the dialog private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() { public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { mYear = year; mMonth = monthOfYear; mDay = dayOfMonth; updateDisplay(); } };
  • 36. Compiled By Mr.Abdisa L 36 onCreateDialog( ) @Override protected Dialog onCreateDialog(int id) { switch (id) { case DATE_DIALOG_ID: return new DatePickerDialog(this, mDateSetListener, mYear, mMonth, mDay); } return null; }
  • 37. Compiled By Mr.Abdisa L 37 Run it!
  • 38. Compiled By Mr.Abdisa L 38 • Custom Buttons • Edit Text • Check Boxes • Radio Boxes • Toggle Button • Rating Bar
  • 39. Compiled By Mr.Abdisa L 39 Custom Button • <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/android_pressed" android:state_pressed="true" /> <item android:drawable="@drawable/android_focused" android:state_focused="true" /> <item android:drawable="@drawable/android_normal" /> </selector> • <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:background="@drawable/android_button" /> • final Button button = (Button) findViewById(R.id.button); button.setOnClickListener(new OnClickListener() { public void onClick(View v) { // Perform action on clicks Toast.makeText(HelloFormStuff.this, "Beep Bop", Toast.LENGTH_SHORT).show(); } });
  • 40. Compiled By Mr.Abdisa L 40 Edit Text • <EditText android:id="@+id/edittext" android:layout_width="fill_parent" android:layout_height="wrap_content"/> • final EditText edittext = (EditText) findViewById(R.id.edittext); edittext.setOnKeyListener(new OnKeyListener() { public boolean onKey(View v, int keyCode, KeyEvent event) { // If the event is a key-down event on the "enter" button if ((event.getAction() == KeyEvent.ACTION_DOWN) && (KeyEvent.KEYCODE_ENTER)) { // Perform action keyCode == on key press Toast.makeText(HelloFormStuff.this, edittext.getText(), Toast.LENGTH_SHORT).show(); return true; } return false; } });
  • 41. Compiled By Mr.Abdisa L 41 Check Box • <CheckBox android:id="@+id/checkbox" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="check it out" /> • final CheckBox checkbox = (CheckBox) findViewById(R.id.checkbox); checkbox.setOnClickListener(new OnClickListener() { public void onClick(View v) { // Perform action on clicks, depending on whether it's now checked if (((CheckBox) v).isChecked()) { Toast.makeText(HelloFormStuff.this, "Selected", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(HelloFormStuff.this, "Not selected", Toast.LENGTH_SHORT).show(); } } });
  • 42. Compiled By Mr.Abdisa L 42 Radio Button • <RadioGroup android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical"> <RadioButton android:id="@+id/radio_red" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Red" /> <RadioButton android:id="@+id/radio_blue" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Blue" /> </RadioGroup> • private OnClickListener radio_listener = new OnClickListener() { public void onClick(View v) { // Perform action on clicks RadioButton rb = (RadioButton) Toast.makeText(HelloFormStuff.this, rb.getText(), Toast.LENGTH_SHORT).show(); } }; • final RadioButton radio_red = (RadioButton) findViewById(R.id.radio_red); final RadioButton radio_blue = (RadioButton) findViewById(R.id.radio_blue); radio_red.setOnClickListener(radio_listener); radio_blue.setOnClickListener(radio_listener);
  • 43. Compiled By Mr.Abdisa L 43 Toggle Button • <ToggleButton android:id="@+id/togglebutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textOn="Vibrate on" android:textOff="Vibrate off"/> • final ToggleButton togglebutton = (ToggleButton) findViewById(R.id.togglebutton); togglebutton.setOnClickListener(new OnClickListener() { public void onClick(View v) { // Perform action on clicks if (togglebutton.isChecked()) { Toast.makeText(HelloFormStuff.this, "Checked", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(HelloFormStuff.this, "Not checked", Toast.LENGTH_SHORT).show(); } } });
  • 44. Compiled By Mr.Abdisa L 44 Rating Bar • <RatingBar android:id="@+id/ratingbar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:numStars="5" android:stepSize="1.0"/> • final RatingBar ratingbar = (RatingBar) findViewById(R.id.ratingbar); ratingbar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() { public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) { Toast.makeText(HelloFormStuff.this, "New Rating: " + rating, Toast.LENGTH_SHORT).show(); } });
  • 45. Compiled By Mr.Abdisa L 45 /res/layout/main.xml • <?xml version="1.0" encoding="utf-8"?> <WebView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/webview" android:layout_width="fill_parent" android:layout_height="fill_parent"/> WebView • Making a window for viewing web pages
  • 46. Compiled By Mr.Abdisa L 46 OnCreate( ) • WebView mWebView; • public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mWebView = (WebView) findViewById(R.id.webview); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.loadUrl("http://www.google.com"); }
  • 47. Compiled By Mr.Abdisa L 47 AndroidManifest • <uses-permission android:name="android.permission.INTERNET" /> • <activity android:name=".HelloWebView" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar">
  • 48. Compiled By Mr.Abdisa L 48 Run it!

Editor's Notes

  • #6: Push e-mail is used to describe e-mail systems that provide an always-on capability, in which new e-mail is actively transferred (pushed) as it arrives
  • #10: some with both touch and keyboard
  • #11: JavaFX(graphics, media, web services)