Errata

App Inventor 2

Errata for App Inventor 2, Second Edition

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".

The following errata were submitted by our customers and approved as valid errors by the author or editor.

Color key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted By Date submitted Date corrected
Printed
Page xix
Using Code Samples section

Dear Madam / Sir,

I purchased a copy of this book and was excited when the book was deliverd to me from Amazon. But, I couldn't find the code samples on the website listed in the book: https://appinventor.org/bookFiles

Please send me the code samples (zipped file) or the correct website.

Sincerely,
Daniel Akintonde

Note from the Author or Editor:
Please change the link on page xix from
https://appinventor.org/bookFiles
to
http://appinventor.org/bookFiles

i.e., remove the s from https.

Daniel Josiah Akintonde  Jul 15, 2017  Apr 13, 2018
PDF
Page 22
Enumeration item 2 and Figure 2-3

Step 2, changing the Width of the HorizontalArrangement, should be eliminated (so that the Width remains Automatic) and Figure 2-3 should be updated to show that. These changes are needed so that the the final paragraph on page 22 is correct, namely that the centering can be done at the screen level. The alternative would be to leave Step 2 and Figure 2-3 alone and instead change the final paragraph to say that the horizontal centering should be set in the properties of the HorizontalArrangement itself -- but then Figures 2-4 and 2-5 would need to be updated, so my earlier suggestion seems the simpler approach.

Note from the Author or Editor:
I have a replacement figure for fig 2.3. (how do I upload?)

And we should remove step 2 from the 3 step list above fig 2.3-- remove the line saying, "In the Properties panel, change the Width of the HorizontalArrangement..." So there are only two items.

Max Hailperin  Jan 05, 2015  Apr 13, 2018
PDF
Page 34
Figure 2-18

The .DrawCircle method of a Canvas object has 4 parameters, not 3: x, y, r and fill. The figure only shows x, y, and r

Note from the Author or Editor:
* Replace figures with replacements I emailed to you.
* replaceall any in-text references of "touchedSprite" with "touchedAnySprite".
* replaceall any in-text references of "draggedSprite" with "draggedAnySprite"

P.27 in paragraph starting "On the right side...", leave formatting but change text to:

On the right side of the DrawingCanvas.DrawCircle block, you’ll see four
sockets for the arguments we need to plug in: centerX, centerY, radius, and fill. The centerX and centerY arguments specify the location where the circle should be drawn, radius determines the radius of the circle, and fill determines if the circle should be filled in with color. This event handler can be a bit confusing because the DrawingCanvas.Touched event has an x and y; just keep in mind that the x and y for the DrawingCanvas.Touched event indicate where the user touched,
whereas the centerX and centerY for the DrawingCanvas.DrawCircle event are open sockets for you to specify where the circle should be drawn. Because you want to draw the circle where the user touched, you’ll plug in the x and y values fromDrawingCanvas.Touched as the values to use for the centerX and centerY parameters in DrawingCanvas.DrawCircle.


* Replace text in numeral 4. that starts with "Now, you'll need to specify the radius , r, of the circle to draw" with "Now you'll need to specify the radius of the circle to draw"

and text "plug that into the r socket" with "plug that into the radius socket"



Anonymous  Sep 20, 2016  Apr 13, 2018
Printed
Page 39
List Item 4 at bottom of page

It reads "Also from the User Interface drawer, drag in a Clock component." However, Clock components are located in the Sensors drawer.

Note from the Author or Editor:
In Table 3-1, on the row with Component type "Clock", change the Palette group column value from "User Interface" to "Sensors".

On list item 4 of the same page, change the start of the sentence from "Also from the User Interface drawer" to "From the Sensors drawer".

andrew petusky  Aug 07, 2015  Apr 13, 2018
PDF
Page 61
Figure 4-8

I can not see how the join method receives 4 parameters. I only see two, and I can't make it increase to 4.

Note from the Author or Editor:
Above Figure 4-8 is the text:

So, if the text “hello”was sent from the number “111-2222,” the phone would say, “SMS text received from 111-2222. The message is hello.

Leave this, but add a sentence after so that it reads:

So, if the text “hello”was sent from the number “111-2222,” the phone would say, “SMS text received from 111-2222. The message is hello.

Note that when you drag in a join block, it has two slots, but you can click the blue icon on the block to add more slots.

Anonymous  Sep 20, 2016  Apr 13, 2018
PDF
Page 64
Figure 4-10

join does not allow 3 or 4 parameters. It only allows 2. The blocks are not correct in the figure. Also, in figure 4-11 on page 65

Note from the Author or Editor:
I'm adding some text above this area for another errata which will fix this problem as well.

Anonymous  Sep 20, 2016  Apr 13, 2018
Printed
Page 75-6
Steps 4 and 5

Page 75, Steps 4 and 5 have us adding 2 parameters to the DrawEnergyLine procedure. The steps are explicit in that parameter "color" must go beneath the parameter named "length".

However, every subsequent Figure showing the DrawEnergyLine procedure in this chapter, starting with Figure 5-7 on page 76, have "color" above "length". I'm confused - what is the correct order of these parameters? Does the order matter? If not, why do the steps on page 75 tell us it does?

Note from the Author or Editor:
This is indeed a mistake. The "length" parameter should go after the "color" parameter in the instructions and Figure 5-6.

Paul Apollo  Jun 22, 2020 
Printed
Page 84
Fig 5-19

