ECE 1778: Creative Applications for Mobile Devices

Similar documents
Introduction To Android

ECE Creativity Applications for Mobile Devices January Programming Assignment P1, for Programmers

ECE 1778 Creative Applications for Mobile Devices January Programming Assignment P1, for Programmers

Mobile OS. Symbian. BlackBerry. ios. Window mobile. Android

Android Development Tools = Eclipse + ADT + SDK

Android Programming Lecture 2 9/7/2011

CS 528 Mobile and Ubiquitous Computing Lecture 1b: Introduction to Android. Emmanuel Agu

ANDROID APPS (NOW WITH JELLY BEANS!) Jordan Jozwiak November 11, 2012

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

CS 403X Mobile and Ubiquitous Computing Lecture 3: Introduction to Android Programming Emmanuel Agu

CS 4518 Mobile and Ubiquitous Computing Lecture 2: Introduction to Android. Emmanuel Agu

Programming Concepts and Skills. Creating an Android Project

Android Application Development 101. Jason Chen Google I/O 2008

Welcome, आपक %व गत ) AITI IIT Bombay Class of 2013

Getting Started with Android Development Zebra Android Link-OS SDK Android Studio

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

CS 4518 Mobile and Ubiquitous Computing Lecture 2: Introduction to Android Programming. Emmanuel Agu

CMSC 436 Lab 10. App Widgets and Supporting Different Devices

COLLEGE OF ENGINEERING, NASHIK-4

TalkToMe: A beginner App Inventor app

Required Core Java for Android application development

Configuring the Android Manifest File

The World of Android Development

ECOM 5341 Mobile Computing(Android) Eng.Ruba A. Salamah

Copyright

Android App Development. Mr. Michaud ICE Programs Georgia Institute of Technology

Android. Michael Greifeneder. Image source: Android homepage

Ahmed Ali Big fan of Android

Android App Development

In this Class Mark shows you how to put applications into packages and how to run them through the command line.

Getting Started With Android Feature Flags

ArcGIS Runtime: Building Cross-Platform Apps. Rex Hansen Mark Baird Michael Tims Morten Nielsen

Chapter 2: Android Device Basics

(Refer Slide Time: 0:48)

Android for Ubiquitous Computing Researchers. Andrew Rice University of Cambridge 17-Sep-2011

WYBCS Android Programming (with AppInventor) Family fun day

Programming in Android. Nick Bopp

COMPUTER FOR BEGINNERS

Mobile Application Development - Android

Blackfin Online Learning & Development

Introduction What is Android?

Tablet - is the generic term for a mobile computer with touchscreen display that is operated with fingers or stylus pen instead of a mouse and

Mobile Programming Lecture 1. Getting Started

Lecture 6: Android XML, Inversion of Control, Timers (Handlers), Activity

Mobile Computing Professor Pushpedra Singh Indraprasth Institute of Information Technology Delhi Andriod Development Lecture 09

Code Check TM Software Requirements Specification

TalkToMe: Your first App Inventor app

Introduction to Data Structures

Create new Android project in Android Studio Add Button and TextView to layout Learn how to use buttons to call methods. Modify strings.

Android App Development Workshop

Chapter 2 Welcome App

COMP4521 EMBEDDED SYSTEMS SOFTWARE

Android Development Tutorial. Yi Huang

NBT BANK MOBILE BANKING. How To Guide

Your . A setup guide. Last updated March 7, Kingsford Avenue, Glasgow G44 3EU

Step by Step Guide. A toolkit for parents. Providing you with detailed instructions on each of the features of the ParentZone App.

1 Build Your First App. The way to get started is to quit talking and begin doing. Walt Disney

Contextual Android Education

CS 234/334 Lab 1: Android Jump Start

Installing and Configuring the Voice UPB Bridge updated 1-Jan-2019

SHWETANK KUMAR GUPTA Only For Education Purpose

GETTING STARTED 8 December 2016

Data Management CS 4720 Mobile Application Development

Tcl/Tk on Android. Icon kindly donated by Jorge Raul Moreno

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

Android App Development for Beginners

Software Engineering Large Practical (Android version) 2013/2014

