Course:ETEC565m/Apps/Introduction

From UBC Wiki

Introduction

The most fundamental aspect of mobile learning is the ability to learn anywhere, at any time. Given the right device and software affordances, people can use otherwise unproductive time or unconventional settings for learning. If educators hope to help break down these walls between formal and informal learning, educators will need to determine the needs of their students and then to provide them with tools and strategies that accommodate the mobile mind shift. The mobile mind shift is “the expectation that any desired information or service will be available, on any appropriate device, in context, at your moment of need.”[1] Currently, people look to apps as the best technology for mobile learning.

This resource aims to provide background knowledge for educators willing to learn about apps and how to create apps. Specifically, answers to the following questions will be explored:

  • What is an app? What are the differences between web apps and native apps?
  • What are the affordances offered by the effective use of high quality apps? What is the rationale behind the assertion that programming is the new, critical digital literacy?
  • What are the characteristics of an effective framework for finding educational apps and for choosing the best app builder?
  • Finally, what are the steps that can be taken to begin creating apps and to learn about coding?


1. What is an app?

'App' is a short hand term used to describe a software application. It first appeared in the 1980's within both computer applications and print publications simply in order to shorten the word 'application'. Apps are currently recognized primarily as the programs, or software, that users download to their mobile devices. Mobile devices can store and/or access both native and web-based apps. A native app is an application that has been programmed for a specific mobile platform and is downloaded and stored on the device on which it will be used. A web app is a mobile-optimized website that appears to be, and will act as any other app, but that requires web connectivity for access. Hybrid apps run partly as native apps and partly as web apps. They allow organizations to repackage existing websites with native programming. Consider an app for a major retailer that opens from an installed icon, but that accesses its own website for much of the content within the app. Hybrid apps run within a browser (like a web app) but the browser is embedded within the app (like a native app.)


2. How do web apps and native apps differ?[2][3]

Web App - online, mobile-optimized website
  1. Less costly to create.
  2. Very versatile (usable across all platforms).
  3. Being able to update information more easily on website from anywhere.
  4. More accessible through online searches (SEO optimized).
  5. Does not require app store approval.
Native App - installed, platform-based software
  1. Personalized content from users mobile device
  2. Ability to access devices features: camera, microphone, GPS, accelerometer.
  3. Increased complexity for design and UI
  4. Stronger profits from monetization
  5. Allows for faster sending and receiving of data.
  6. More easily gamified, leading to increased engagement.

Rationale

1. The affordances of quality educational apps:

Well-chosen educational apps have the power to move students along the continuum of online participation. Where once a student might have been only a content consumer, an appropriately chosen app might help a student to become a content producer. Whether in a text-, graphic-, or video-based environment, students can gain valuable knowledge, skills and abilities through the use of apps. In the best of situations, apps offer many affordances.


Apps can:

  • Engage students
The novelty of using new devices and new programs can engage students to explore technology further. Additionally, the use of apps on mobile devices can appeal to the outside strengths and interests of students. Depending on the skills of the educator students may also have the opporutunity to learn alongside their teacher.
  • Foster agency[4]
As students master various apps, they become empowered and learn that their use of technology is defined by their actions, and not the limitations of the app program.
  • Improve specific disciplinary literacies[4]
Students can learn to make sense of content in new ways through the use of specific, discipline-related apps. For example, science students learn about citing text, supporting claims and summarizing by using a variety of apps to collect and present data.
  • Teach students how to manage mediating tools in learning[4]
Technology and tools are winding their way into every aspect of teaching and learning. As this happens it students need to be able to use the various mobile devices on hand in a way that doesn't interfere with the learning goals. Students also need to be aware of how the tool (the app) mediates how their learning is constructed.
  • Highlight the effective transfer of visual and verbal analysis[4]
Consider a student who makes a video of herself completing a kinesthetic task. Following her performance, she can then review the recorded video and then embed an audio description and reflection about the project.
  • Foster independent and self-directed learning[4]
As students are provided with quality app-based programs, students will become more adept at identifying and seeking out what they want to learn next.
  • Bridge the divide between formal and informal learning environments[4]
