34
WC2012 Programming Mobile Devices Intermediate AppInventor Many examples in this section from http://turing.cs.trincoll.edu/~ram/cpsc110/tutorials / And http://www.appinventorblocks.com/home

WC2012 Programming Mobile Devices

  • Upload
    lolita

  • View
    45

  • Download
    1

Embed Size (px)

DESCRIPTION

WC2012 Programming Mobile Devices. Intermediate AppInventor. Many examples in this section from http://turing.cs.trincoll.edu/~ram/cpsc110/tutorials / And http:// www.appinventorblocks.com /home. Impressions so far?. A couple to try. From I “heart” my smartphone handout - PowerPoint PPT Presentation

Citation preview

Page 1: WC2012 Programming Mobile Devices

WC2012Programming

Mobile Devices

Intermediate AppInventor

Many examples in this section fromhttp://turing.cs.trincoll.edu/~ram/cpsc110/tutorials/Andhttp://www.appinventorblocks.com/home

Page 2: WC2012 Programming Mobile Devices

Impressions so far?

Page 3: WC2012 Programming Mobile Devices

A couple to try

From I “heart” my smartphone handout Lesson 6 Tossing a coin Lesson 7 Wiff-Waff game

These are from http://www.royalsoced.org.uk/1035_Mo

bileAppDevelopment.html

Page 4: WC2012 Programming Mobile Devices

So What is AppInventor Good For?

Intro to programming concepts Logical design/critical thinking Intro to Object concepts, event

handling and other common areas of difficulty

Intro to Mobile App development Starting point on a migration through a

whole class in App Development Summer Camps for HS students Other?

Page 6: WC2012 Programming Mobile Devices

List and Loops

Repeating operations is important and also using lists of data

Consider this simple app which will display an increasingly long list of numbers each time NEW LIST is pressed

Page 7: WC2012 Programming Mobile Devices

Lists and Loops

Page 8: WC2012 Programming Mobile Devices

Lists and Loops

Lets look at the whole thing

Page 9: WC2012 Programming Mobile Devices

ForRange loops

Page 10: WC2012 Programming Mobile Devices

ForEach Loop

Page 11: WC2012 Programming Mobile Devices

Try Challenge 1: Magic 8 Ball using a list

Page 12: WC2012 Programming Mobile Devices

Orientation Sensor

Measure which way the phone is pointed and its movement.

Working with the sensors requires math and understanding of reading parameters. For Orientation Sensor: Yaw is the compass heading in degrees, range 0 to

360 ( 0 = North, 90 = East, 180 = South, 270 = West )

Pitch indicates the tilt of the top of the device, with range -90 to 90. Positive values indicate that the bottom of the device is tilted up and negative values indicate the top of the device is tilted up.

Roll indicates the side to side tilt of the device, with range -90 to 90. Positive values indicate that the left side of the device is tilted up and negative values indicate the right side of the device is tilted up.

There are also Angle and Magnitude attributes you can use

Page 13: WC2012 Programming Mobile Devices

Challenge

Try Challenge 2 Bouncing Ball Try Challenge 3 Breakout

Page 14: WC2012 Programming Mobile Devices

Persistent Storage On The Phone using TinyDB

Persistent on your phone and tied to App

Can be cleared on phone Won’t be “persistent” while testing in

emulator once you close the emulator “In the Cloud” using TinyWebDB

Stored in a cloud DB using web services

By default, the TinyWebDB component stores data on a test service provided by App Inventor, limited to 1000 entries

Can create your own web service as well on the appspot.com server provided by Google

Page 15: WC2012 Programming Mobile Devices

TinyDB Basics

Local Storage that is persistent can be placed in a database using the TinyDB component. This persists until you delete it, even beyond running of the app

These work well in conjunctions with lists TinyDB stores data in a tag-value

scheme. The tag is used as a key by which the data can be retrieved. For example:

Tag Value

One This is the first string

Two This is another string

Page 16: WC2012 Programming Mobile Devices

Storing in TinyDB

Tag is always text, but value can be text, number, string or even a list

Page 17: WC2012 Programming Mobile Devices

Retrieving in TinyDB

Example to plot points of interest on the canvas. Later we will add a map to the canvas

DBList Example

This will also illustrate using a list picker

Page 18: WC2012 Programming Mobile Devices

Video Tutorials on Storage

http://android.jwtyler.com/?page_id=7 Other good tutorials here also

Another good tutorial source https://sites.google.com/site/stevozip

/ Other good resources

http://www.tair.info/

Page 19: WC2012 Programming Mobile Devices

Location Sensor Global Positioning System (GPS)

GPS data comes from the Global Positioning System, a satellite system maintained by the US government. To get a GPS reading your phone must have an unobstructed line-of-sight to three satellits.

A GPS reading consists of three data: latitude, longitude, and altitude. Your latitude is your distance in degrees north or south of the equator, with north positive and south negative. The range is -90 to +90.

