Android and iOS App Development Explained A Guide for Teachers and Trainers E-standards for Training V 1.0 June 2013 flexiblelearning.net.au Android and iOS App Development Explained Acknowledgements On behalf of the National VET E-learning Strategy, the New Generation Technologies for Learning business activity wishes to acknowledge and thank the author of this guide Axel Bocciarelli together with participants from across the Australian vocational education and training (VET) sector, including the E-standards Expert Group key contributors David Appleby, Vijendra Lal, Lee Webster, and the business activity’s Bronwyn Lapham. Grateful acknowledgement is also extended to those who provided feedback and comment through their jurisdictional representatives, and to those who responded to the survey. With the exception of the Commonwealth Coat of Arms, the Department’s logo, any material protected by a trade mark and where otherwise noted all material presented in this document is provided under a Creative Commons Attribution 3.0 Australia (http://creativecommons.org/licenses/by/3.0/au/) licence. New Generation Technologies for Learning incorporating E-standards for Training National VET E-learning Strategy Android and iOS App Development Explained Table of Contents 1 Background ....................................................................................................... 1 1.1 National VET E-learning Strategy ............................................................................ 1 1.2 New Generation Technologies for Learning Business Activity ................................ 1 2 Introduction ....................................................................................................... 2 3 What is an ‘App’? .............................................................................................. 2 3.1 Native apps .............................................................................................................. 2 3.2 Mobile web apps ...................................................................................................... 3 3.3 Hybrid apps .............................................................................................................. 4 3.4 Summary .................................................................................................................. 4 4 Developing an App ............................................................................................ 5 4.1 Standard native app development ........................................................................... 5 4.2 Mobile web app development .................................................................................. 8 4.3 From web to hybrid ................................................................................................ 11 4.4 No coding required ................................................................................................. 14 4.5 Exploring alternatives… ......................................................................................... 17 5 Deploying an App ............................................................................................ 19 5.1 iOS ......................................................................................................................... 19 5.2 Android ................................................................................................................... 21 5.3 Web Apps............................................................................................................... 22 6 Survey results ................................................................................................. 23 6.1 Teacher/Trainer responses .................................................................................... 23 6.2 Other Stakeholders’ responses ............................................................................. 23 More Information ................................................................................................ 25 New Generation Technologies for Learning incorporating E-standards for Training National VET E-learning Strategy Android and iOS App Development Explained 1 Background 1.1 National VET E-learning Strategy The National VET1 E-learning Strategy (Strategy) aims to strengthen the Australian training sector’s use of new learning technologies and leverage opportunities provided by such projects as the National Broadband Network (NBN) to make major advances in the achievement of government training objectives. The Strategy seeks to build the capability of registered training organisations (RTOs), industry and community stakeholders to create more accessible training options and facilitate new ways of learning through technology. It also aims to stimulate elearning ventures to support individual participation in training and employment, and the alignment of workforce skill levels with economic needs. The Strategy is driven by the vision: A globally competitive Australian training system underpinned by world class e-learning infrastructure and capability. and has the following three goals: 1. Develop and utilise e-learning strategies to maximise the benefits of the national investment in broadband. 2. Support workforce development in industry through innovative training solutions. 3. Expand participation and access for individuals through targeted e-learning approaches. 1.2 New Generation Technologies for Learning Business Activity The New Generation Technologies for Learning Business Activity incorporates the existing E-standards for Training activity and primarily contributes to Goal 1 of the National VET E-learning Strategy. It has the following objective: Support the capacity of the VET system to use broadband and emerging technologies for learning, through research, standards development and advice. 1 Vocational Education and Training National VET E-learning Strategy New Generation Technologies for Learning incorporating E-standards for Training Page 1 Android and iOS App Development Explained 2 Introduction This guide has been written with the aim of clarifying some of the options and considerations involved in developing apps for the two (currently) most widely used mobile device operating systems in Australia. Its intended audience is teachers and trainers in the Australian VET sector. The guide was developed in May-June 2013. The mobile device environment is evolving extremely rapidly, and that should be taken into consideration when considering the information provided. In the same way that WYSIWYG and drag and drop authoring environments have been developed for web pages and blogs etc., it is reasonable to expect that in future the same will occur for mobile platforms. In this researcher’s opinion, however, at this time there are no authoring tools for native apps that are readily useable by nontechnical people. Please review sections 4.4 and 4.5 for simpler mobile web app environments or alternatives. 3 What is an ‘App’? ‘App’ is an abbreviation of application. In a traditional sense, it designates a piece of software, but nowadays the term tends to include mobile web apps (a specific type of website that can be used via a mobile browser). The word is often also used (incorrectly) to describe widgets, interactive eBooks, and other items such as shortcuts to normal websites, perhaps because these items may appear on the device’s home screen next to real apps. We will mention them again later in this document. From a technical point of view, the three main types of app on mobile are native, web and hybrid. Each has its strengths and weaknesses, described in the sections below. Further reading: Native App vs. Mobile Web App: A Quick Comparison http://sixrevisions.com/mobile/native-app-vs-mobile-web-app-comparison/ Native Apps vs. Mobile Web: Breaking Down the Mobile Ecosystem http://www.wired.com/insights/2012/11/native-apps-vs-mobile-web/ Developing Mobile Applications: Web, Native, or Hybrid? https://blogs.oracle.com/fusionmiddleware/entry/developer_s_corner_develop ing_mobile 3.1 Native apps Users download and install native apps via their platform’s online store (e.g. Apple’s App Store, Google Play, etc.). National VET E-learning Strategy New Generation Technologies for Learning incorporating E-standards for Training Page 2 Android and iOS App Development Explained A native app is developed to work on a specific platform (iOS, Android, etc.) It is written in an advanced programming language such as Objective-C for iOS, Java for Android and C++ for Windows Phone, which is one reason they are usually relatively difficult and expensive to create. Native apps have the advantage of offering fast performance and direct access to the device’s software and hardware. For instance, they can efficiently launch and interact with other apps (calendar, gallery, etc.), and collect data from the various available device-specific sensors (device orientation, camera, geolocation, gyroscope, etc.) 3.2 Mobile web apps Web apps are written in the same languages as websites (HTML, CSS, JavaScript, etc.) and are therefore interoperable across devices (i.e. the same app can be used on an iPhone as well as on Android).This often makes them easier and cheaper to produce than native apps, which only work on their specific platforms. Mobile web apps are usually more dynamic and interactive than traditional websites. They are also optimised for mobile devices and their touch screens. For instance, they may: mimic the look and feel of the device’s user interface (its buttons, standard icons and controls) provide large buttons and controls that can be triggered easily with fingers (as opposed to a mouse) use animations and screen transitions interact with some of the device’s software and hardware. Mobile web apps can usually be accessed via a normal URL in any browser. Modern mobile browsers also provide ways to create home screen icons for web apps, to make them more easily accessed. If it has been developed appropriately, once a web app is available from the home screen it becomes stand-alone. That is, the next time it runs, the web browser’s interface (address bar, toolbar, etc.) disappears to let the app take up the entire screen. The main issue with web apps is that they are not generally distributed on the Apple App Store and Google Play, and therefore are unlikely to reach the wide audience these platforms provide. This is mostly only a problem for commercial apps though, since web apps can still be distributed through other channels (cf. section 5.3.) Thanks to HTML5, the popularity of mobile web apps is increasing rapidly. The technology allows them to behave more and more like native apps. For instance, if they are built appropriately, web apps can run offline – when the device is not connected to the Internet. HTML5 also allows easier access to the device’s software and hardware, like its camera, geolocation and orientation. Unfortunately, because they run inside browsers and are written in non-native languages, mobile web apps do not perform as well as native apps. For example, National VET E-learning Strategy New Generation Technologies for Learning incorporating E-standards for Training Page 3 Android and iOS App Development Explained animations in native apps have been developed in the native code of their platform and with complete understanding of the way their platform handles graphic operations. As a result, these animations are guaranteed to run smoothly and to have a very limited impact on the performance of the apps themselves. By contrast, animations in web apps are written in JavaScript, which is not a native language. This creates an additional layer of processing, which can result in non-smooth animations and a performance hit for the apps. This difference in performance is not limited to animations, even though it is where it is the most significant. Finally, even though HTML5 is slowly filling the gap, mobile web apps have limited access to devices’ software and hardware, which limits their range of applications. 3.3 Hybrid apps Hybrid apps sit between native and web apps. They solve some of the limitations of mobile web apps, while avoiding the constraints of native apps. Specifically, they can be distributed on their platform’s app store like native apps, and do not run inside a web browser like mobile web apps. Moreover, hybrid apps are written in web languages and can therefore be deployed across multiple platforms. This makes them relatively cheap and quick to produce and allows them to reach broader audiences than native apps. They also have slightly better performance than mobile web apps, especially when it comes to communicating with the device’s software and hardware. 3.4 Summary Native Mobile Web Hybrid No Yes Yes Platformspecific Web Web Official app stores deployment Yes No Yes Icon on home screen Yes Yes Yes Stand-alone Both Stand-alone Performance High Low Average Access to device’s software/hardware Yes Limited but increasing with HTML5 Yes Interoperable (cross-platform) Programming language Stand-alone or browser-based? Table: Comparison of attributes of various types of mobile apps National VET E-learning Strategy New Generation Technologies for Learning incorporating E-standards for Training Page 4 Android and iOS App Development Explained 4 Developing an App Many options are available for producing mobile apps. Most of them require a moderate to advanced skill level in programming, but new tools are starting to appear that bring app development – at least mobile web apps - within reach of a nontechnical public. This section describes a number of app development processes as well as their corresponding tools, and provides links to external resources and tutorials. 4.1 Standard native app development This process consists of developing an app from scratch that will work on a single platform, using the programming language of that platform. This is the longest and most difficult process. It requires advanced programming skills, and is very limited in the sense that if the app has to work on both iOS and Android, it has to be developed twice (once in each language). 4.1.1 iOS iOS apps are developed in the Objective-C programming language using Apple’s integrated development environment (IDE) called Xcode. This IDE contains everything required to develop and debug an iOS app, including emulators of Apple devices so the app can be tested directly on a computer without having to transfer it to a physical device. Note that Xcode is currently only supported on Macintosh OSX. Testing an app in development on a real iOS device requires the device to be provisioned – it must be identified and authorised as a testing device by linking it to an Apple Developer account ($99/year). Download Xcode on the Mac App Store https://itunes.apple.com/us/app/xcode/id497799835 iOS Developer Library Official resources (guides, tutorials, Application Programming Interfaces (API), etc.) for iOS development http://developer.apple.com/library/ios/ Start Developing iOS Apps Today Official roadmap for developing and publishing iOS app – this is a great starting point http://developer.apple.com/library/ios/#referencelibrary/GettingStarted/RoadM apiOS/chapters/Introduction.html Your First iOS App Official tutorial for creating a simple iOS app with Xcode http://developer.apple.com/library/ios/#documentation/iphone/conceptual/ipho ne101/ National VET E-learning Strategy New Generation Technologies for Learning incorporating E-standards for Training Page 5 Android and iOS App Development Explained Hello World! Build Your First iPhone App Tutorial for creating a Hello World! iOS app http://www.appcoda.com/hello-world-build-your-first-iphone-app/ Programming with Objective-C Official introduction to Objective-C programming http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Pr ogrammingWithObjectiveC/ Ry’s Objective-C Tutorial Complete and comprehensive introduction to Objective-C http://rypress.com/tutorials/objective-c/ Apple has put a great deal of effort into accessibility for people with differing physical requirements on iOS. In fact, an iOS app is mostly accessible by design, assuming it makes use of standard interface elements. In this case, complete accessibility can be achieved by applying a small set of rules and guidelines. For more advanced apps, Apple supplies a very powerful and easy-to-use accessibility Application Programming Interface (API). Accessibility Programming Guide for iOS Complete, official guide to accessibility on iOS http://developer.apple.com/library/ios/#documentation/UserExperience/Conce ptual/iPhoneAccessibility/ A great tutorial on making accessible iOS apps http://useyourloaf.com/blog/2012/04/23/voiceover-accessibility.html 4.1.2 Android Android apps are developed in Java and XML using the Android Software Development Kit (SDK), which includes a debugger, a device emulator and the required code libraries. Android apps can be developed with nothing but the SDK and a simple code editor; however, it is much simpler to use an Integrated Development Environment (IDE). The three main IDEs that support Android development are Eclipse, NetBeans and IntelliJ IDEA. Note that Eclipse and NetBeans both require the installation of a separate plugin. (The Eclipse plugin is called Android Development Tools, or ADT.) Android Developers Official resources for Android developers http://developer.android.com/ Building your first app Official tutorial for creating a simple Android app in Eclipse http://developer.android.com/training/basics/firstapp/ Download a bundle that includes Eclipse, the ADT plugin and the Android SDK http://developer.android.com/sdk/ National VET E-learning Strategy New Generation Technologies for Learning incorporating E-standards for Training Page 6 Android and iOS App Development Explained Download NetBeans http://netbeans.org/downloads/ How to setup NetBeans for Android development Tutorial on installing the Android plugin in NetBeans http://gerry.ws/2009/01/1074/how-to-setup-netbeans-for-androiddevelopment.html Download IntelliJ IDEA http://www.jetbrains.com/idea/download/index.html Android Development Tutorial Complete and comprehensive introduction to Android development http://www.vogella.com/articles/Android/article.html Similarly to Apple, the Android platform has great accessibility support. Android apps are also mostly accessible by design, provided that developers follow a simple set of rules and best practices. A dedicated Application Program Interface (API) is also available for complex cases. Making Applications Accessible http://developer.android.com/guide/topics/ui/accessibility/apps.html Accessibility Developer Checklist http://developer.android.com/guide/topics/ui/accessibility/checklist.html 4.1.3 Development environments review Publisher Operating System Output platform Xcode Eclipse + ADT plugin NetBeans IntelliJ IDEA Apple The Eclipse Foundation Oracle Corporation JetBrains Mac OS X Cross-platform Cross-platform Cross-platform iOS Android Android Android Free Pricing Ease of use2 (1-5, 1: easy, 5: hard) Must be part of iOS Developer Program ($99/year) Free (open source) Free (open source) 3 3 3 Community Edition: free Ultimate Edition: free for education 2 Table: Attributes of major native app integrated development environments 2 These “Ease of use” ratings are the opinion of technical developers National VET E-learning Strategy New Generation Technologies for Learning incorporating E-standards for Training Page 7 Android and iOS App Development Explained 4.2 Mobile web app development As explained previously, web apps can be described as highly interactive websites optimised for mobile devices. The most common techniques for creating mobileoptimised websites are: server-side adaptation, Responsive Web Design (RWD), client-side adaptation, and progressive enhancement. We’ll describe the first two in this section then introduce mobile web frameworks – tools that are designed to make the process of creating web apps faster and easier. Any web development application like Adobe Dreamweaver, Aptana Studio or even Eclipse can be used to develop mobile web apps. For small projects, a simple text editor like Notepad++ might be sufficient for an experienced web developer. Download Aptana Studio http://www.aptana.com/products/studio3/download Download Notepad++ http://notepad-plus-plus.org/download/v6.3.html W3Schools One of the best websites for learning web development; covers most languages and technologies; great resource for web developers of all levels http://www.w3schools.com/ Sitepoint This site is rich with tutorials in web languages and forums for discussion with other developers http://www.sitepoint.com/ The World Wide Web Consortium (W3C) develops and maintains the open standards that underpin the Internet. Their recommendations for building standards-compliant, accessible websites also apply to building web apps. In addition to these recommendations, the W3C also provides a set of very useful best practices for mobile web app developers. All Standards and Drafts http://www.w3.org/TR/ Web Content Accessibility Guidelines (WCAG) 2.0 http://www.w3.org/TR/2008/REC-WCAG20-20081211/ Mobile Web Application Best Practices http://www.w3.org/TR/mwabp/ National VET E-learning Strategy New Generation Technologies for Learning incorporating E-standards for Training Page 8 Android and iOS App Development Explained Relationship between Mobile Web Best Practices (MWBP) and Web Content Accessibility Guidelines (WCAG) http://www.w3.org/TR/mwbp-wcag/ 4.2.1 Server-side adaptation The idea behind this technique is to build a distinct mobile version of a desktop website and display it instead of the latter in mobile browsers. This is achieved using a process called device detection: when a request is received by the web server (for example the request that is sent when following a link on a web page), it is analysed to determine from which kind of device it was sent; the server then returns the version of the website that is the most appropriate for that device. Because of its cost and complexity, this technique is mostly used by large companies such as Facebook or Twitter, for which it is critical to provide highly customised experience to every single user. For less critical applications, the technique is quickly being replaced by more recent and more easily implemented techniques such as Responsive Web Design. Server-Side Device Detection: History, Benefits And How-To Deep article on server-side adaptation and other adaptation techniques http://mobile.smashingmagazine.com/2012/09/24/server-side-devicedetection-history-benefits-how-to/ 4.2.2 Responsive Web Design (RWD) A website developed using this technique can be viewed on both mobile devices and desktop computers. Instead of having separate versions of the site, only one version is produced that can adapt to any screen size. RWD is a growing topic in the world of web design and development, and the Web abounds with resources and tutorials on the subject. The main tools behind responsive web design are media queries. They are part of the W3C’s CSS3 specification, which is not yet final. Media queries give the developer the ability to choose which way content is displayed, depending on the user’s device specifications. A sub-technique of RWD, called mobile-first RWD, is becoming very popular and is based on the argument that it is easier to design a website for mobile first and then adapt it to bigger screens (i.e. go from a simple to a complex layout), than to do the opposite. Note that RWD is only suitable for relatively simple web apps because the complexity of the development and maintenance process increases exponentially with the number of features and interactions being implemented. The amount of code can quickly get out of hand, for example because of cross-browser issues (each web browser on each platform displays web pages differently), or because some widget or interaction has to be specifically designed to work at particular dimensions. A main benefit of responsive web design is also a limitation; because the same HTML content is provided to both mobile and desktop users, some components of National VET E-learning Strategy New Generation Technologies for Learning incorporating E-standards for Training Page 9 Android and iOS App Development Explained the interface often have to be tweaked or even completely rebuilt with JavaScript after the page has loaded. This in turn can quickly affect performance and therefore reduce the quality of the user experience. Responsive Web Design – A List Apart http://alistapart.com/article/responsive-web-design Responsive Web Design: What It Is and How To Use It Includes a showcase of responsive websites http://coding.smashingmagazine.com/2011/01/12/guidelines-for-responsiveweb-design/ RESS: Responsive Design + Server Side Components Introduces the technique of using both RWD and server-side adaptation http://www.lukew.com/ff/entry.asp?1392 4.2.3 Mobile web frameworks Mobile web frameworks, also called mobile UI (user interface) frameworks, provide authoring environments for creating complex web apps quickly. They come with reusable building blocks, for example interface components (buttons, drop down menus), animations, media integration, etc. that can easily be arranged and customised, in order to considerably simplify the coding process. Some critical aspects of web app development, such as interoperability across browsers and devices, become entirely transparent. This means that developers can focus on other important aspects such as content, user experience and accessibility. It is difficult to choose between one framework and another as they all produce similar results (i.e. cross-platform mobile web apps with the same functionalities). However, some are more advanced than others. For instance, Kendo UI uses client-side adaptation to adapt the look and feel of the app depending on the platform (contrary to server-side adaptation, the detection of the device is done on the client side, with JavaScript). Other frameworks, like jQuery Mobile and iUI, provide pre-made themes for each platform, but they cannot switch from one to the other dynamically like Kendo UI does. This means that if you choose an iOS theme for your app, it will look like an iOS app even when viewed on an Android device. This might be very confusing for the user. Fortunately, it is possible to build or use neutral themes that do not imitate the look and feel of any particular platform. Note also that both jQuery Mobile and Kendo UI provide a powerful online WYSIWYG tool for creating customised themes without having to write any CSS. Download JQuery Mobile http://jquerymobile.com/download/ jQuery Mobile documentation http://view.jquerymobile.com/demos/ National VET E-learning Strategy New Generation Technologies for Learning incorporating E-standards for Training Page 10 Android and iOS App Development Explained ThemeRoller jQuery Mobile’s online theme builder tool http://jquerymobile.com/themeroller/ Beginner guide to a mobile app using the jQuery Mobile JavaScript Framework A-Z tutorial on creating a simple app with jQuery Mobile http://iviewsource.com/codingtutorials/5-minute-guide-to-a-mobile-app-withjquery-mobile/ jQuery Mobile: What Can It Do for You? Advanced guide of jQuery Mobile’s features http://www.elated.com/articles/jquery-mobile-what-can-it-do-for-you/ Purchase Kendo UI Mobile http://www.kendoui.com/purchase.aspx Tutorial: Intro to Building Apps With Kendo UI Mobile http://docs.kendoui.com/tutorials/build-apps-with-kendo-ui-mobile Download iUI http://www.iui-js.org/download Download jQT http://jqtjs.com/ Download LungoJS http://lungo.tapquo.com/ jQuery Mobile Kendo UI Mobile iUI jQT LungoJS jQuery Foundation Telerik iUI Sencha Labs Tapquo Free (open source) $199 Theme builder Yes Yes No No No Pre-made themes for each platform Non-official only Yes Yes No No Device detection for dynamic theme selection No Yes No No No Publisher Pricing Free Free Free (open source) (open source) (open source) Table: Attributes of some mobile web frameworks 4.3 From web to hybrid As discussed previously, web apps lack device integration: they are only accessible online via a web browser and cannot communicate with most of the device’s software National VET E-learning Strategy New Generation Technologies for Learning incorporating E-standards for Training Page 11 Android and iOS App Development Explained and sensors. Some tools, however, have managed to solve these issues by supporting the development of hybrid apps. They also made the development process much easier, as instead of having to use complex languages like ObjectiveC or Java, only common web development skills (HTML, CSS and JavaScript) are required in order to build powerful, cross-platform apps that look and behave like real native applications. 4.3.1 Packaging tools The original process for creating a hybrid app involves packaging tools: you develop your app using a mobile web framework like jQuery Mobile, and then package it inside a native app shell (or template). PhoneGap is a very popular packaging tool and provides plugins to work with a lot of different mobile web frameworks. Its main drawback, however, is that you have to install and use the IDE of each platform on which you want to deploy your app. For instance, if you want to deploy it on both iOS and Android, you’ll have to install, configure and use both Xcode and Eclipse (or one of the other Android alternatives) separately. It makes the process of maintaining and updating an app quite laborious. A recent trend is for packaging tools to come as part of bundles that allow the development of cross-platform hybrid apps from start to end, without using any external web development frameworks. These tools, (unfortunately) called mobile app frameworks (and not to be confused with mobile web frameworks), are described in the next section. Download PhoneGap http://phonegap.com/download/ PhoneGap Developer Portal http://phonegap.com/developer/ Getting started with PhoneGap Tutorial on building a PhoneGap application, including setting up the development environments for iOS, Android and BlackBerry http://www.netmagazine.com/tutorials/getting-started-phonegap Develop Mobile Applications Using PhoneGap and Kendo UI http://www.c-sharpcorner.com/UploadFile/dhananjaycoder/develop-mobileapplications-using-phonegap-and-kendo-ui-par/ 4.3.2 Mobile app frameworks Mobile app frameworks, such as MoSync, Sencha and Icenium, provide all-in-one solutions for building cross-platform hybrid apps in web languages. They combine development framework and packaging tool technologies, and usually provide a number of additional features such as native user interface API (Application Programming Interface), dedicated IDE (Integrated Development Environment), cloud-based development, plugins (SQL database, barcode scanner, etc.), and app store publishing assistance. National VET E-learning Strategy New Generation Technologies for Learning incorporating E-standards for Training Page 12 Android and iOS App Development Explained If you are comfortable with writing JavaScript, you may want to consider Titanium. With this framework, everything has to be developed in JavaScript (instead of HTML and CSS), including the app’s user interface. This specificity allows for the creation of apps with much better performance, which is particularly interesting for mobile game development. Another very powerful framework is Corona SDK (Software Development Kit). Based on a language called Lua, which is growing in popularity, Corona can build native and hybrid apps that perform very well. It is especially favoured by game developers because of its performance and of the simplicity of its language compared to the platforms’ native languages. Corona is also free to download and use, although some advanced features – like in-app purchase – require purchasing the Pro version. MoSync http://www.mosync.com/ MoSync tutorial on getting an app up and running on iOS and Android http://www.mosync.com/documentation/manualpages/getting-started-html5and-javascript Sencha http://www.sencha.com/ Icenium http://www.icenium.com/ Icenium: A cloud-based development platform for hybrid iOS and Android apps Concise overview of Icenium, its features and its innovations http://www.itgeekgurl.com/2013/01/04/icenium-a-cloud-based-developmentplatform-for-hybrid-ios-and-android-apps/ Titanium http://www.appcelerator.com/platform/titanium-platform/ Seven days with Titanium (tutorial) http://cssgallery.info/seven-days-with-titanium-day-0-introduction/ Corona http://www.coronalabs.com/products/corona-sdk/ Corona SDK Technical Tutorials http://www.coronalabs.com/resources/tutorials/ Corona Code Samples http://developer.coronalabs.com/sample-code/ Corona Geeks vodcast webpage http://coronageek.com/ Corona Geeks YouTube Channel http://www.youtube.com/user/CoronaGeek National VET E-learning Strategy New Generation Technologies for Learning incorporating E-standards for Training Page 13 Android and iOS App Development Explained Publisher MoSync Sencha Icenium Titanium Corona MoSync Sencha Telerik Appcelerator Corona Labs Sencha Touch: free (open source) SDK: free $19/month (open source) Free Free (includes Sencha (open source) Kendo UI web Architect: $400 Titanium Pro: $600/year framework) Studio: free Bundle with support: $700 Pricing Specialised IDE Required web programming skills (1-5, 1: low, 5: high) Yes (MoSync Reload) Yes (Sencha Architect) 3 3 Yes (Icenium Yes (Titanium Graphite) Studio) 4 4 No 3 Table: Attributes of some mobile app frameworks 4.4 No coding required The solutions presented in the following sections all provide WYSIWYG, drag-anddrop editors, and can therefore be used without any programming skills. 4.4.1 E-learning content creation software Mobile publishing features have been added to Adobe Captivate, Articulate Storyline and Trivantis Lectora, which are professional solutions for e-learning content creation. Their strengths lie in the fact that they provide many specialised e-learning components and features like quizzes, scoring, and SCORM compliance. They also qualify as rapid development tools, and are therefore one of the fastest solutions for creating custom, highly-interactive apps. Unfortunately, they are limited to HTML5 publishing – i.e. they can only produce mobile web applications (as opposed to native and hybrid apps), which cannot be distributed on the app stores. They are also very expensive solutions.. Note that Storyline comes with its own iPad app, called Articulate Mobile Player, to ensure an optimal user experience on that device when viewing HTML5 content produced with Storyline. Article highlighting the drawbacks of using software like Captivate or Storyline for creating mobile e-learning content http://rjacquez.com/articulate-storyline-vs-adobe-captivate-6-for-ipadpublishing-faq/ National VET E-learning Strategy New Generation Technologies for Learning incorporating E-standards for Training Page 14 Android and iOS App Development Explained Adobe Captivate http://www.adobe.com/au/products/captivate.html Articulate Storyline http://www.articulate.com/products/storyline-overview.php Articulate Mobile Player for iPad https://itunes.apple.com/us/app/articulate-mobile-player/id505546381?mt=8 Lectora http://lectora.com/ Publisher Captivate Storyline Lectora Adobe Articulate Trivantis Lectora Publisher: $1,595 Pricing $1,369 $1,398 Student and Teacher Edition: $374 Academic discount available Lectora Inspire (bundle): $2,495 Lectora Online: $1,290 Output platform/s All platforms (HTML5 web app) iPad (via Articulate Mobile Player) Other platforms (HTML5 web app) All platforms (HTML5 web app) 4.4.2 App creation software and plugins MobiOne is a Windows-based WYSIWYG editor for building simple mobile apps without coding. It works like the e-learning authoring software mentioned in the previous section, except that it specialises in building hybrid mobile apps and is not limited to e-learning applications. MobiOne supports both iOS and Android app design and testing, and includes emulators for iPhone, iPad and Android. It is also very flexible, as it is possible to include custom JavaScript code if the need arises to implement complex behaviours in your app. One of the biggest strengths of MobiOne is its publishing feature. Once your app is complete, the step-by-step process of publishing it to the app stores is done entirely within the software. You also have the option of publishing your app on the web, as a web app. Finally, it is much cheaper than many other solutions, as the license only costs $100. National VET E-learning Strategy New Generation Technologies for Learning incorporating E-standards for Training Page 15 Android and iOS App Development Explained Kwik 2 is a plugin for Photoshop, which lets you add interactivity to your Photoshop files and publish them to Corona SDK. You don’t have to touch any code (you can if you want to), but still get all the advantages of Corona as described in section 4.3.2. App Inventor for Android is a free WYSIWYG tool for creating Android apps quickly and easily. It allows you to build your app’s behaviour by combining simple building blocks on the screen. When a phone is connected to the computer, App Inventor is able to run the app then apply any changes you make to it in real-time. On the down side, the tool is not powerful enough to build games and complex applications. Tumult Hype is a tool for Mac OS for creating HTML5 web content that works on mobile and tablet devices. The system is very focused on animations and interactivity as it is based on key frames and implements a timeline interface, similarly to Adobe Flash. MobiOne http://www.genuitec.com/mobile/ Kwik 2 http://www.kwiksher.com/ App Inventor http://appinventor.mit.edu/ Tumult Hype http://tumult.com/hype/purchasing/ 4.4.3 Online app creation services A lot of websites offer online tools for creating simple apps without any coding. You simply select the components you need, like menus, lists, maps or galleries, then plug in your content, and finally publish your app. The downside of these services is that they are often quite expensive and/or produce apps that are full of ads or are poor in features. (A recommendation would be to choose a service that charges per app rather than per month or year.) Also, some of these online services are limited to iOS app creation. Appsify.me for instance, lets you build native iOS apps for $300 per app. You don’t write any code, but you still need to use Xcode at the end of the project in order to compile and publish your app on the App Store. Other services, like AppFlight are focused on building cross-platform hybrid apps and take care of the publishing process for you. The price depends on the number of platforms you choose to build your app for: $400 for a single platform (iPhone, iPad or Android), or $500 for all three platforms. If you’re looking to build an app for a band, a restaurant or a conference for instance – i.e. a typical app that provides the same features as many other apps, – you may want to search the Web for specialised app creation services. For instance, Attendify National VET E-learning Strategy New Generation Technologies for Learning incorporating E-standards for Training Page 16 Android and iOS App Development Explained lets you build a cross-platform app to hold the program of a conference or event. These services are usually cheaper but a lot more restrictive. Finally, services like Weever Apps are specialised in building mobile web apps. Again, these services are quite limited in terms of features and complexity. Appsify.me https://appsify.me/ AppFlight http://www.appflight.com/ Attendify (formerly KitApps) http://attendify.com/ Weever Apps weeverapps.com Attendify appsify.me AppFlight No No Yes (conferences, events) No Target platform/s iPhone, iPad iPhone, iPad, Android iPhone, Android All platforms (web app) Publishing included? No Yes Yes No Specialised? (formerly KitApps) Weever Apps All 3 platforms: $499 Pricing $300 per app 1 platform only: $399 From $10 per month $249 per event per per app (or $100 per year year per app) + hosting after 1st year: $15 or $10 per month Table: Comparison of some online app creation services 4.5 Exploring alternatives… 4.5.1 E-books E-books are not apps, but they can still be useful for delivering interactive content to mobile and tablet users. The two most popular cross-platform e-book formats are EPUB and PDF, but EPUB is more powerful when creating e-books that look and work well on devices of any size (i.e. reflowable content and adaptive layout). PDF e-books can be converted to EPUB very easily with free software like Calibre (EPUBs created with this technique may need to be edited to ensure they meet accessibility standards). There are many other e-book formats, some of which provide greater interactivity than EPUB. A good National VET E-learning Strategy New Generation Technologies for Learning incorporating E-standards for Training Page 17 Android and iOS App Development Explained example is Apple’s proprietary iBook format (IBA), generated with the free iBooks Author tool for Mac OS X, and viewed with the free iBooks iOS app, or in iTunes on Windows or Macintosh. Many solutions are available for creating e-books. You can either use an authoring tool that can export directly to an e-book format (cf. comparative table below), or simply create a document in a standard format (Word, Pages, PDF, HTML, etc.) and convert it to e-book using one of the many tools available (Calibre, Sigil, iBooks, etc.) E-books can be relatively cheap to create and publish, since each step can be performed without any direct cost apart from time. A plethora of free creation and conversion tools, publishing options and e-book reader apps are readily available for both Windows and Mac OS. How To Make An eBook http://www.smashingmagazine.com/2011/09/29/how-to-make-an-ebook/ Creating ebooks for the iPad, Kindle, nook, and... http://simoncann.com/writing-down-words/creating-ebooks What is the Difference Between EPUB, MOBI, AZW and PDF eBook Formats? http://www.guidingtech.com/9661/difference-between-epub-mobi-azw-pdfebook-formats/ The Best eBook Apps for Your Devices http://www.gsmnation.com/blog/2012/11/02/ebook-readers-for-all-your-iosandroid-and-windows-devices/ How to Use Microsoft Word to Create an Ebook http://www.pcworld.com/article/253618/how_to_use_microsoft_word_to_creat e_an_ebook.html Creating ePub files with Pages http://support.apple.com/kb/HT4168 Download Calibre for converting many standard formats to EPUB http://calibre-ebook.com/ Sigil, free EPUB editor http://code.google.com/p/sigil/ Creating an eBook with InDesign (video tutorial) http://tv.adobe.com/watch/instant-indesign/creating-an-ebook-with-indesignpart-1/ PDF version of the video tutorial Creating an eBook with InDesign (4.1MB) http://www.creativepro.com/files/downloads/InDesignMag_32_ebooks_part1.p df EPUB 3 Accessibility Guidelines http://www.idpf.org/accessibility/guidelines/ National VET E-learning Strategy New Generation Technologies for Learning incorporating E-standards for Training Page 18 Android and iOS App Development Explained Sigil iBooks Author InDesign Publisher Sigil Apple Adobe Platform Windows, Mac, Linux Mac Windows, Mac Free (open source) Free $1,062 EPUB iBooks (IBA), PDF EPUB, PDF Pricing Export formats 4.5.2 Interactive screencasts Camtasia, by TechSmith, is a tool for creating interactive video screencasts with interactive “hotspots” and quizzes. The produced videos are exported to play inside TechSmith’s Smart Player, an HTML5 video player that works in most modern mobile web browsers. Some advanced features require iOS device users to install the TechSmith Smart Player app; iPad users of the app can use doubling to view full screen. Note that it is recommended to export the screencast separately for each of the target devices for optimisation (ratio, frame rate, video format etc.) Camtasia ($300) http://www.techsmith.com/camtasia.html 5 Deploying an App 5.1 iOS 5.1.1 Publishing to the App Store The traditional path to publishing a native or hybrid app to the Apple App Store is complex and hazardous. It is paramount that you familiarise yourself with this process before you start developing. App Distribution Guide The definitive guide for distributing an iOS app http://developer.apple.com/library/ios/#documentation/IDEs/Conceptual/App DistributionGuide App Store Submission Tutorial A straight-to-the-point tutorial on the submission process http://developer.apple.com/library/ios/#documentation/ToolsLanguages/Conc National VET E-learning Strategy New Generation Technologies for Learning incorporating E-standards for Training Page 19 Android and iOS App Development Explained eptual/YourFirstAppStoreSubmission/AboutYourFirstAppStoreSubmission/Ab outYourFirstAppStoreSubmission.html Here are the three most important things to know about Apple’s publishing process: 1. You need to enrol in Apple’s iOS Developer Program ($99/year). 2. You need to use Xcode (available for Mac OS only) at some point during the process. This may be an issue if you plan on using an app framework, authoring tool or online service, in which case you may have to import your project in Xcode and complete the required publishing preparation steps. 3. Every app submitted for publishing goes through a very thorough review process. It is manually tested by Apple’s personnel and must conform to the App Review Guidelines. This review process is known to be stringent and many developers get stuck in lengthy disputes with Apple’s review team. For more information, refer to the following resources: iOS Developer Program https://developer.apple.com/programs/ios/ App Review Guidelines (an Apple ID is required to access the resource) https://developer.apple.com/appstore/resources/approval/guidelines.html iOS Human Interface Guidelines Apps submitted for publishing should also respect the fundamental human interface design principles outlined in this resource https://developer.apple.com/library/ios/#documentation/userexperience/conc eptual/mobilehig/Introduction/Introduction.html Publish apps on App Store: tips & common rejection reasons http://albertogasparin.it/articles/2011/03/publish-app-store-tips/ Xcode User Guide http://developer.apple.com/library/mac/#documentation/ToolsLanguages/Con ceptual/Xcode_User_Guide/ 5.1.2 Publishing tools and services Most mobile app frameworks come with services and tools to help you perform some of the publishing steps. PhoneGap provides a service called PhoneGap Build, and the integrated development environments of some of the major app frameworks (MoSync, Sencha and Titanium) have built-in publishing wizards. None of them, however, can bypass the use of a machine running Mac OS for setting up a distribution certificate and provisioning profile. Building for iOS with Adobe PhoneGap Build https://build.phonegap.com/docs/ios-builds National VET E-learning Strategy New Generation Technologies for Learning incorporating E-standards for Training Page 20 Android and iOS App Development Explained One exception is Icenium. The framework provides an app called Icenium Ion, which, once installed, can run your app without having to publish it to the App Store or provision your device. The main advantage is for testing: Apple normally requires you to provision (register and identify) any device that you want to use for testing. By bypassing this step, the service allows for extremely fast testing and prevents you from having to use Xcode and Mac OS. It also saves you from paying for a developer account while the app is still in development. Of course, this solution is not suited for global distribution since your app basically runs inside another app (Icenium Ion), which must be installed by every one of your users. Also, Icenium is not free; it costs at least $16/month. Publish Your App to Google Play or Apple App Store With Icenium http://docs.icenium.com/publishing-your-app/publish-wizard If you want your app in the App Store but don’t want to take care of the publishing process at all, your only option is to subscribe to an online service like AppFlight and Attendify, and accept the limitations of this type of services (limited features, price, etc.) 5.2 Android The official app store for Android apps is Google Play. Publishing an Android app on Google Play is less restrictive and expensive than publishing an iOS app on the App Store. Here are the most significant differences: The one-time registration fee is $25. You are not restricted in the operating system and IDE that you use. Apps submitted to Google Play do not undergo a manual review process. For more information, refer to the following resources: Publishing Overview http://developer.android.com/tools/publishing/publishing_overview.html Publishing Checklist for Google Play http://developer.android.com/distribute/googleplay/publish/preparing.html The Android platform has a strategy of open distribution, which means that apps can be distributed freely outside of the official marketplace, Google Play. Basically, once your app is complete, it is packaged into a single file that you can share and distribute. For instance, you can: distribute your app through unofficial marketplaces like Amazon Appstore for Android, GetJar or Slide ME share it on your own website send it by email. National VET E-learning Strategy New Generation Technologies for Learning incorporating E-standards for Training Page 21 Android and iOS App Development Explained Users then need to open your app’s package on their device and it will be installed automatically. Open Distribution http://developer.android.com/distribute/open.html Alternative marketplaces for Android apps http://www.digitaltrends.com/mobile/android-app-stores/ 5.3 Web Apps Distributing a mobile web app simply means sharing its URL. This, in turn, means that the app must be hosted on a web server, like a normal website. There are many web hosting services available, with various ranges of features and prices. Many of these services will provide you with a default URL for your app that usually includes their own domain name. If you care about the aesthetic of your URL (because you want to advertise, for instance), you will need to purchase your own domain name. If your app includes server-side components (database, web services, etc.), you need to make sure that the hosting service you choose supports them. Once your app is available online, you can start sharing its URL. If you wish to keep the app private, share the URL with your contacts by email or through your social networks. Or, if you want to distribute your app globally, you can submit its URL to the various independent app stores specialising in mobile web apps. The most wellknown are probably OpenAppMkt, GetJar and AppsFuel. The Apple App Store also has a section for web apps. Another growing store for mobile web apps is the Mozilla Apps Marketplace. It allows developers to publish their apps by simply uploading their ZIP packages. Unfortunately the marketplace only works with the Firefox Aurora browser on Android (as at June 2013). OpenAppMkt http://www.openappmkt.com/ GetJar http://www.getjar.com/ AppsFuel http://appsfuel.com/ Submitting a New App – OpenAppMkt http://openappmkt.pbworks.com/w/page/28182996/Submitting%20a%20New %20App Apple – Web apps http://www.apple.com/webapps/ National VET E-learning Strategy New Generation Technologies for Learning incorporating E-standards for Training Page 22 Android and iOS App Development Explained Firefox Marketplace http://www.mozilla.org/en-US/apps/ 6 Survey results A survey was run in late March 2013, seeking information from teachers and trainers about which tools may be in use by them for the development of apps for mobile devices, and asking respondents to identify their level of expertise in IT. There were 48 responses to the survey. Of those, 30 identified as teacher/trainers, who are the intended audience for this guide. 6.1 Teacher/Trainer responses All of these respondents felt they had at least some expertise in using IT: I can usually work out what to do: 8 I am confident in my IT ability: 20 Only two authoring tools apart from the native SDKs were identified: App Inventor and Weever. App Inventor was given one “quite good” review and one “worst” review; Weever was not rated by the respondent that mentioned it. Aurasma (an augmented reality platform) and KitApps (renamed Attendify) were also volunteered as authoring environments, but they have very specific outputs – augmented reality and conference/event apps respectively. 6.2 Other Stakeholders’ responses These 18 respondents included Content Services Advisors and E-learning Coordinators, along with technical developers, graphic designers and educational designers. Not all respondents provided details of their roles. Fifteen of these respondents identified as “confident in my IT ability”, the remaining two as having “some” expertise. Development environments volunteered as “good” by this group. Environments for outputs that are not technically apps are included. Environment Respondents Comments AppInventor 1 It was a course I attended over three days and was able to develop some cool simple apps. Hype 1 Great for HTML5 animated contents for any platform and device. iBooks Author 1 National VET E-learning Strategy New Generation Technologies for Learning incorporating E-standards for Training Page 23 Android and iOS App Development Explained Environment Respondents Comments InDesign 1 Good tool for iOS development but a huge cost for Android development, as much as $7000.00 just to get your foot into the Android door. PhoneGap 3 I don't need to learn many different languages to produce an app using PhoneGap. I don't particularly like the performance of the apps that are created, but it does mean I can create an app leveraging my existing skills as a web developer. Allows you to use device specific functions from javascript xCode 1 Table: Comments from other stakeholders about development environments they consider to be good. Neither group listed any environment as poor, but comments (both by technical developers) provided outside the survey included the following: “I did the survey. I think that another question that may have been asked was ‘Have you found other/better ways to develop resources for a mobile device’. To that I would have answered “build a website using responsive design to display resources appropriately on all devices and computers”. It’s a lot quicker and it really doesn’t need a lot of up skilling - unlike actual app development. If monetizing apps/resources/information is not important I would website-e-tize it. Some of our negative experiences creating an app had nothing to do with the actual development but getting access to the store: Apple took a long long time to process our request because they couldn’t decide if we were creating an account for education or for business purposes even though we were quite clear on our application form and in our phone conversations with them. We kept getting shuffled from desk to desk. During that prolonged time our manager changed and we needed to start the process again. In our experience it can take months to get access to the store let alone an app in to the store. If teachers or education facilities need something up quickly they likely won’t be able to and will need to plan at least six months ahead (minimum). National VET E-learning Strategy New Generation Technologies for Learning incorporating E-standards for Training Page 24 Android and iOS App Development Explained Build a website. ” “Personally I have tried a fair chunk of the app development methodologies listed in your guide and found Corona to be the quickest, easiest and most wide reaching way to develop apps.” More Information National VET E-learning Strategy Email: flag_enquiries@natese.gov.au Website: flexiblelearning.net.au New Generation Technologies for Learning incorporating E-standards for Training Email: e-standards@flexiblelearning.net.au Website: e-standards.flexiblelearning.net.au National VET E-learning Strategy New Generation Technologies for Learning incorporating E-standards for Training Page 25