Device users are generally content to take out their mobile devices in almost any situation. By leveraging the technology, today's learners can re-envision what type of physical environment or space feels appropriate for learning.

2. A rationale for learning to code

Once upon a time, creating even a lowly website was thought to be the work of programming specialists. This was an area that could be learned, but perhaps only with extensive training or self-study. In many ways the creation of apps resembles this narrative. Today, creating an app is well within reach of anyone, with the interest, who uses the internet. This constitutes a paradigm shift as app users enter the world of software architecture and become app creators.


In creating new and unique apps, a learning professional can:

  • enhance their professional reputation,
  • grow their web presence,
  • design individualized learning tools for specific situations, and
  • distinguish themselves as educators prepared to engage with behind-the-scenes computing.


More importantly, learning generally how computers are programmed is an emerging, critical, digital literacy for students and adults alike. In his book Program or be Programmed: Ten Commands for a Digital Age, Douglas Rushkoff provides an overview of the biases inherent in computing systems, their ramifications and possible solutions to avoid being enframed by these biases. “In a digital age,” he writes, “we must learn how to make software, or risk becoming the software.”[5] He explains the essence of this statement by clarifying how time, place, choice, complexity, scale, identity, friends, fact and openness are each aspects of technology that require significant reframing if users are to avoid the trappings of each characteristic. Of note is Rushkoff's description of how users accept, or are unaware of, the simplification that directs increasingly less complex answers and solutions to the fore. The endpoint of this is that “the less we know about how it works, the more likely we are to accept its simplified models as reality.”[5]


When students learn to code, they learn to think in a way that makes something happen.[6] Additionally, students are also likely to learn:

  • the nature and uses of reverse engineering[6]
  • to take complex ideas and break them into simpler parts[7]
  • to collaborate with others[7]
  • to find bugs and to fix them when things go wrong[7]
  • to persevere, even when frustrated[7]
  • logical & computational thinking, and[7]
  • creativity[7]


code.orgis a non-profit organization dedicated to promoting computer science education. The following video highlights the importance of learning to code.


Evaluation Framework

Framework for selecting education applications

As more and more students and teachers use mobile devices in their teaching and learning they will need to determine appropriate applications (native or web) based on particular need. Our framework below, CAN APPS, will help individuals to select applications for their devices, whether they be a teacher, student or even a parent looking to home-school or support his or her child. Finally, the framework below is designed to provide enough detail for important considerations without being overwhelming and therefore unusable. The following framework was generated by our team but was loosely based on Bates and Poole's SECTIONS[8] framework for selecting technology.

The chart below was designed to be printed as a just-in-time useable object so please feel free to use.

Categories Considerations Notes and Ranking
Cost
  • Cost of app to install and maintain
    • Free and one time fee vs annual subscription
    • Basic or introductory level vs upgraded or pro version
    • Consideration given to In-App purchases
Age Ability
  • Graphical User interface (GUI)
    • Graphics are age appropriate
    • Software affordances are appropriate for age group and encourage interactivity
  • Text
    • Level of writing is appropriate for the chosen grade level
    • Length of text neither overwhelms or underwhelms student
  • Instruction
    • Pedagogical considerations have been made based on age level (i.e. deployment and execution of App)
Novelty
  • The App can sustain or maintain a level of academic stimulation and engagement
  • The App allows for customization (i.e. background, characters, skins)
Accessibility
  • Access
    • App requires constant web access vs. off-line capabilities
  • Platform Agnostic
    • Specific to a particular mobile device vs. a number of mobile devices and platforms
  • Speed
    • Quick to load app and its contents
    • Reaction time to touch commands
Pedagogical Context
  • Grade Range
    • App is appropriate for learner’s particular grade level
    • A variety of multi-modal instructions and tasks are available
    • The App is designed to grow with student or is specific to a particular grade level
  • Concept Mastery
    • Ability of the app to repeat tasks or activities (for mastery) or to continue from last usage
Proprietary Restrictions
  • The software company is reputable and established
  • What restrictions does the software place on usability
  • How often is the software upgraded to take advantage of evolving technologies