Software Tools. Scott Klemmer Autumn 2009

Copyright 2016 MakeUseOf. All Rights Reserved.

Clickteam Fusion 2.5 Android Bars - Guide CONTENTS. For more information, tutorials, examples and walk-thrus visit the website.

ArcGIS Runtime: Building Cross-Platform Apps. Mike Branscomb Michael Tims Tyler Schiewe

Announcements. 1. Forms to return today after class:

CMISGo Web v16.1 User Guide

Instructions for Casual and Relief Staff

COSC 3P97 Mobile Computing

Installing and Configuring the Voice UPB Bridge updated 22-Jan-2018

Android. (XKE Mars 2009) Erwan Alliaume.

Inspiring Creative Fun Ysbrydoledig Creadigol Hwyl. App Inventor Workbook

Real-Time Embedded Systems

Android Development Crash Course

Scheduling WebEx Meetings

1 YOUR TIMETABLE: VIEWED IN A WEB BROWSER

Programming with Android: System Architecture. Dipartimento di Scienze dell Informazione Università di Bologna

Eventually, you'll be returned to the AVD Manager. From there, you'll see your new device.

BANKVIC APP FREQUENTLY ASKED QUESTIONS

Introduction to Moodle

Fig. 2.2 New Android Application dialog. 2.3 Creating an App 41

CS 3270 Mobile Development for Android Syllabus

Embedded Systems Programming - PA8001

ELET4133: Embedded Systems. Topic 3 Eclipse Tour & Building a First App

Step by Step Guide. A toolkit for parents. Providing you with detailed instructions on each of the features of the ParentZone App.

This tool is actually pretty unique and has evolved over the last 7 years. I have been working with Adobe Connect for quite awhile now and one of the

Getting Started with HCA and UPB

Instructions PLEASE READ (notice bold and underlined phrases)

User Interfaces for Web Sites and Mobile Devices. System and Networks

Getting Started with Zoom

Android Ecosystem and. Revised v4presenter. What s New

Gauthier Picard. Ecole Nationale Supérieure des Mines

UNIT:2 Introduction to Android

FileWave 10 Webinar Q&A

Transcription:

ECE 1778: Creative Applications for Mobile Devices Lecture 2 (1)

Today 1. Logistics/Organization of Course & Project 2. Introduction to Mobile Phone Environment Android Development Toolkit Basic Concepts List and Files 3. Introduction to the App Inventor Environment 4. Introductions and Ideas, continued Other half of class (2)

Welcome Back: Some Logistics If you missed the first lecture: Please see the first lecture on the course website: http://www.eecg.utoronto.ca/~jayar/ece1778/ Look under content Please sign up on the sign up sheets Can t really do much in course if not taking for credit Apper = non-programmer Programmer = capable of learning new environment fast can be both, which means you can program well and come from an application discipline (3)

Have You Started on the Assignment? Programmers: P1 Any issues? Appers: A1 Any issues? This is a lot of work to begin, Necessary so you can do a project! (4)

Assignments Due Next Week Both assignments due next week, 10am, Tuesday January 25 th Submit by email to course TA braiden.brousseau@utoronto.ca If you re doing assignments on iphone, then you must send me a zip file of the full project directory, runnable under XCode 4.2. (5)

Recall: The Goal The goal of this course is to bring together people from different disciplines and to build an interesting/creative mobile application First Priority is to create those inter-disciplinary groups We have more programmers than Appers, I d like to encourage 2 Programmers & 1 Apper to Join forces in groups of 3 Reserve the right to add 1 Apper to a group of 2. Groups of three programmers will not be allowed (6)

Extra Meeting to Form Groups Wednesday January 19 th 6:30pm-7:30pm Sandford Fleming, room B560 After today s finishing introductions Will find a way to help make matches there. (7)

Groups of One Had several requests to do projects in groups of one. Upon consideration, have decided against this, for these reasons: 1. Want the more ambitious projects that are possible with 2 or 3 people 2. Part of the learning of the course is project work in groups. 3. Do not want the higher number of projects the course is big enough already So: you will have to find a partner come on Wednesday night! (8)