The complete app block diagram in Fig 5-19 on page 84 has an error in the Restart-button block. It wrongly sets Ladybug.visible to true, but should set Ladybug.enabled to true, as is shown in Fig 5-15 on page 80.

Note from the Author or Editor:
This is correct. I can provide a new image.

Jeff Johnson  Mar 08, 2017  Apr 13, 2018
Printed
Page 101
table 7-1

On page 101, chapter 7, The table. 7-1 misnamed some components.
Namely, on the 11th row, the component type should be "HorizontalArrangement" rather than "Label". In addition, another "HorizontalArrangement component should be added
(which is forgotten) for the remembered GPS properties.

Note from the Author or Editor:
Table 7.1 changes:

* 11th row with What you'll name it "HorizontalArrangement2", change the first column from "Label" to "HorizontalArrangement", change 2nd column from "User Interface" to "Layout, change 3rd column (What you'll name it) to "HorizontalArrangement3".
* add a row after 13th which is:

HorizontalArrangement, Layout, HorizontalArrangement4, "Arrange the remembered GPS info"

*

Anonymous  Nov 04, 2015  Apr 13, 2018
Printed
Page 132
Last row of Table 9-1

Clock is listed as being in the User Interface component group. It is actually in the Sensors group.

Note from the Author or Editor:


table 3-1, change the fourth row, second column, so that the Palette group for the Clock is “Sensors” not “User Interface”

table 5-1, change the fourth row, second column, so that the Palette group for the Clock is “Sensors” not “User Interface”

table 9-1, change last row, second column, so that the Palette group for the Clock is “Sensors” not “User Interface”

Jeff Johnson  Mar 08, 2017  Apr 13, 2018
Printed
Page 137
top

The sound files 6.wav and 7.wav are in reverse order. To have the xylophone play a correct scale, you must switch them.

Note from the Author or Editor:
I have asked Dave Wolber to swap the files on his server.

Jeff Johnson  Mar 08, 2017 
Printed
Page 145
Fig 9-15

The PlayButton.click block shown in Fig 9-15 on page 145 of the book is missing a call to PlaybackNote. Without that, the app won't start playing back the recorded notes. Fig 9-13 on page 142 shows the correct code for PlayButton.click. Also, the section on page 141-142 that contains Fig 9-13 is misleading: it says it is a "thought experiment" and "we could (but won't)" do what is illustrated. Many students discount everything in the figure, when what is meant is that the *recursion* is a thought experiment that won't be in the actual solution. The PlayButton.click block IS part of the actual solution.

Note from the Author or Editor:
1. Replace the incorrect "When PlayButton.Click" block in Figure 9-15 with the correct version of the block from Figure 9-13. (Can you do that, or do you need us to create a new diagram?

2. On p. 141, replace the first paragraph after "Playing Back Notes" with "Playing back notes with proper timing is too big a leap to take with a single step. Instead, as a first step, let's implement note playback without worrying about timing, as shown in Figure 9-13:". (The old paragraph began with "As a thought experiment..." and ended with "as shown in Figure 9-13:"

Jeff Johnson  Mar 08, 2017  Apr 13, 2018
Printed
Page 145
Variation 1

The first Xylophone variation has an error in the last sentence: "To re-enable it (the Reset button) when the song is complete, change the IF THEN block in PlayButton.Click into an IF ELSE block, and re-enable Reset button in the ELSE portion." That won't work. Yes, disable the ResetButton in PlayButton.click. But don't re-enable it there; the tune won't be finished. Re-enable the ResetButton when the song is finished playing: at the IF THEN block in PlayBackNote. The IF tests if there are more notes to play. The code in the THEN section is what executes when there are more notes to play. If you change the IF THEN to an IF THEN ELSE block, the ELSE section is where you put code that is to be executed when there are NOT more notes to play. So you should enable the Reset button in the ELSE portion.

Note from the Author or Editor:
Replace "PlayButton.Click" with "PlayBackNote" in the last sentence of the first bullet on p. 145 (under Variations).

Jeff Johnson  Mar 08, 2017  Apr 13, 2018
Printed
Page 145
last line

Space needed in "ifelse" so it is "if else".

Jeff Johnson  Mar 08, 2017  Apr 13, 2018
Printed
Page 200
Last sentence

The link aiamazonapi.appspot.com/ does not exist.

Error: Not Found
The requested URL / was not found on this server.

Thank you for clarification,

Note from the Author or Editor:
All of those references should be changed to http://aiamazonapi2.appspot.com/

Tan Kah Sin  Mar 14, 2016  Apr 13, 2018
Printed
Page 323
bottom of 323 and top of 324

We need to remove an example in ch. 24 which refers to a Yahoo Finance API.

Specifically, remove the paragraph starting with:
"In this chapter, you'll be introduced to the Web component.."

along with the entire following subsection entitled, "Stock Market Sample" Text should resume with the subsection "TinyWebDB and TinyWebDB-Compliant APIs"

David Wolber
David Wolber
 
Mar 14, 2018  Apr 13, 2018
PDF, ePub, Mobi
Page 12620
text

Typos:

"initilize" should be "initialize"

"brower" should be "browser"

"submited" should be "submitted"

Note from the Author or Editor:
I don't have the e-books, but I found all three misspellings in the Safari Books Online [learning.oreilly.com] version so assume they are in the others. Thank you, alert reader!

Anonymous  Sep 17, 2019