Thursday, 21 January 2016

Course Consolidation

The Smart Skills course on the Unity DCU website has been consolidated to display each project on a single page (Introduction, Core 1, Core 2, Core 3) instead of the week-by-week structure previously used. This better reflects the fact that individuals and groups will progress through the material at different rates, for any number of reasons. There is no change to the deliverables, videos or resources associated with each project, and bookmarks or links to the previous week-by-week pages are redirected to the appropriate project page.

Friday, 8 January 2016

Additional Resources

Project Notes and Extra Challenges have been added to the Core 3: Project Management project, to provide additional insight into the workings of the app, and suggestions for further development:

The version of the app developed in the lesson plans has been added to the Smart Skills section of the App Library, and a version including some of the extra challenges has been added to the UniTY section of the library.

Thursday, 7 January 2016

Core 3: Project Management Updates

The videos for Core 3: Project Management have been reviewed and very minor edits made. There is no change to the instructional content, so there is no need to revisit videos that students have already viewed. The old versions of the videos are now marked private.

The downloadable AIA file SimpleBowling_example.aia has been updated to add missing images and to prevent the app from crashing when the game is played. It therefore differs from the code shown in video 4 as follows:
  • add a bowling pin image to the TitleSprite on the home screen so that the sprite is visible
  • set the Speed of the sprite in the TitleMove procedure (the Interval is set by default) to make it move
  • add bowling pin images to the remaining PinSprites on the play screen
  • set the Ball speed to a multiple of the Flung speed for more realistic movement
  • add handling for a collision with the BallSprite to the PinCollide procedure, because a Ball sprite cannot be referenced with an Any ImageSprite block
  • set the Speed and Heading of the ball and pin sprites to zero in the ResetPins procedure to stop them from moving and 'stand the pins up' ready to play again
This is the minimum set of changes needed to get a working game. There is ample scope for enhancing this app, even beyond the fourth and fifth deliverables mentioned in the lesson plans; this will be the subject of a future post, with a sample app to follow.

Monday, 21 December 2015

Modular Arithmetic with Mr. Spock

An important aspect of programming is to consider a program’s requirements in terms of computational effort and memory usage: an algorithm that makes efficient use of resources can help make a program robust and scalable.

Deciding the winner in Rock Paper Scissors Lizard Spock could be done with a brute force walk through the rules to find a match, but we can design an efficient modular arithmetic solution instead. Mr. Spock would approve.

Thursday, 17 December 2015

Connecting with Bluetooth

Bluetooth is a short-range wireless communication protocol supported by most mobile devices, and available for use in App Inventor. Two new apps have been added to the UniTY section of the App Library, one that demonstrates a Bluetooth connection and data transfer between two devices, and one that uses it in a two-player game:
  • BluetoothDemo - establish a client-server connection between two devices and exchange data
  • LizardSpock - an extension of Rock-Paper-Scissors, made famous in The Big Bang Theory

Note that Bluetooth must be enabled and the devices paired before running the apps. On most devices, Bluetooth configuration can be found at Settings - Wireless - Bluetooth.

Friday, 11 December 2015

Additional Resources

Three new apps have been added to the UniTY section of the App Library, including two that serve as reference implementations of interfaces with media and sensor features:
  • HelloWorld - a minimal Hello World app, using the fewest elements possible
  • MediaDemo - explore the media capabilities of your device (and see responsive design in action)
  • SensorsDemo - explore the sensor capabilities of your device

Project Notes and Extra Challenges have been added to the Core 2: The Brainstormer project, to provide additional insight into the workings of the app, and suggestions for further development:

Links to additional sources of demonstration apps and reference material have been added to the Starter Apps document:
  • link to Mini Golf app on the App Inventor website
  • link to tutorial library on the App Inventor website
  • link to online book and tutorials on appinventor.org

Fixed vs Responsive Sizing

App Inventor allows apps to be built with either Fixed or Responsive sizing, controlled by the Sizing parameter of Screen1. This parameter is available only in the Designer, and cannot be changed dynamically.

Fixed Sizing
Apps are built with a fixed width of 320 pixels in portrait mode, or a fixed height of 320 pixels in landscape mode. The longer dimension varies depending on the device; designing for 320x480 pixels works in most cases. The majority of apps in App Inventor tutorials and in the DCU Access courses use Fixed Sizing for consistency.

Responsive Sizing
Apps are built to use the full screen size of the device, which varies considerably across devices. This means that scaling of design elements becomes a factor, especially when apps may be used on both phones and tablets. Read more here. Responsive sizing appears to be necessary for well-behaved video playback.

Note that most Android devices use 'soft buttons' at the bottom of the screen, which reduces the available vertical screen size; this is not the case with the Emulator or ARC Welder. The table below shows the screen size available to App Inventor for a selection of devices using each Sizing option.

Fixed SizingPortraitLandscape
Emulator320 x 480480 x 320
ARC Welder, Phone320 x 569569 x 320
ARC Welder, Tablet320 x 512512 x 320
Fire 7" tablet320 x 520546 x 294
Nexus 7 tablet319 x 482512 x 294
Responsive SizingPortraitLandscape
Emulator320 x 480480 x 320
ARC Welder, Phone360 x 640640 x 360
ARC Welder, Tablet800 x 12801280 x 800
Fire 7" tablet600 x 9761024 x 552
Nexus 7 tablet600 x 905961 x 552