Labels

Saturday, December 26, 2015

Mobile Apps Development

Industry is moving  every possible application to run on tablets, smartphones, and even smartwatches.
 
Mobile Apps Development Technologies
 
When it comes to mobile app development technology, you need decide what type of app works best for you:
  1. Native App
  2. Web App
  3. Hybrid App
 
Native and Hybrid apps are installed in an App store, whereas Web Apps are Mobile-Optimized Webpages that look like an App.
Both Hybrid and Web apps render HTML web pages, but Hybrid apps use app-embedded browsers to do that.
I.e. Hybrid app can be installed on a device like a Native app can, but it runs via a web browser.
 
1). Native Mobile Apps
 
Native mobile apps are likely what come to mind when you think of apps.
A native app is one that is developed to be ‘native’ to a specific platform:
  • Apple’s iOS,
  • Google’s Android,
  • Windows Phone or
  • BlackBerry OS (decreasingly)
 
Native apps live on the device and are accessed through icons on the device home screen. Native apps are installed through an application store (such as Google Play or Apple’s App Store). They are developed specifically for one platform, and can take full advantage of all the device features — they can use the camera, the GPS, the accelerometer, the compass, the list of contacts, and so on. They can also incorporate gestures (either standard operating-system gestures or new, app-defined gestures). And native apps can use the device’s notification system and can work offline.
 
Pros: Pros of native app is that it optimizes the user experience; the app will operate more quickly because it’s been designed specifically for that platform.
Cons: If you wish to build and launch your app on more than one platform (e.g. a chat messenger) you almost need to start each one from scratch.
 
Apple’s iOS:
  • Language - Objective-C:  One of the hardest programming languages to master.
  • The good news is that Apple provides its developer community with very good tools. E.g. Xcode
 
Google’s Android:
  • Language -  Java.
  • Java is a more common language than Objective-C and has less of a learning curve.
  • However, the tools available to create apps for Android—including the most popular tool, Eclipse—aren’t as good as Xcode;
  • Also a new tool called Android Studio could eventually deliver the same quality of development support as Apple’s tool.
 
Windows Phone:
  • Language: C# or VB.NET languages.
  • Microsoft’s Visual Studio is a great tool for building an app—it’s probably the most developer-friendly of the three main platforms.
  • Microsoft offers a variant of Visual Studio (Visual Studio Express) for developing Windows Phone applications with .NET.
  • Visual Studio Express offers approved Visual Studio functionality together with Windows Phone specific tooling like a graphical UI builder or phone emulator
 
2). Web Apps
 
There are actually three types of web apps:
  • Traditional,
  • Responsive and
  • Adaptive
 
Web Apps are typcially built using a language called HTML5
 
Web apps are not real applications; they are really Websites that, in many ways, look and feel like native applications, but are not implemented as such. They are run by a browser and typically written in HTML5.
Users first access them as they would access any web page: they navigate to a special URL and then have the option of “installing” them on their home screen by creating a bookmark to that page.
Web apps became really popular when HTML5 came around and people realized that they can obtain native-like functionality in the browser.
Today, as more and more sites use HTML5, the distinction between web apps and regular web pages has become blurry.
 
Good example - iPhone web app (app.ft.com) –
  • In 2011 Financial Times withdrew its native app from Apple’s App Store to circumvent subscription fees.
  • Instead, it came out with an iPhone web app (app.ft.com):
  • Users can swipe horizontally to move on to new sections of the app. And, due to browser caching, it’s even possible to read the newspaper offline.
 
HTML5 given multiple features to Web apps - GPS, the tap-to-call feature, and, there is talk about a camera API
There are, however, native features that remain inaccessible (at least from now) in the browser: the notifications, running in the background, accelerometer information (other than detecting landscape or portrait orientations), complex gestures. But if you really need those native features, you’ll have to create a native app or, at least, a hybrid app.
 
Cons: Web Apps cannot work with other apps, storing and retrieving files from particular locations, and direct control of device hardware among them -- that are possible with a dedicated app.
 
Traditional Web Apps:
  • This include any website.
 
Responsive Web Apps:
  • This takes on a different design when it’s opened on a mobile device (i.e. phone or tablet), altering its design to suit the device it is viewed on.
  • A ready example of a responsive web app is the Upwork blog.
  • Cons:
  • It can’t use any hardware on a device (i.e. an iPhone’s camera)
  • Its “discoverability” will be reduced because it won’t be in any app stores.
 
Adaptive Web Apps:
  • This in contrast, doesn’t change its design. It will display the same design, but will adjust it to fit the different screen size of a mobile device
  • The biggest benefit of web apps is that they are built using the most popular programming languages—so developer talent is readily available.
 
 
3). Hybrid Mobile Apps
 
A hybrid app can be installed on a device like a native app can, but it runs via a web browser.
These apps are built using a language called HTML5.
 
Hybrid apps are part Native apps, part Web apps. (Because of that, many people incorrectly call them “web apps”).
Like native apps, they live in an app store and can take advantage of the many device features available.
Like web apps, they rely on HTML being rendered in a browser, with the caveat that the browser is embedded within the app.
 
Often, companies build hybrid apps as wrappers for an existing web page; in that way, they hope to get a presence in the app store, without spending significant effort for developing a different app.
Hybrid apps are also popular because they allow cross-platform development and thus significantly reduce development costs: that is, the same HTML code components can be reused on different mobile operating systems.
 
Tools such as PhoneGap and Sencha Touch allow people to design and code across platforms, using the power of HTML.
 
Good example - Walgreens –
  • Walgreens provides two very similar Hybrid Apps– one for Android and the other for iPhone.
  • Both apps have multiple sections and many native features such as access to notifications and a Refill by scan feature that uses the phone camera to refill prescriptions:
 
In 2012, HTML5 appeared to be the future of mobile; leading companies like Facebook, LinkedIn and Xero had jumped in and it was getting a lot of attention.
Well later many of these companies ditch their existing HTML5 apps and start again with native apps.
The reasons for this are simple—these hybrid apps are not as fast, reliable or smooth as native apps.
 
Despite these challenges, the debate continues. The potential for HTML5 is certainly enormous as there’s a definite benefit in not having to build and maintain apps for separate native platforms, significantly involving time and resources. Facebook, for example, employs 300 designers and developers on its iOS team and 300 on its Android team.
 
Hope this helps.
 
Regards,
Arun
 
P.S. - To learn more about the app creation process, AppInstruct’s online course explains the technical elements of mobile app development in greater depth.
               
 

No comments:

Post a Comment