Library:Mobile Apps
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
|
Native App - installed, platform-based software
|
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 |
|
|
Age Ability |
|
|
Novelty |
|
|
Accessibility |
|
|
Pedagogical Context |
|
|
Proprietary Restrictions |
|
|
Support & Service |
|
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 |
|
|
Legal |
|
|
Usability |
|
|
Costs |
|
|
Support & Service |
|
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:
- 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.
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
- ↑ 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/
- ↑ 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.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.
- ↑ Xcode. (2013, November 15). Wikipedia. Retrieved November 15, 2013, from http://en.wikipedia.org/wiki/Xcode
- ↑ 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/
- ↑ Android, the world's most popular mobile platform. (n.d.). Android Developers. Retrieved November 15, 2013, from http://developer.android.com/about/index.html