Once You Have a Group Send email to: me(jayar@eecg.utoronto.ca) the course TA, Braiden Brouseau (braiden.brousseau@utoronto.ca) Provide: names, student numbers, mobile platform you plan to do the project on one of Android, iphone (others require a special discussion) If thinking about using Tablet If you have your own device you can use (9)

Note for iphone/ipad Users Recall you have to have a mac to do this The University of Toronto has signed up under the University development program, see: http://www.its.utoronto.ca/communication-and-collaboration/ Apple_iOS_Developers_Centre.htm Allows free download to device, which otherwise costs $US 99 Does not allow for app store distribution (I assume, though, if you do pay $99 later, you could do this) (10)

Initial Thoughts/Pointers on Project You should be thinking of ideas for projects, as precursor to finding and forming your group So you can have something to talk about on Wednesday Once you have a group: If Apper in group, Apper needs to give rough idea of discipline All groups: start kicking around ideas Send me an email when you think you have something concrete that you can describe Create a Plan; be sure to use Spiral/Agile approach Begin by making some small version work, and grow, incrementally from there (11)

Programmers:* Mobile Phones and Android Development Some Should still be of interest to Appers (12)

Mobile Phones are Very Small Computers Good: The most portable computers ever With built in sensors Amazing portals to the internet Can also make phone calls! Not so good: Very small screens No/small keyboard Inexact pointing compared to mouse Processor speed and memory are slower/tighter than desktop Must make sure don t interfere with a phone* (13)

An Android Application Is a series of windows (screens) presented to the user Called Activities in Android terminology Program responds to events e.g. screen touches done by the user e.g. shaking phone event-driven programming vs. procedural (14)

Mobile Programming is Event-Driven Who is familiar with Event-Driven Programming? Prevalent in graphical user-interfaces Different from straight-line procedural programming Executed path is more linear processing data in -> out Event-Driven Flow of program determined by a series of user events Sets up a series of user views Waits to respond to events, such as: User actions: button push, finger move, phone shake System notifications time elapsed, phone call, notification from internet Can be more complex because must handle different interacting patterns of events shake + notification (15)

Other Android Terms Services Longer running processes e.g. continuing music play; monitoring web page Intents Messages that notify applications of significant events, e.g. SD card inserted into phone User has arrived within 100 meters of geographic location Content Providers Abstract data storage, made available to multiple applications How applications communicate with each other e.g. contacts or photos are content providers (16)

Projects and Targets To create an Android Application, must first create a project Software directories that contain all of the files relating to the application Key element: The manifest file AndroidManifest.xml Describes what parts of the device you ll use Some require user permission, e.g. GPS Also which version of Android operating system/apis (17)

Android Versions Google rapidly evolves Android: 1.5 May 2009 = 3 1.6 October 2009 = 4 2.0/2.1 January 2010 = 5/6/7 2.2 May 2010 = 8 2.3 December 2010 = 9 3.0 later in 2011 Each version has a name, too, usually has a name, in order: Cupcake, Donut, Éclair, Froyo and Gingerbread and Honeycomb (18)

Project Structure A new Android project has the following structure: AndroidManifest.xml, an XML file describing the application being built and what components activities, services, are being supplied by that application build.xml, an Ant script for compiling the application and installing it on the device default.properties and local.properties, property files used by the Ant build script (19)

Project Structure, cont d assets/, static files you wish packaged with the application for deployment onto the device bin/, holds the compiled application bin/classes/ compiled Java classes bin/classes.dex executable created from compiled Java classes bin/yourapp.ap_ holds your application's resources, packaged as a ZIP file (where yourapp is the name of your application) bin/yourapp-*.apk is the actual Android application (where * varies) gen/, generated source code (by compiler) libs/, third-party Java JARs src/, your Java source code (20)

Resources in Project File res/, "resources - icons, GUI layouts res/drawable/ for images (PNG, JPEG, etc.) res/layout/ for XML-based UI layout specifications res/menu/ for XML-based menu specifications res/raw/ for general-purpose files res/values/ for strings, dimensions, and the like res/xml/ for other general-purpose XML files you wish to ship (21)

