Responsive Webapps & Mobile Apps - Emory Universitycengiz/.../slides/...intro.pdf · (Some slides...

Post on 24-Mar-2020

4 views 0 download

Transcript of Responsive Webapps & Mobile Apps - Emory Universitycengiz/.../slides/...intro.pdf · (Some slides...

Responsive Webapps & Mobile AppsMobile-friendly CSS frameworks and introduction to mobile apps

CS 370 SE Practicum, Cengiz Günay

(Some slides courtesy of Eugene Agichtein and the Internets)

CS 370, Günay (Emory) Responsive Webapps & Mobile Apps Spring 2014 1 / 17

Agenda

Warm-up project:

See submission instructions on Piazza.Due Tuesday 2/18

Today:

“Responsive” webapps: work both on desktop and mobileNative mobile apps: iOS and Android

CS 370, Günay (Emory) Responsive Webapps & Mobile Apps Spring 2014 2 / 17

Agenda

Warm-up project:

See submission instructions on Piazza.Due Tuesday 2/18

Today:

“Responsive” webapps: work both on desktop and mobileNative mobile apps: iOS and Android

CS 370, Günay (Emory) Responsive Webapps & Mobile Apps Spring 2014 2 / 17

Entry/Exit Surveys

Exit survey: Django & MVCExplain each of the MVC components in Django.Overall, why is Django a populer web framework? What are its majoradvantages compared to other web frameworks you know?

Entry survey: Mobile WebWhich one do you use more on your mobile device: manys apps ormostly use the browser?Argue whether it is better to make mobile-aware (responsive) webappsversus mobile-OS specific apps (iOS/Android).

Submit survey on Blackboard

CS 370, Günay (Emory) Responsive Webapps & Mobile Apps Spring 2014 3 / 17

Responsive web design

From Wikipedia:

“[RWD] is a Web design approach aimed at crafting sites toprovide an optimal viewing experience—easy reading andnavigation with a minimum of resizing, panning, andscrolling—across a wide range of devices (from mobile phones todesktop computer monitors).”

Uses principles:Proportion-based grids: Page element sizing to be in relative unitslike percentages, rather than absolute units (e.g., pixels).Flexible images: sized in relative units to containing element.CSS3 media queries (extension of @media rule): CSS style rulesbased on characteristics of the device (e.g., browser width).

CS 370, Günay (Emory) Responsive Webapps & Mobile Apps Spring 2014 4 / 17

Responsive web design

From Wikipedia:

“[RWD] is a Web design approach aimed at crafting sites toprovide an optimal viewing experience—easy reading andnavigation with a minimum of resizing, panning, andscrolling—across a wide range of devices (from mobile phones todesktop computer monitors).”

Uses principles:Proportion-based grids: Page element sizing to be in relative unitslike percentages, rather than absolute units (e.g., pixels).Flexible images: sized in relative units to containing element.CSS3 media queries (extension of @media rule): CSS style rulesbased on characteristics of the device (e.g., browser width).

CS 370, Günay (Emory) Responsive Webapps & Mobile Apps Spring 2014 4 / 17

Responsive CSS framework (1): Bootstrap

CS 370, Günay (Emory) Responsive Webapps & Mobile Apps Spring 2014 5 / 17

Responsive CSS framework (1): Bootstrap

CS 370, Günay (Emory) Responsive Webapps & Mobile Apps Spring 2014 5 / 17

Responsive CSS framework (1): Bootstrap

CS 370, Günay (Emory) Responsive Webapps & Mobile Apps Spring 2014 5 / 17

Responsive CSS framework (2): Foundation

CS 370, Günay (Emory) Responsive Webapps & Mobile Apps Spring 2014 6 / 17

Responsive CSS framework (2): Foundation

CS 370, Günay (Emory) Responsive Webapps & Mobile Apps Spring 2014 6 / 17

Responsive CSS framework (2): Foundation

CS 370, Günay (Emory) Responsive Webapps & Mobile Apps Spring 2014 6 / 17

Responsive CSS usage: Bootstrap example

In the HTML head, include CSS, e.g.:

<!-- Latest compiled and minified CSS --><link rel="stylesheet" href="// netdna.bootstrapcdn.com/

bootstrap /3.1.1/ css/bootstrap.min.css">

Use their CSS templates, e.g., specify viewport:

<meta name="viewport" content="width=device -width , initial -scale=1">

Use components (e.g., icons, buttons, drop-down menus, etc.)Also has Javascript (jQuery plugins – will talk about this later)Your website will look clean (example)

CS 370, Günay (Emory) Responsive Webapps & Mobile Apps Spring 2014 7 / 17

Why use responsive web and not mobile apps?

Responsive web:One solution for allServer+client solution can be faster than mobile app.iOS and Android have peculiarities (licensing, language, versions,compatibility)

Mobile apps:Usually faster to startResident on mobile device and can be activated based on time, orevent (e.g., GPS location)Mobile markets make it easy to advertise

CS 370, Günay (Emory) Responsive Webapps & Mobile Apps Spring 2014 8 / 17

Why use responsive web and not mobile apps?

Responsive web:One solution for allServer+client solution can be faster than mobile app.iOS and Android have peculiarities (licensing, language, versions,compatibility)

Mobile apps:Usually faster to startResident on mobile device and can be activated based on time, orevent (e.g., GPS location)Mobile markets make it easy to advertise

CS 370, Günay (Emory) Responsive Webapps & Mobile Apps Spring 2014 8 / 17

iOS Development

Andri Yadi @andri_yadi

Universitas Islam Negeri Syarif Hidayatullah Jakarta, May 4, 2011

Seminar War Of Smartphone Operating System

The History of Mobile Devices

1988 2007 2010 ?

Motorolla 4500x! iPhone! iPad!

Before iPhone! After iPhone!

iOS devices

http://developer.apple.com/ios

200,000,000 iOS devices shipped

372,141 Apps 414 Apps/Day 80,297 Publishers 10 bn downloads

Source: http://148apps.biz/app-store-metrics - May 3, 2011

Required Stu!s

iOS 4.3 SDK + Xcode 4

For debugging to device & deployment to AppStore

Notice something?

iOS development = $$$Requires:

Purchase developer licenseOwn Mac computer (Xcode only runs on Mac)Own mobile device (need to get license for development)

Let’s keep going. . .

CS 370, Günay (Emory) Responsive Webapps & Mobile Apps Spring 2014 11 / 17

Notice something?

iOS development = $$$Requires:

Purchase developer licenseOwn Mac computer (Xcode only runs on Mac)Own mobile device (need to get license for development)

Let’s keep going. . .

CS 370, Günay (Emory) Responsive Webapps & Mobile Apps Spring 2014 11 / 17

Objective-C C + OOP " C++

Model-View-Controller

Memory Management

Reference counting

No garbage collector support (yet)

Autorelease Pool

Goodies

Cocoa Touch Foundation, UIKit, Multi-Touch Gestures

Graphics Core Graphics, Core Animation, Core Image, Core Text, OpenGL ES

Audio & Video Media player, Core Audio & OpenAL, iPod library, HTTP Live Streaming

CoreData Database, Object-Relational Mapping, optimized for mobile - > 1 mln objects store

Networking Bonjour, Peer to peer, WebKit framework, BSD socket

Core Location & MapKit

Multitasking New kind of multitasking. Available in iOS 4.

External display support

AirPrint Wireless printing to AirPrint-enabled printers. Hack available

Push & Local Notification

Game Center Social gaming platform

iAd Integrated advertising platform

In-App Purchase Payment inside applications

iOS development summary

All good things aside, iOS development has a lot of red tape.Approval for developer licenseMarket licenseDeployment license

At Emory students can get free developer licenses, but they have to:Use library computers/own a MacRegister with ITObtain and install license (everytime you use library computer)

CS 370, Günay (Emory) Responsive Webapps & Mobile Apps Spring 2014 12 / 17

Apple Battles “Resurgent” Rivals

iOS market share in decline as of Nov 2013 (TechCruch):

New platforms on the rise:AndroidWindows

CS 370, Günay (Emory) Responsive Webapps & Mobile Apps Spring 2014 14 / 17

Apple Battles “Resurgent” Rivals

iOS market share in decline as of Nov 2013 (TechCruch):

New platforms on the rise:AndroidWindows

CS 370, Günay (Emory) Responsive Webapps & Mobile Apps Spring 2014 14 / 17

History founded by open handset alliance (OHA) by a group in 2003 by ANDY ROBIN(danger) RICH MINER (co founder of wildfire communication) NICK SEARS (vpt-moblie) CHRIS WHITE(design and interface developed at web TV).

ANDROID logo designed by California based graphic designer IRINA BLOCK.

Google lacked financially and latter brought in android in 2005.

GOOGLE reveled in 2007 with first mobile android powered phone which was HTC DREAM was sold in October 22nd 2008.

ANDROID is a open source and Google releases the code under Apache license.

October 2012 approximately 700000 apps were available for downloads.

x

Estimated applications downloaded at Google play were 25 billion.

Android took over Symbian OS in 2010.

Android has world wide Smartphone market share of 75% with 500 million devices activated.

1.3 millions activations per day.

Each major release is named in alphabetical order with international bakery items names e.g. cupcake, ice cream etc.

Google has its own mobile named NEXUS collaborated with HTC.

What is ANDROID• Google's Android is  an  open-source  platform  that's currently available on a wide variety of smart phones.

• Android is a software stack consist

    Of a part of operating system in 

   {Linux kernel} libraries, framework,

   and applications. 

Introduction Versions

versions Codename

API Distribution

1.5 Cupcake 3 0.05%

1.6 Donut 4 0.2%

2.1 Éclair 7 1.9%

2.2 Froyo 8 7.5%

2.32.3.22.3.32.3.7

Gingerbread

9

10

0.2%

43.9%

3.13.2

Honeycomb

1213

0.3%0.9%

4.0.34.0.4

Ice cream sandwich

15 28.6%

4.14.2

Jelly bean 1617

14.9%1.6%

Upcoming Key lime pie

Second qtr ???????

Getting started

• Installing all necessary tools to build apps.

• Jdk • Eclipse • Adt pulgins kit • New way of installing with ADT

bundle which includes eclipse + Adt+ platforms.

Notice something?

Android development = free!No red tape! Requires:

No licenseUses open source softwareCan run on any mobile device (no need to get deployment license)

Let’s keep going. . .

CS 370, Günay (Emory) Responsive Webapps & Mobile Apps Spring 2014 16 / 17

Notice something?

Android development = free!No red tape! Requires:

No licenseUses open source softwareCan run on any mobile device (no need to get deployment license)

Let’s keep going. . .

CS 370, Günay (Emory) Responsive Webapps & Mobile Apps Spring 2014 16 / 17

ANDROID ARCHITECTURE

The software stack is split into Four Layers:

• The application layer

• The application framework

• The libraries and runtime

• The kernel

LIFE CYCLE

Mobile development summary

Easiest is to develop responsive webappsIf needed can make native mobile app:

I iOS: objective-CI Android: JavaI Windows: C#, VB.Net :-C~I Cross-platform: PhoneGap, AirplaySDK, WidgetPad, . . .

You are free to choose either for your main projectNext class I will introduce the project timeline

CS 370, Günay (Emory) Responsive Webapps & Mobile Apps Spring 2014 17 / 17

Mobile development summary

Easiest is to develop responsive webappsIf needed can make native mobile app:

I iOS: objective-CI Android: JavaI Windows: C#, VB.Net :-C~I Cross-platform: PhoneGap, AirplaySDK, WidgetPad, . . .

You are free to choose either for your main projectNext class I will introduce the project timeline

CS 370, Günay (Emory) Responsive Webapps & Mobile Apps Spring 2014 17 / 17