Mobile Device Architecture CS 4720 Mobile Application Development

Similar documents
Why Android? Why Android? Android Overview. Why Mobile App Development? 20-Nov-18

Ahmed Ali Big fan of Android

I'm Andy Glover and this is the Java Technical Series of. the developerworks podcasts. My guest is Brian Jakovich. He is the

The World of Android Development

Cloud platforms. T Mobile Systems Programming

PAPER ON ANDROID ESWAR COLLEGE OF ENGINEERING SUBMITTED BY:

TABLE OF CONTENTS 1. INTRODUCTION DEFINITIONS Error! Bookmark not defined REASON FOR ISSUE 2 3. RELATED DOCUMENTS 2 4.

Mobile Middleware Course. Mobile Platforms and Middleware. Sasu Tarkoma

(p t y) lt d. 1995/04149/07. Course List 2018

Android Overview. Francesco Mercaldo, PhD

Developer s overview of the Android platform

Android System Architecture. Android Application Fundamentals. Applications in Android. Apps in the Android OS. Program Model 8/31/2015

MongoDB Web Architecture

Web Hosting. Important features to consider

How the Web Works. Chapter 1. Modified by Marissa Schmidt Pearson

Chapter 3. Technology Adopted. 3.1 Introduction

Mobile Phone Monitoring System For Android Operating System

Now SMS/MMS Android Modem Quick Start Guide

IJRDTM Kailash ISBN No Vol.17 Issue

Model-View-Control Pattern for User Interactive Systems

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

A Review of Kids Tutor

Unlocking Your ILS Data Mobile access via handheld devices

Real Life Web Development. Joseph Paul Cohen

IMPORTANT WORDS AND WHAT THEY MEAN

Android App Development Workshop

Announcements. How to build a UML model. Rational Unified Process. How RUP builds a model. UI design. Architect

ICANN Start, Episode 1: Redirection and Wildcarding. Welcome to ICANN Start. This is the show about one issue, five questions:

Simple AngularJS thanks to Best Practices

Model-View-Controller

Tomasz Szumlak WFiIS AGH 23/10/2017, Kraków

CSC Introduction to Computers and Their Applications

IMPORTANCE OF A MINISTRY WEBSITE

Digital Convergence Vision and Architecture. Timo Poikolainen Vice President, Marketing Technology Platforms Nokia

Delivering Rich Internet Applications with Ajax4jsf

Speech 2 Part 2 Transcript: The role of DB2 in Web 2.0 and in the IOD World

Mobile Computing. Juha-Matti Liukkonen, Nov 17, 2010

today what is this course about? what is this course about? Welcome to CSC309! Programming on the Web APRIL 05

Mobile Application Ecosystems