Your longitude is your distance east or west of the Prime Meridian, which goes through Greenwich England. East coordinates have positive values and west coordinates are negative. The values range from -180 to +180. Values on the Meridian are 0.

Android's Location Sensor

There are three ways that your Android phone can determine its location:

GPS Satellites are accurate to within a few meters, but they only work out doors.

WiFi: If you are on a WiFi network, the phone can use the location of the WiFi hot spot as its location.

Cell Towers can also be used to locate the phone based on a calculation of the phone's proximity to known cell phone towers.

1 deg of latitude is approx 69.047 miles or 111.12 km

1 deg of longitude is 69.047 x Cos (current lat)

Page 20: WC2012 Programming Mobile Devices

Using the Location Sensor

Page 21: WC2012 Programming Mobile Devices

Location sensor methods

Page 22: WC2012 Programming Mobile Devices

Enable/Disable Location Sensor

Page 23: WC2012 Programming Mobile Devices

Simple Lab Example

Lesson 5 Virtual Map Tour Uses Location sensor Also introduces the ActvityStarter

This lets one app start up another app

Page 24: WC2012 Programming Mobile Devices

Location Services – one example

Where’s my Car? Source on Wiki Uses location services to record a

“remembered” spot and then help you get from current location to remembered spot.

Uses map services as well Assignment variations

Breadcrumb app that logs all location changes and can show route on map

Hike/Walk/Jog tracker that shows legs of a journey with approx distances and total distance

Page 25: WC2012 Programming Mobile Devices

Compass and Orientation Sensor Example

Where is North Example

Could you make this better? Improve graphics Provide more useful info like a

north/south line marker Turn it into a “guess where north is”

game?

Page 26: WC2012 Programming Mobile Devices

A little More Difficult Challenge

Write an Android application that uses the location sensor in an interesting way. Here are some ideas:

a. HELP ME! Write an Android app that sends a text to someone with your latitude and longitude in the message. Use the text.join block to build the message. Warning: Only send the message when the user clicks a button, and only enable the button when the latitude and longitude are set. Test this application in class, then play hide and go seek: have one person go somewhere on campus, and see if the other person can find them.

b. TRAIL ME! Write an app that records the addresses the sensor identifies as you walk around. The app can list them on the phone display and also either twitter them or use tinywebdb to record them. Record the time of each address as well using Clock.Now.

Page 27: WC2012 Programming Mobile Devices

Using Communication Tools

Let’s look at a couple of texting applications TextGroup2 Tutorial

Source available on Wiki How do I get it and load it?

Uses local persistent storage (i.e. TinyDB) Texting Raffle

Users send text message to apps phone number and are put in list. When the Luck button is pressed on of the numbers is selected at random to win a prize

What changes could we make to these?

Page 28: WC2012 Programming Mobile Devices

Automatic Responses Detect when a text message comes in

and send an automatic response Like your email autoresponder No Text While Driving Tutorial

Source on Wiki Try a variation like

Custom responses for particular phone numbers

Custom responses based on location

Variations on a theme… No Texting While Driving 2

Reads the message to you so you don’t miss anything

Also on Wiki

Page 29: WC2012 Programming Mobile Devices

Web Databases The main tool for persistent data “in the cloud” is TinyWebDB By default, the TinyWebDB component stores data on the

Google cloud on a server whose URL is http://appinvtinywebdb.appspot.com.

The problem with storing your data there is that it is accessible to all App Inventor developers. Other developers could overwrite your data.

Fortunately, it is relatively easy to create your own TinyWebDB database service using some code that Prof. Wolber of the University of San Francisco has created. You don't even need to know how to code-- you can just download some sample code and then upload it to the "cloud" with Google's App Engine. For instructions, see http://appinventorapi.com/program-an-api-python/.

For this example and your exercises we will use a server that was created by another instructor, or you can use the google one. It's URL is http://ram8647-appinventortest.appspot.com. In the App Inventor Viewer, you will want to set the TinyWebDb's ServiceURL property to this address.

Page 30: WC2012 Programming Mobile Devices

Shopping with Friends example

You go to the mall with some friends and want to share what you find

Page 31: WC2012 Programming Mobile Devices

Getting values Retrieval from TinyWebDB is

asychronous so we do not know how long it will take and there is no wait so we have to use a separate event

Page 32: WC2012 Programming Mobile Devices

The Whole Example

Shopping.zip

Page 33: WC2012 Programming Mobile Devices

Some Advanced Resources

Code Snippets and Tutorials http://puravidaapps.com/

snippets.php Word Doc on Wiki with lots of other

links

Page 34: WC2012 Programming Mobile Devices

Free Play

Have an idea for an App you would like to try?

Want to catch up on some of the variations from earlier?

Have Questions? Want to take on some challenges?

Thanks tohttps://sites.google.com/site/appinventoredu

For the challenges. You might also want to check out their section on Philosophy

Let’s use the rest of today to catch up on these things….