Support & Service
  • Application Support
    • Can be found easily and quickly (i.e. website)
    • Question and Answer section
    • Contact service or help desk

Framework for Selecting App Builders

There are various elements that need to be considered before choosing an App software builder. Not all builders are created equally and need to be vetted before one invests a great deal of time and/or money before discovering that the chosen software fails to meet the developer's needs. The following framework, FLUCS, was generated by our team but was loosely based on Bates and Poole's SECTIONS[8] framework for selecting technology.

The chart below was designed to be printed as a just-in-time usable object so please feel free to use.

Categories Considerations Notes and Rankings
Features
  • Allows for a number of different mobile server platforms and devices to be used to create app
  • Allows for a number of different mobile server platforms to be used to access the app
  • Allows for appropriate layout on iPad, tablet and/or smartphone
  • The software allows the builder to develop apps that can scale to the user’s needs
  • Allows for app to be utilized in different languages
  • Allows for question banks
  • Allows for re-usage of information in another app build
  • Allows for creation of novel backgrounds, characters and skins
Legal
  • Review the legal agreement before accepting the terms to determine:
    • ownership rights
    • hidden costs
    • if software company does not break any federal or local privacy laws for both creator and student user
Usability
  • The speed at which one can learn the software program to develop apps
  • The responsiveness of web-based software app builders (i.e. lag time)
  • Software provides clear steps
  • Layout is smartly designed and usable on various screen sizes
  • Live app view on device allows builder to immediately see, test and troubleshoot code changes
  • The program offers various levels of complexity based on builders level of expertise
  • The program allows for both coding and wysiwyg options
  • The company offers option to produce simultaneously to all the major mobile operating systems
  • The app can be easily loaded to the respective application store
Costs
  • Cost to utilize building platform
    • Free or minimal 1 time cost vs premium costs to the creator
    • Subscription fees for builder
    • Premium package or cost for upgrading
  • Cost for users of the app
    • Free or minimal 1 time cost to utilize the app
    • Subscription fees
    • Fees for In-App purchases
Support & Service
  • Company offers immediate software and troubleshooting support
  • User support comes in different forms (i.e. live chat, telephone, email, screen sharing)
  • Support and service is built into the original cost
Note: Please go to WYSIWYG under the heading Creating Native Apps to see a list App builder examples, which highlights their costs, features, and limitations.

Creating Native Apps

For any organization today, whether it be education, business, medical, or any other market, one important question persists when thinking about app creation. Should I build a web app (keep all of my content on the web accessible through a browser) or should a build a native app that is downloadable from any of the app stores (Apple App Store, Google Play Store, or Apps for Windows)? Although they both have their advantages, in this section we will focus on the creation of native apps for mobile platforms.

WYSIWYG online creators

In order to create a native app on any platform, it normally requires a lot of time, effort, design and programming know-how. Fortunately, if you do not meet any of these criteria, there are still options available. WYSIWYG (What You See Is What You Get) editors exist online for those that simply wish to input their content and have another service compile it and publish it for them. What follows is a guide to a few of the WYSIWYG native app creators online.

