






















































































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Has detailed data on the creation of mobile applications from all platforms
Typology: Lecture notes
1 / 94
This page cannot be seen from the preview
Don't miss anything!























































































A Centre of Excellence
Presented by GATIMU
Multiplatform mobile application development The cross-platform app market and the amount of cross platform mobile app development tools is on the rise. So which are the best platforms, resources and tools to code for iOS, Android, Windows and more all at the same time? There are advantages to native applications, but a well-made cross-platform mobile app will make the differences seem small and carry the advantage that users on more than one platform have access to your product or service. It refers to the development of mobile apps that can be used on multiple mobile platforms. In the business world, a growing trend called BYOD (Bring Your Own Device) is rising. BYOD refers to employees bringing their own personal mobile device into the workplace to be used in place of traditional desktop computers or company-provided mobile devices for accessing company applications and data. Because of BYOD, it has become necessary for businesses to develop their corporate mobile apps and be able to send them to many different mobile devices that operate on various networks and use different operating systems.
Cross-platform mobile development can either involve a company developing the original app on a native platform (which could be iOS, Android, Windows Mobile, BlackBerry/RIM, etc.) or developing the original app in a singular environment for development that will then allow the app to be sent to many different native platforms. There are both pros and cons to cross-platform mobile app development. These tools are useful because they decrease costs and increase the speed at which apps are developed. In addition, cross-platform mobile development tools are generally quite simple to use as they are based off of the common languages for scripting, including CSS, HTML, and JavaScript.
However, cross-platform mobile development does have a few drawbacks.
First, mobile operating systems are frequently updated. Whenever a mobile operating system receives a new update, the applications must also be updated to be compatible with the new system. In addition, rendering times with cross-platform mobile development may be longer as each operating system needs a separate set of code.
It‘s divided in the following sections:
PhoneGap is probably the most well-known cross platform development brand within the development community. The now Adobe-owned tool is based on the open source Apache Cordova project and is completely free to use, which goes some way to explain its popularity. Adobe is also working on an enterprise version of PhoneGap, which is currently undergoing a beta trial – and you can sign-up for it here. The enterprise version boasts marketing features via Adobe‘s Marketing Cloud, so when it launches it will probably be monetised. Sencha
Sencha offers a variety of tools for cross platform app development such as Sencha Architect, Sencha Animator, and more. It‘s main product for enterprise users is Ext JS 5, which lets developers create HTML5 apps, which can then be converted into native apps with PhoneGap. Sencha‘s HTML5-focused approach allow its apps to run across browsers as well as the latest touch-based devices and has attracted clients such as Google, CNN and Samsung. The platform is priced at $3,225 per year for up to five developers and then $12,495 per year for up to 20 developers. Appcelerator
Appcelerator is an enterprise-focused development platform that lets developers write JavaScript with its Alloy MVC framework. The use of JavaScript is helpful, as many developers will already be familiar with the language, reducing the need to spend time getting to grips with unfamiliar code. Appcelerator also offers a virtual private cloud option for enterprise customers, which is great news if you work with sensitive company data. The enterprise product also comes with analytics, performance management and monitoring and dedicated infrastructure. But you‘ll have to contact them directly for pricing iFactr
iFactr is designed mainly for enterprises looking to quickly build out apps for their mobile workers. The company says its platform offers a very low learning curve, allowing developers to get to grips with the basics within two to three days of training. iFactr also promotes its robust prototyping features, allowing companies to rapidly create prototypes for their employees to test out. The iFactr platform uses Xamarin to compile its native apps on iOS and Android, while PhoneGap is also built into the tool. You can request an evaluation version of iFactr right here. An introduction to iFactr Kony
Kony offers a range of tools as part of its enterprise Mobility Platform to help business create apps from a single codebase. The Studio platform uses JavaScript and features simple drag and drop reusable widgets and the ability to import existing or third party libraries. Furthermore, Kony recently launched its Mobile Fabric platform, which it claims is the first enterprise app development solution to bring together multiple cloud service and middleware tools. Pricing for Mobile Fabric starts at $15 per user, per month. A free trial is available. Alpha Anywhere
Cocos2D – 2 D apps made easy, especially for iOS, with this major development tool. Builds from a single codebase and covers C++, JavaScript, Swift and Objective-C. Qt – Boasts that 8 of the top 10 Fortune 500 companies use its interface-led tool for creating cross-platform applications. BiznessApps – Affordable HTML5, iOS and Android platform made with small and medium business apps in mind. MobinCube – A simple interface for building consumer apps, boasts 100,000+ mobile applications created with its platform and over 126 million downloads. AppsMoment – One of the ―coding-less‖ platforms to create apps without having to learn the language underneath. 300+ templates, 120 features and also covers Kindle apps. RubyMotion – Allows you to code, run and test iOS, OSX and Android apps on any device. A huge set of tools and resources, allows to implement 3rd party libraries and has been used by salesforce and BaseCamp, among others. Ionic – Used to build over two million apps, this open source tool is free at signup and through development, its pricing plan of $39/month only starting when your first app is published. There are higher tiers for more features. Dropsource – One of the newer options in this list, a browser-based app builder that lets you create native apps for iOS and Android with its automated programming. Yapp – Specific, simple and quick, an app-builder for events, conferences and meetings. Corona – While focused on games and 2D development, this popular builder can also create ―normal apps‖ and has a very wide user- and knowledge-base. Build Games for Mobile, TV, and Desktop using Corona SDK Kinvey – Back-end service specific for mobile apps and can be applied cross platform. Mag+ – This SDK is compatible with most languages, allowing you to code on top of pre- existing projects. Also has an iPad-specific app. Xojo – As well as covering the desktop, mobile and iOS, it is one of the few tools that lets you code for Raspberry Pi. The company also offers cloud hosting, but the platform does not produce Android apps. Coding environments are all well and good, but you should probably know about the underlying languages too.
Languages Java – The mobile cross-platform language ‗par excellence‘, you really can‘t go wrong by using this for apps compatible almost anywhere. C++ – A lower language than Java, and an extremely useful one at that – it is basically ubiquitous. Not the first recommendation because it often puts extra strain on a mobile‘s resources. C# – The Microsoft world equivalent of Objective-C for Mac, but it is quickly becoming a favourite for cross-platform web apps. HTML5 – The HTML5 standard will make your apps compatible on desktop as well – indeed, that‘s what it was designed for. Still being improved, but very strong when coupled with JavaScript (below). JavaScript – The scripting language for HTML5, isn‘t particularly useful on its own but when running alongside HTML5 results in highly effective apps. Ruby – One of the newer languages here, it was designed specifically for mobile and to be as simple (and resource-light) as possible. Once you‘ve chosen a language, stick with it by following these tutorials. Language Tutorials There are plenty of tutorials for all the major languages, but here is a selection of some of the best one. Java The Java Tutorials – The official tutorials by Oracle on the Java language. Javanotes – If you prefer reading to sitting in front of a computer, a book on learning Java could be your thing. Freeware Java – Very useful and in-depth Java tutorial recommended by the /r/learnjava subreddit. Tutorialspoint – Highly rated, modular tutorial. C++ Engineer for Free – An entire youtube course (47 videos) for learning C++, organised into a single website. Penguin Programmer – One of the few text-based tutorials on C++ available online.
HTML5 Tutorial – 1 – Introduction Source: youtube.com Html- 5 - Tutorial – Does what it says on the tin really. Breaks down the essentials of HTML very well.
iOS
iOS (formerly iPhone OS ) is a mobile operating system created and developed by Apple Inc. exclusively for its hardware. It is the operating system that presently powers many of the company's mobile devices, including the iPhone, iPad, and iPod Touch. It is the second most popular mobile operating system globally after Android.
Originally unveiled in 2007 for the iPhone, iOS has been extended to support other Apple devices such as the iPod Touch(September 2007) and the iPad (January 2010). As of January 2017, Apple's App Store contains more than 2.2 million iOS applications, 1 million of which are native for iPads. These mobile apps have collectively been downloaded more than 130 billion times.
The iOS user interface is based upon direct manipulation, using multi-touch gestures. Interface control elements consist of sliders, switches, and buttons. Interaction with the OS includes gestures such as swipe, tap, pinch, and reverse pinch, all of which have specific definitions within the context of the iOS operating system and its multi-touch interface. Internal accelerometers are used by some applications to respond to shaking the device (one common result is the undo command) or rotating it in three dimensions (one common result is switching between portrait and landscape mode). Apple has been significantly praised for incorporating thorough accessibility functions into iOS, enabling users with vision and hearing disabilities to properly use its products.
Major versions of iOS are released annually. The current version, iOS 11, was released on September 19, 2017. It is available for all iOS devices with 64 - bit processors; the iPhone 5S and later iPhone models, the iPad (2017), the iPad Air and later iPad Air models, all iPad Pro models, the iPad Mini 2 and later iPad Mini models, and the sixth-generation iPod Touch.
Software updates
Platform usage as measured by the App Store on September 3, 2018.
iOS 11 (85%) iOS 10 (10%) iOS 9 and earlier (5%)
Apple provides major updates to the iOS operating system annually via iTunes and also, for iOS 5 and later, over-the-air.[48]^ The latest version is iOS 11, released on September 19, 2017.[49]^ It is available for iPhone 5S and later, iPad Air and later, iPad Pro, iPad Mini 2 and later, and sixth- generation iPod Touch.[50]
Originally, iPod Touch users had to pay for system software updates. This was due to accounting rules making the device not a "subscription device" like iPhone or Apple TV, and significant enhancements to the device required payments.[51][52]^ The requirement to pay to upgrade caused iPod Touch owners to stay away from updates.[53]^ However, in September 2009, a change in accounting rules won tentative approval, significantly affecting both Apple's earnings and stock price, and allowing iPod Touch updates to be delivered for free.[54][55]
through jailbreaking, but can now be changed out-of-the-box. The screen has a status bar across the top to display data, such as time, battery level, and signal strength. The rest of the screen is devoted to the current application. When a passcode is set and a user switches on the device, the passcode must be entered at the Lock Screen before access to the Home screen is granted.[57]
In iPhone OS 3, Spotlight was introduced, allowing users to search media, apps, emails, contacts, messages, reminders, calendar events, and similar content. In iOS 7 and later, Spotlight is accessed by pulling down anywhere on the home screen (except for the top and bottom edges that open Notification Center and Control Center).[58][59]^ In iOS 9, there are two ways to access Spotlight. As with iOS 7 and 8, pulling down on any homescreen will show Spotlight. However, it can also be accessed as it was in iOS 3 – 6. This gives a Spotlight endowed with Siri suggestions, which include app suggestions, contact suggestions and news.[60]^ In iOS 10, Spotlight is at the top of the now-dedicated "Today" panel.[61]
Since iOS 3.2, users are able to set a background image for the Home screen. This feature is only available on third-generation devices—iPhone 3GS, third-generation iPod touch (iOS 4.0 or newer), all iPad models (since iOS 3.2)—or newer.
Researchers found that users organize icons on their homescreens based on usage-frequency and relatedness of the applications, as well as for reasons of usability and aesthetics.[62]
System font
iOS originally used Helvetica as the system font. Apple switched to Helvetica Neue exclusively for the iPhone 4 and its Retina Display, and retained Helvetica as the system font for older iPhone devices on iOS 4.[63]^ With iOS 7, Apple announced that they would change the system font to Helvetica Neue Light, a decision that sparked criticism for inappropriate usage of a light, thin typeface for low-resolution mobile screens. Apple eventually chose Helvetica Neue instead.[64][65]^ The release of iOS 7 also introduced the ability to scale text or apply other forms of text accessibility changes through Settings.[66][67]^ With iOS 9, Apple changed the font to San Francisco, an Apple-designed font aimed at maximum legibility and font consistency across its product lineup.[68][69]
Folders
iOS 4 introduced folders, which can be created by dragging an application on top of another, and from then on, more items can be added to the folder using the same procedure. A title for the folder is automatically selected by the category of applications inside, but the name can also be edited by the user.[70]^ When apps inside folders receive notification badges, the individual numbers of notifications are added up and the total number is displayed as a notification badge on the folder itself.[70]^ Originally, folders on an iPhone could include up to 12 apps, while folders on iPad could include 20.[71]^ With increasing display sizes on newer iPhone hardware, iOS 7 updated the folders with pages similar to the home screen layout, allowing for a significant expansion of folder functionality. Each page of a folder can contain up to nine apps, and there can be 15 pages in total, allowing for a total of 135 apps in a single folder.[72]^ In iOS 9, Apple updated folder sizes for iPad hardware, allowing for 16 apps per page, still at 15 pages maximum, increasing the total to 240 apps.[73]
Notification Center
Before iOS 5, notifications were delivered in a modal window and couldn't be viewed after being dismissed. In iOS 5, Apple introduced Notification Center, which allows users to view a history of notifications. The user can tap a notification to open its corresponding app, or clear it.[74]^ Notifications are now delivered in banners that appear briefly at the top of the screen. If a user taps a received notification, the application that sent the notification will be opened. Users can also choose to view notifications in modal alert windows by adjusting the application's notification settings. Introduced with iOS 8, widgets are now accessible through the Notification Center, defined by 3rd parties.
When an app sends a notification while closed, a red badge appears on its icon. This badge tells the user, at a glance, how many notifications that app has sent. Opening the app clears the badge.
Accessibility
iOS offers various accessibility features to help users with vision and hearing disabilities. One major feature, VoiceOver, provides a voice reading information on the screen, including contextual buttons, icons, links and other user interface elements, and allows the user to navigate the operating system through gestures. Any apps with default controls and developed with a
In iOS 5, three new background APIs were introduced:
In iOS 7, Apple introduced a new multitasking feature, providing all apps with the ability to perform background updates. This feature prefers to update the user's most frequently used apps and prefers to use WiFi networks over a cellular network, without markedly reducing the device's battery life.
Switching applications
In iOS 4.0 to iOS 6.x, double-clicking the home button activates the application switcher. A scrollable dock-like interface appears from the bottom, moving the contents of the screen up. Choosing an icon switches to an application. To the far left are icons which function as music controls, a rotation lock, and on iOS 4.2 and above, a volume controller.
With the introduction of iOS 7, double clicking the home button also activates the application switcher. However, unlike previous versions it displays screenshots of open applications on top of the icon and horizontal scrolling allows for browsing through previous apps, and it is possible to close applications by dragging them up, similar to how WebOS handled multiple cards.[91]
With the introduction of iOS 9, the application switcher received a significant visual change; whilst still retaining the card metaphor introduced in iOS 7, the application icon is smaller, and appears above the screenshot (which is now larger, due to the removal of "Recent and Favorite Contacts"), and each application "card" overlaps the other, forming a rolodexeffect as the user scrolls. Now, instead of the home screen appearing at the leftmost of the application switcher, it appears rightmost.[92]^ In iOS 11, the application switcher receives a major redesign. In the iPad, the Control Center and app switcher are combined. The app switcher in the iPad can also be accessed by swiping up from the bottom. In the iPhone, the app switcher cannot be accessed if there are no apps in the RAM.
Ending tasks
In iOS 4.0 to iOS 6.x, briefly holding the icons in the application switcher makes them "jiggle" (similarly to the homescreen) and allows the user to force quit the applications by tapping the red minus circle that appears at the corner of the app's icon.[93]^ Clearing applications from multitasking stayed the same from iOS 4.0 through 6.1.6, the last version of iOS 6.
As of iOS 7, the process has become faster and easier. In iOS 7, instead of holding the icons to close them, they are closed by simply swiping them upwards off the screen. Up to three apps can be cleared at a time compared to one in versions up to iOS 6.1.6.[94]
Task completion
Task completion allows apps to continue a certain task after the app has been suspended.[95][96]^ As of iOS 4.0, apps can request up to ten minutes to complete a task in the background.[97]^ This doesn't extend to background up- and downloads though (e.g. if you start a download in one application, it won't finish if you switch away from the application).
Siri Main article: Siri
Siri (/ˈsɪəri/) is an intelligent personal assistant integrated into iOS. The assistant uses voice queries and a natural language user interface to answer questions, make recommendations, and perform actions by delegating requests to a set of Internet services. The software adapts to users' individual language usages, searches, and preferences, with continuing use. Returned results are individualized.
support was also enforced for all apps in the App Store; All new apps submitted to the App Store with a deadline of February 2015, and all app updates submitted to the App Store with a deadline of June 1, 2015.[117]^ iOS 11 drops support for all iOS devices with 32-bit ARM processors as well as 32-bit applications,[118][119]^ making iOS 64-bit only.[120]
Development
The iOS SDK (Software Development Kit) allows for the development of mobile apps on iOS.
While originally developing iPhone prior to its unveiling in 2007, Apple's then-CEO Steve Jobs did not intend to let third-party developers build native apps for iOS, instead directing them to make web applications for the Safari web browser.[121]^ However, backlash from developers prompted the company to reconsider,[121]^ with Jobs announcing in October 2007 that Apple would have a software development kit available for developers by February 2008.[122][123]^ The SDK was released on March 6, 2008.[124][125]
The SDK is a free download for users of Mac personal computers.[126]^ It is not available for Microsoft Windows PCs.[126]^ The SDK contains sets giving developers access to various functions and services of iOS devices, such as hardware and software attributes.[127]^ It also contains an iPhone simulator to mimic the look and feel of the device on the computer while developing.[127]^ New versions of the SDK accompany new versions of iOS.[128][129]^ In order to test applications, get technical support, and distribute apps through App Store, developers are required to subscribe to the Apple Developer Program.[126]
Combined with Xcode, the iOS SDK helps developers write iOS apps using officially supported programming languages, including Swift and Objective-C.[130]^ Other companies have also created tools that allow for the development of native iOS apps using their respective programming languages.[131][132]
Market share
iOS is the second most popular mobile operating system in the world, after Android. Sales of iPads in recent years are also behind Android, while, by web use (a proxy for all use), iPads (using iOS) are still most popular.[133]
By the middle of 2012, there were 410 million devices activated.[134]^ At WWDC 2014, Tim Cook said 800 million devices had been sold by June 2014.[135]
During Apple's quarterly earnings call in January 2015, the company announced that they had sold over one billion iOS devices since 2007.[136][137]
By late 2011, iOS accounted for 60% of the market share for smartphones and tablets.[138]^ By the end of 2014, iOS accounted for 14.8% of the smartphone market[139]^ and 27.6% of the tablet and two-in-one market.[140]^ In February 2015, StatCounter reported iOS was used on 23.18% of smartphones and 66.25% of tablets worldwide, measured by internet usage instead of sales.[141]
In the third quarter of 2015, research from Strategy Analytics showed that iOS adoption of the worldwide smartphone market was at a record-low 12.1%, attributed to lackluster performance in China and Africa. Android accounted for 87.5% of the market, with Windows Phone and BlackBerry accounting for the rest.[142][143]
Jailbreaking
Since its initial release, iOS has been subject to a variety of different hacks centered around adding functionality not allowed by Apple.[144]^ Prior to the 2008 debut of Apple's native iOS App Store, the primary motive for jailbreaking was to bypass Apple's purchase mechanism for installing the App Store's native applications.[145]^ Apple claimed that it will not release iOS software updates designed specifically to break these tools (other than applications that perform SIM unlocking); however, with each subsequent iOS update, previously un-patched jailbreak exploits are usually patched.[146]
Since the arrival of Apple's native iOS App Store, and—along with it—third-party applications, the general motives for jailbreaking have changed.[147]^ People jailbreak for many different reasons, including gaining filesystem access, installing custom device themes, and modifying SpringBoard. An additional motivation is that it may enable the installation of pirated apps. On some devices, jailbreaking also makes it possible to install alternative operating systems, such as Android and the Linux kernel. Primarily, users jailbreak their devices because of the limitations of iOS. Depending on the method used, the effects of jailbreaking may be permanent or temporary.[148]