Mobile Station Execution Environment (MExE( MExE) Developing web applications for PDAs and Cellphones. WAP (Wireless Application Protocol)

Software Design and Analysis CSCI 2040

Android App Development. Ahmad Tayeb

Life, the Universe, and CSS Tests XML Prague 2018

Matthew Harris Senior Project Proposal getnote The Mobile Application

Scott Weiss & Richard Martin April, 2003

All India Council For Research & Training

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement.

Services: Monitoring and Logging. 9/16/2018 IST346: Info Tech Management & Administration 1

Building modern enterprise applications from scratch: lessons learned DOAG 2014 Dr. Clemens Wrzodek

Instructor s Notes Web Data Management Web Client/Server Concepts. Web Data Management Web Client/Server Concepts

Disclaimer: This e-book doesn t tend to express hatred against any smartphone company or operating system. We believe that every company holds a

Android App Development

Team 4: Unicommerce. Team Members

Properties of High Quality Software. CSE219, Computer Science III Stony Brook University

How to build a UML model

Feature Comparison Checklist

Android App Development. Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore

17655: Discussion: The New z/os Interface for the Touch Generation

Rapid Application Development

Programming The Mobile Web Ebooks Free

Oracle SQL Developer & REST Data Services

Common Architectural Styles & Patterns

WEB SECURITY: WEB BACKGROUND

INTRODUCTION. 2

** Pre-Sell Page Secrets **

Oracle Fusion Middleware 11g: Build Applications with ADF I

Comparative Analysis of Smartphone Operating system Android Apple ios and Windows

(C) Global Journal of Engineering Science and Research Management

Mobile Technologies. Types of Apps

Discovering the Mobile Safari Platform

Wireless Access Protocol(WAP) architecture

CLIENT SERVER ARCHITECTURE:

Grand Computers Club New Technologies SIG April 18, 2019

Etanova Enterprise Solutions

1. Implementation of Inheritance with objects, methods. 2. Implementing Interface in a simple java class. 3. To create java class with polymorphism

Mobile Web Today. Lots of people think Mobile Web will be next big thing However, huge barriers: How to make existing content work on such devices?

Informationshanteringssystem - LIMS

Tools to Develop New Linux Applications

This presentation is for informational purposes only and may not be incorporated into a contract or agreement.

MOBILE BANKING. Self Service FAQs

Assignment #3 CSCI 201 Spring % of course grade Title Weathermeister Back-End API Integration

Evaluation Guide for ASP.NET Web CMS and Experience Platforms

Developing corporate mobile applications. An alternative approach to native development

Matrix Logic WirelessDMS Suite Introduction

WYBCS Android Programming (with AppInventor) Family fun day

Android App Development

Integration of distributed data sources for mobile services

Head-to-head: Which will win for your business?

Project Overview. Readings and References. Initial project motivation. Opportunity. References. CSE 403, Winter 2003 Software Engineering

JAVASCRIPT JQUERY AJAX FILE UPLOAD STACK OVERFLOW

Beginners Guide to. Sencha Touch. Joshua Morony

Computer Principles and Components 1

Administrivia. Minute Essay From 4/11

Say goodbye to the pains of Ajax. Yibo

BCSWomen Android programming (with AppInventor) Family fun day World record attempt

Chapter 2: Android Device Basics

"Web Age Speaks!" Webinar Series

Android - open source mobile platform

PubWC Bathroom Review App By Clay Jacobs Advisor: Alexander Dekhtyar Computer Science Department California Polytechnic State University 2017

RoadSync Java MIDP 2.0 Manual

Transcription:

Mobile Device Architecture Mobile Application Development

The Way Back Time When a phone was a phone Plus a story! 2

Oh yes this was a phone The Motorola DynaTAC 8000X 1983 13 x 1.75 x 3.5 2.5 pounds $3,995 + Monthly Fee + Pay per minute Then there was the bag phone 3

Nokia Invents Mobile Phone Gaming! Obviously I m talking about the N-Gage! Okay, remember Snake on the old Nokia phones? Other early apps include: basic contact apps, Pong, and Tetris 4

Third-Party Apps Begin Mobile phones stopped being a novelty Batteries got better, form factors improved, coverage improved, plans were better The handset manufacturers didn t want to write all the applications for these new phones However they didn t want to open up their platform The first mobile web platform was born 5

WAP Wireless Application Protocol Basically it s a stripped-down HTTP that was meant to be better at transmitting over the unreliable mobile network WAP used WML instead of HTML used a card mentality Two popular WAP sites? CNN and ESPN 6

SMS In-App Purchases Before Apps 7

When did it all change? With the Internet full of images and media And other handheld devices selling like gangbusters (Game Boy) What changed with phones? Phones started running known operating systems (Windows CE and Linux) Now bigger players were involved, and handset manufactures decided to open up 8

And what s happened since? The mobile market is seriously fractured Who do you develop for? How do you test for EVERY phone? Which market works best? How do you port your app between platforms? Which tools do you use? Can you use? 9

And Now Google The Open Handset Alliance is an attempt to effectively get everyone on the same page Open Source Familiar Environments and Tools Secure OS (Linux w/ app signing) No Royalties or Developer Fees 10

The Three-Tiered Architecture 11

The Three-Tiered Architecture For a web application The browser + dynamically generated HTML is the presentation layer Middleware files (function-specific PHP, Java servlets on Tomcat) contain the business logic The database server is the data layer 12

It's not news to you The concepts of the three-tiered architecture apply to many design scenarios Keep the presentation separate so it's lightweight, easier to maintain, and can be tested separately Keep the logic separate so you can change the logic as needed without having to change the presentation too much Keep the data separate because you should NEVER build a system based on the current data values 13

Model-View-Controller This is the definition of what MVC is The MVC pattern maps: Identifies what the user is asking for Loads a particular resource Displays the pertinent info about that resource back to the user To Model, Controller, View (in that order) 14

MVC 15

MVC 16

Controller The role of the controller is basically traffic cop It takes the request from the user and (with the assistance of the server and routing rules) turns it into a method call of sorts It finds the appropriate model to load It finds the appropriate view to load It returns the whole thing back to the user 17

Model The model is the representation of the data This may or may not be directly linked to a database (but often is in larger apps) A model is often translated directly into a DB table, with the columns as its attributes Think class definition w/ DB backend Often contains relationship rules (a Student has many Classes, for instance) 18

View The closest thing to what you ve been dealing with so far is the view It s effectively an HTML template that will be populated with the appropriate data from the loaded model It often has PHP (or whatever) embedded in it All UI components go here 19

Putting it all Together So, if you were building a blog, what might some of the models be? What are the resources that should have addresses to them? How do they relate to each other? 20

Non-shocker of the day We need to consider the same things for a mobile architecture Why? What added concerns do we have when we consider mobile applications? Presentation Layer concerns Logic Layer concerns Data Layer concerns 21

Mobile Architectures Rich Mobile Architecture Business and some data services on the phone itself Good for apps that have to run off the grid Thin Mobile Architecture Most business and all data services on the server Good for apps that require phone services, but does require Internet connectivity Rich Internet Application Eschews the use of any phone resources other than a browser Good for apps that can run on anything with a browser 22

Which are we doing? Rich Internet Application Well, it's certainly not this one why not? Rich app or Thin app? Do both follow the three-tiered architecture structure? Why or why not? 23

Rich Mobile Architecture 24

The Presentation Layer Remember: it's a phone! Simple = good People have different sized fingers User actions call functions which execute features; user actions!= features Phones can have varying amounts of power/resources Phones can be on or off the cellular grid at any point 25

Presentation Approach Remember your client type Determine how you will present data in a coherent, unified method Determine how you will guard against untrusted input Ensure you have factored out your business logic Determine how you will pass data between layers (i.e. how you will call the service, how you will get more info about a building, etc) 26

The Business Layer For the most part, these are your web services and related functionalities Each of your three web services you are using 27

Business Approach Identify FEATURES that will exist at this level Build components that support a feature's execution Hide implementation details from the presentation layer Determine if (how) you will cache information on the device Map out use cases 28

The Data Layer This will be your module that talks to the database Will be intertwined with the business layer to some degree 29

Data Approach For each feature, determine what data is required Build SQL queries around the features Ensure that you are using prepared statements to guard against incorrect data entry (or injection) Determine how you will manage connections Determine if you will batch up commands into one big command 30

Your Approach: Your Mobile Architecture Android/iOS UI which calls your business logic cope that connects to some data store (local or remote) 31

The Android Architecture 32

Your Main Components Activities represent a single screen with a UI Services represents a process running in the background Content Provider a link back to the data Broadcast Receiver listens for system-wide messages to respond to Application a set of Activities that make up a cohesive unit Intent a message to be passed 33

The Activity 34

The Intent 35