Name Description Cost Features Limitations
AppMakr AppMakr is a do-it-yourself app creation platform that lets anyone make your own iPhone apps, Android apps and HTML5 mobile formatted websites (Click here for more information 4 tiered pricing system. Free, $1/month, $9/month and $99 one time fee. (Click here for more information) Keep track of apps through analytics, Ability to use custom icons and images in app, apps can contain multiple tabs for additional content, preview apps in real time, by paing more it allows for publishing to Google Play Store and Apple's iTunes. Designs can appear very flat, ads are required on apps unless paying to a higher tier, unless you pay the $99 fee, the app is branded as an AppMakr app instead of your own app.
AppMachine Build your own app for iPhone or Android. No programming knowledge necessary. (Click here for more information) 3 tiered pricing system. One time payment of €399, €699 and €999. (Click here for more information) When constructing the content for the various apps, blocks (that appear very similar to Lego, are dropped into place and then content added. AppMachine also has a preview app that is downloadable from the iTunes App store that allows users to see what their app will look like before it is published. AppMachine will also allow for the publishing to all major app stores. Off all the tools reviewed here, this is one of the most expensive. Although the design process works quite smoothly, designs are quite flat and do not allow for a lot of personalization.
Game Salad GameSalad is an online community that empowers everyone to express and share their ideas through games. Our company was founded on the belief that all people should have the tools to make popular games, limited only by the boundaries of their imaginations. GameSalad provides a platform used by creators to rapidly design, publish and distribute original games that have been played by millions of people worldwide.(Click here for more information) 2 tiered pricing system. Basic (Free), Pro ($299/year) (Click here for more information) Game Salad has an easy to use, drag and drop interface. All work is able to be tested through the in-app previewer. With a Pro account, you are able to publish on many more platforms than other tools looked at here! Even with a free account, users still need to pay the $99/year Apple developer price in order to publish into the app store. Program also needs to be installed on a computer's hard drive (no online editing, also requires Windows Visa or later, or OSX Lion or later)

There are many apps that are similar to the ones mentioned above, particularly AppMakr and AppMachine. Where they differ is in their interface and pricing models. This includes: The App Builder, Appsme, Mippin App Factory, Appery.io, and Mobincube.

Advanced app creation

Although the WYSIWYG editors allow anyone to create an app and publish it to many stores, they are limiting in their design and functionality. In order to take your app to the "next level", it requires a lot more time, technical expertise and the proper tools. Although there are many markets in which developers can develop and create apps, Apple's App store and Google's Google Play store are the most widely used. Both of these companies have released tools that allow for the creation of apps, but they do require more time, effort and skill.

Creation tools

Apple's Xcode

Apple's Xcode was first released in 2003. [9] This software package allows for the development of mobile apps for the Apple iTunes app store. This program is downloadble for free from https://developer.apple.com/technologies/tools/. This tool requires knowledge of coding in order to create and organize content. Pragraming languages that it supports include:

Apple's Xcode
  • C
  • C++
  • Objective-C
  • Objective-C++
  • Java
  • AppleScript
  • Python
  • Ruby

Advantages to using Xcode include a strong community of users, a lot of online documentation, secure (against piracy and malicious software) store for downloading, and a very strong app store with many downloads. Disadvantages include a smaller market share than other platforms, particularly Android (81% vs 13%[10]), still requires programming knowledge, and xCode is only available for download on an Apple computer.

Android Development Tools (ADT)

Android's development tools have been available since 2008, and since then have seen a lot of activity. With the Android OS being open source, it has attracted a lot of developers and hackers alike. The Google Play store is currently seeing downloads of approximately 1.5 billion downloads per month[11]. All Android applications are written in the Java programming language, meaning that it does not have as much flexibilty as Xcode. Android does have a large community of users who contribute to the development of Android as a platform as well as the software developed for it here at the xda developers website: http://forum.xda-developers.com/android.

Eclipse IDE used for Android Development Tools

Advantages to this platform include its strong community, well detailed development and design practices (available from http://developer.android.com/develop/index.html), integration with all of Google services (including Maps, Gmail and Google+), tool availability for Windows, OSX and Linux and a very widely adopted platform worldwide. Disadvantages include a single programming language, difficulties in adapting apps to work on the multitude of Android devices on the market, and possible instances of piracy as apps can be installed from other locations besides the Play store.

An entry into coding

As mentioned above, in order to create custom made apps, a certain level of programming is necessary. Unless you have gone to school for computer science, have had programming as a hobby, or a close friend or family member who also programs, creating custom apps may be out of reach. How does one gain the necessary skills in order to create the next "killer" app. The following is a list of places where anyone interested in learning to program mobile apps can start.

  • Post Secondary Institutions: Many colleges, universities and technical schools offer evening, weekend and summer courses for those that are interested in learning to code. For example, the Northern Alberta Institute of Technology (NAIT) located in Edmonton, Alberta offers courses on a variety of languages and areas of interest, including courses specific to mobile app development.
  • Codecademy: This website offers lessons designed to teach coding. The lessons are structured in such a way that they are accessible to beginners and the more advanced. This site allows users to learn to code in HTML/CSS, JavaScript, Ruby, Python, PHP, and APIs. This website operates entirely online meaning that it can be accessed from any computer (and mobile device, although the experience is much better served on a laptop or desktop). It also has a large community of users, and best of all, lessons that are submitted to the site are user created and are constantly being peer reviewed. For anyone interested in learning to program, this should be one of your first stops.
  • Scratch: If you are looking for a more graphical and fun way of getting into programming, then check out Scratch. Developed by MIT, this programming tool uses a GUI to code by combining different blocks which work together to manipulate objects on the screen and interact with the user. Scratch is used in many schools across the world to teach basic computational and mathematical skills. For more information please visit http://scratch.mit.edu/about/
  • Khan Academy: The Khan Academy continues to diversify its training in many different areas, including computer programming. This site offers lessons on the fundamentals of programming and works through such topics as drawing basics, variables, animation basics, text, functions, logic and if statements, looping, arrays, and objects. For those who like to see, hear and do, this is a great way to get started with coding.
  • CodeHS: For anyone interested in starting up a programming course/club at their school, CodeHS provides a great place to start. It provides teachers and students a place to learn and code by providing structured/tiered lessons to students and gives the teacher information on the progress of their students. This option does come at a cost (approx. $500 for 25 students over 2 months.), but the pricing is adjustable for the amount of students and the duration of the course. One interesting feature is that when students are given assignments for grading, when they are submitted, CodeHS has a built in checker for the coding, and will provide a quick note to the teacher if the code seems accurate, then allows the teacher to make the final assessment.

References

  1. Bernoff, J. (2013, March 28). The Mobile Mind Shift. Forrester Research. Retrieved November 20, 2013, from http://forrester.typepad.com/groundswell/2013/03/the-mobile-mind-shift.html
  2. O'Dell, J. (2013, July 29). VentureBeat | News About Tech, Money and Innovation. VentureBeat. Retrieved November 12, 2013, from http://venturebeat.com/2013/07/29/native-v-web-chart/
  3. Budiu, R. (2013, September 14). Mobile: Native Apps, Web Apps, and Hybrid Apps. Nielsen Norman Group. Retrieved November 12, 2013, from http://www.nngroup.com/articles/mobile-native-apps/
  4. 4.0 4.1 4.2 4.3 4.4 4.5 Jill Castek, & Richard Beach. (2013). Using apps to support disciplinary literacy and science learning. Journal of Adolescent & Adult Literacy, 56(7), 554.
  5. 5.0 5.1 Rushkoff, D., & Purvis, L. (2011). Program or be programmed: Ten commands for a digital age. Berkeley, CA: Soft Skull Press.
  6. 6.0 6.1 Pettit, N. (2013, October 7). The Secret to Learning Code. Retrieved November 22, 2013, from http://blog.teamtreehouse.com/the-secret-to-learning-code
  7. 7.0 7.1 7.2 7.3 7.4 7.5 Boswell, W.(2013, April 18). Future Developers: Why Kids Should Learn the Basics of Code. Retrieved November 21, 2013, from http://software.intel.com/en-us/blogs/2013/04/18/future-developers-why-kids-should-learn-the-basics-of-code
  8. 8.0 8.1 Bates, A.W. & Poole, G. (2003). Chapter 4: a Framework for Selecting and Using Technology. In Effective Teaching with Technology in Higher Education: Foundations for Success. (pp. 77-105). San Francisco: Jossey Bass Publishers. framework for selecting technology.
  9. Xcode. (2013, November 15). Wikipedia. Retrieved November 15, 2013, from http://en.wikipedia.org/wiki/Xcode
  10. Kerr, D. (2013, November 12). Android dominates 81 percent of world smartphone market. CNET News. Retrieved November 15, 2013, from http://news.cnet.com/8301-1035_3-57612057-94/android-dominates-81-percent-of-world-smartphone-market/
  11. Android, the world's most popular mobile platform. (n.d.). Android Developers. Retrieved November 15, 2013, from http://developer.android.com/about/index.html