Library:Mobile Apps

From UBC Wiki

Guide

A digitally literate person is able to build resources for the web. One way to build a web resource is by making use of existing resources. In this module, you will learn how to build a rudimentary app using an app-building program.

Ideally, you should be able to manipulate a variety of programs such as Word, Excel and PowerPoint before you begin this program.

Technology

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?[1][2]

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.

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[3] 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[3] 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.

Case Studies (should really be projects)

Apple's Xcode

Apple's Xcode was first released in 2003. [4] 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%[5]), 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[6]. 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. 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.

An Entry in 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.

Case Studies

  1. 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/
  2. 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/
  3. 3.0 3.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.
  4. Xcode. (2013, November 15). Wikipedia. Retrieved November 15, 2013, from http://en.wikipedia.org/wiki/Xcode
  5. 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/
  6. Android, the world's most popular mobile platform. (n.d.). Android Developers. Retrieved November 15, 2013, from http://developer.android.com/about/index.html