APK File The.apk file is the application It is a ZIP archive containing the.dex file, the compiled edition of your resources (resources.arsc), any un-compiled resources (such as what you put in res/raw/) and the AndroidManifest.xml file. (22)

Targets The Target of your application is either an actual phone your want to run it on, or the emulator The emulator is a software program running on the desktop that looks and acts like an Android phone You ll all use it to initially test your programs/apps Emulator is called an Android Virtual Device or AVD There is some work in creating the device, as you have to specify various attributes of the fake phone, such as Size of SD card memory Which version of Android using Size of screen (23)

What Programmers Should Be Learning With Assignment 1: After downloading the various elements of the programming environment Java basics if not already known http://en.wikibooks.org/wiki/java_programming/ Language_Fundamentals Or some basic Java Text I liked John Carter, Using Java Working within Eclipse or, can choose to do everything in command/shell environment lose some of Eclipse good features Running the basic environment Understanding File Types in the Android Project (24)

Then, Closer to the Real Stuff Making a Simple XML Layouts How to arrange Basic Widgets: Labels, Buttons, Images, checkbox, radio buttons Methods common to many of these, e.g. setenable(), isenabled(); Changing colour, text etc. Once handy with this, Assignment P1 is straightforward Eclipse & Emulator are somewhat buggy (25)

Things to Demonstrate Eclipse Startup New Project Creating new Android Virtual Device (AVD) Running a project Placing a single widget XML description Switching between graphic view and XML in Eclipse Properties Connection to Java Code through findviewbyid (R.id.XXX); (26)

Widgets Button, ImageButton Button to press, with special image Textview Basic text label, changeable Imageview Basic picture EditText for entering text fields CheckBox Ticking off an entry Radio Buttons (27)

Useful Methods toggle if a widget is enabled via setenabled() see if it is enabled via isenabled(). One common use pattern for this is to disable some widgets based on a CheckBox or RadioButton selection. give a widget focus via requestfocus() see if it is focused via isfocused(). You might use this in concert with disabling widgets as mentioned above, to ensure the proper widget has the focus once your disabling operation is complete. (28)

Appers*: Google App Inventor *Will still be of interest to Programmers (29)

App Inventor Google App inventor is an attempt by Google to allow people without programming backgrounds to create apps for Android phones It works reasonably well We re going to use it for the Appers to give you a sense of how things work inside the phone You may find it is something you can work with as well It could help you with the layout and plans for the ultimate app your project group will build (30)

Two Screens 1. Designer Where you show what each screen contains Visual Components buttons, pictures Non-Visual: sounds, shaker detection 2. Blocks Editor Write a visual program Blocks can be related to The blocks put down in the designer e.g. When button clicked Play sound Built-in: math, logic, control, (31)

Demonstration Hello Bark (32)

Demo of App Inventor - Designer (33)

Blocks Editor (34)

App Inventor Emulator (35)

No Text While Driving Application Automatically responds to SMS Text message with a message. (36)

Designer (37)

Blocks: Texting Block (38)

Store New Response in Data Base (39)

Initialize the Response on Startup When screen starts (40)

Better: Speak Texts and Locate Uses text-to-speech to read received Texts out loud (41)

Introductions, continued To help in Project Group-forming (42)

Introductions, Continued Last Day, half of the class introduced themselves Let s do the other half, hopefully sitting on the same side Please take notes for people who you think might be compatible partners On Wednesday night, we ll try to put people in some categories to help you explore matches. Don t forget, the priority has to be on matching to Appers (43)

Introduce Yourself, Round 2 1. Name 2. Taking Course for Credit yes, no, maybe 3. What discipline you work in & degree sought 4. What your thesis topic is (if doing thesis) 5. If you work, where. 6. Why you re taking this course 7. What idea you have for an app. (44)

Don t Forget: Meeting to Form Groups Wednesday January 19 th (Tomorrow) 6:30pm-7:30pm Sandford Fleming, room B560 After today s finishing introductions Will find a way to help make matches there Sandford Fleming is building south of Con Hall B560 is in basement, south side In middle of Galbraith-Sandford Fleming block (45)