Wednesday 31 December 2014

Mobile Game Development In Future

Mobile Game Development is growing rapidly creating big boom in all aspects. As many mobile game developers emerge everyday, the mobile gaming and innovations in this field improves rapidly. Yet the world in infant stage in mobile gaming when compared to PC and console games. This article speaks about the developments that will overtake the mobile game development scenario in a few years.

Future Mobile Game Development

The following topics are the new emerging trends in the mobile gaming world. And these trends will conquer the entire market in a few years to come. 

  • Massive Multiplayer Mobile Game Development
  • Interactive Server
  • Advertising/Promoting Through Mobile Games 
  • Promoting Cinemas/Movies Through Mobile Games
  • Advertising New Products Through Mobile Games
  • 3d Real World Scenario Mobile Games

Massive Multiplayer Mobile Game Development

The 3rd generation games with AI computer players are getting outdated today and the global multiplayer is getting its value. For this reason Online Massive Multiplayer Mobile Game Development is introduced, where players play against many other people around the world with their mobile phones. Definitely in a few years massive multiplayer mobile games will hit the market like the PC game scenario. Today, there is very little number of global multiplayer mobile games available in the market like Find4 by Smackall.com.

Interactive Server

This Massive Multiplayer Mobile Game is using the GPRS connection for the networking with a central server acting as router. It is almost the same as Nokia’s SNAP technology. This trend will soon get popular around the mobile game players. Smackall.com has developed the Massive Multiplayer Mobile Game SDK for FIND4 game. A customize SDK and the server is now available for sale.

Advertising/Promoting Through Mobile Games
Advertising and promoting a product is totally getting changed to new concept. Consumer product based companies are advertising their products through the PC games and with other entertainment products. As the mobile gaming have a very market and the advertisements reach very closer to the customers. It is very helpful for mobile game developer to make their games cost effectiveness and earn big revenue from them.

Promoting Cinemas/Movies through Mobile Games

Nowadays, film promoters look for publishing their cinemas/movies through other entertainment Medias. For this reason many producers and film makers come up for developing a game based on the movie. This type of publishing or promoting will reach the right customer and the right age group which the film is aiming at. So that today’s film directors are promoting their films through the mobile games with the help of custom mobile game developers. Games are developed based on the characters from the movie. These types of games will reach the customer soon and bring a good result as the character is familiar and the game story resembles the one they are impressed on. 

Advertising New Products through Mobile Games

Mobile Game Development is moving towards advertising market to make it cost effective and earn more revenue from each game. Some consumer product based companies have started investing on games. For example a famous painkiller in India has advertised on a mobile game in which they player uses their product for injuries. This type of advertising has become familiar in mobile game industries today. Soon there will be running displays in the bottom of the screen to hold advertisements and flash news.

3d Real World Scenario Mobile Games

Today in mobile game development there is lot of restrictions and minimal resources available for game developmentArticle Search, like CPU and memory in the device. The mobile gaming industry has just reached 3D gaming and soon there will be real world scenario games on mobile phones.

Sunday 28 December 2014

The MVVM (iOS) Basics


If you’ve been developing iOS applications for any length of time, you’ve probably heard of Model-View-Controller, or MVC. It’s your standard approach to building iOS apps.  Lately, however, I’ve been growing tired of some of MVC’s shortcomings. In this article, I’m going to go over what MVC is, detail its weaknesses, and tell you about a new way to structure your apps: Model-View-ViewModel.

Source code : https://github.com/sibahota059/MVVM-iOS


Model-View-Controller

Model-View-Controller is the definitive paradigm within which to structure your code. Apple even says so. Under MVC, all objects are classified as either a model, a view, or a controller. Models hold data, views present an interactive interface to the user, and view controllers mediate the interaction between the model and the view.

In our diagram, the view notifies the controller of any user interaction. The view controller then updates the model to reflect the change of state. That model then (typically through Key-Value-Observation) notifies any controllers of updates they need to perform on their views. This mediation makes up a lot of the application code written in iOS apps.

Model objects are typically very, very simple. Often times, they’re Core Data managed objects or, if you prefer to eschew Core Data, other popular model layers. According to Apple, models contain data and logic to manipulate that data. In practice, models are often very thin and, for better or worse, model logic gets shuffled into the controller.

Views (typically) are either UIKit components or programmer-defined collections of UIKit components. These are the pieces that go inside your .xib or Storyboard: the visual and interactable components of an app. Buttons. Labels. You get the idea. Views should never have direct references to models and should only have references to controllers through IBAction events. Business logic that doesn’t pertain to the view itself has no business being there.

That leaves us with controllers. Controllers are where the “glue code” of an app goes: the code that mediates all interactions between models and views. Controllers are responsible for managing the view hierarchy of the view they own. They respond to the view loading, appearing, disappearing, and so on. They also tend to get laden down with the model logic that we kept out of our model and the business logic we kept out of our views. That leads us to our first problem with MVC…

Massive View Controller

Because of the extraordinary amount of code that’s placed in view controllers, they tend to become rather bloated. It’s not unheard of in iOS to have view controllers that stretch to thousands and thousands of lines of code. These bulging pieces of your app weigh it down: massive view controllers are difficult to maintain (because of their sheer size), contain dozens of properties that make their state hard to manage, and conform to many protocols which mixes that protocol response code with controller logic.
Massive view controllers are difficult to test, either manually or with unit tests, because they have so many possible states. Breaking your code up into smaller, more bite-sized pieces is typically a very good thing.

Missing Network Logic

The definition of MVC – the one that Apple uses – states that all objects can be classified as either a model, a view, or a controller. All of ‘em. So where do you put network code? Where does the code to communicate with an API live?
You can try to be clever and put it in the model objects, but that can get tricky because network calls should be done asynchronously, so if a network request outlives the model that owns it, well, it gets complicated. You definitely should not put network code in the view, so that leaves… controllers. This is a bad idea, too, since it contributes to our Massive View Controller problem.
So where, then? MVC simply doesn’t have a place for code that doesn’t fit in within its three components.

Poor Testability

Another big problem with MVC is that it discourages developers from writing unit tests. Since view controllers mix view manipulation logic with business logic, separating out those components for the sake of unit testing becomes a herculean task. A task that many ignore in favour of… just not testing anything.

Introducing MVVM

One issue facing iOS developers is how to deal with major iOS updates for existing projects. More specifically, how to implement UI/UX changes as iOS evolves. Because iOS uses a combined view-controller design, this task can require a greater level of effort than should be necessary. Here’s why: because the view and controller are coupled, an iOS view-controller class will usually contain both UI logic and business logic. This means that changes in the way the view is presented (UI logic) will usually also require changes to business logic within the same view controller class.

Further, as view controller classes implement increasingly complex UI requirements, the amount of business-logic code also tends to grow within the same view controller class. This, is turn, typically results in large, unwieldy, and difficult-to-read view controller classes.

Wouldn’t it be better to have thin, flexible, easy-to-read view controller classes in iOS?

You might have seen this joke on Twitter a while back:
“iOS Architecture, where MVC stands for Massive View Controller” via Colin Campbell


The MVVM Design Pattern

The “Model-View ViewModel” design pattern, or “MVVM”, is similar to the MVC as implemented in iOS, but provides better decoupling of the UI and business logic. This decoupling results in thin, flexible, and easy-to-read view controller classes in iOS.  

MVVM also provides better encapsulation. Business logic and workflows are contained almost exclusively in the viewModel (referred to as the view manager in the example project). The view/view controllers concern themselves only with the UI and know little, if anything, about  the business logic and work flow in the viewModel.

MVVM is built around three fundamental parts: data model, view/view-controller, and viewModel:


1) Data Model
Just like in the MVC design pattern, the MVVM data model is a class that declares properties for managing business data. For instance, a banking app would need to manage user account data like account balances, transaction history, etc. These data objects are declared in the model as class properties with appropriate getters and setters.

2) ViewModel
The viewModel is at the heart of the MVVM design pattern and provides the connection between the business logic and the view/view controller. The view (UI) responds to user input by passing input data (defined by the model) to the viewModel. In turn, the viewModel evaluates the input data and responds with an appropriate UI presentation according business logic workflow.
The viewModel then is the hub of activity in the MVVM design, acting as an intelligent traffic control center for the model, business logic, workflow, and view/view-controller.

3) View/View Controller
The view/view controller is the context (i.e. the view controller class) that presents user interface elements. As mentioned above, in iOS the view/view controller is usually coupled to business logic within a view controller class.
Conversely, in MVVM, the view/view controller contains little or no business logic and is primarily responding to the viewModel to configure and present UI elements (e.g. table views, buttons, etc.)

MVVM comes from Microsoft, but don’t hold that against it. MVVM is very similar to MVC. It formalizes the tightly coupled nature of the view and controller and introduces a new component.
Under MVVM, the view and view controller become formally connected; we treat them as one. Views still don’t have references to the model, but neither do controllers. Instead, they reference the view model.

The view model is an excellent place to put validation logic for user input, presentation logic for the view, kick-offs of network requests, and other miscellaneous code. The one thing that does not belong in the view model is any reference to the view itself. The logic in the view model should be just as applicable on iOS as it is on OS X. (In other words, don’t #import UIKit.h in your view models and you’ll be fine.)


Since presentation logic – like mapping a model value to a formatted string – belong in the view model, view controllers themselves become far, far less bloated. The best part is that when you’re starting off using MVVM, you can place only a little bit of logic in your view models, and migrate more of it over to them as you become more comfortable with the paradigm.

iOS apps written using MVVM are highly testable; since the view model contains all the presentation logic and doesn’t reference the view, it can be fully tested programmatically. The numerous hacks involved in testing Core Data models notwithstanding, apps written using MVVM can be fully unit tested.

The results of using MVVM, in my experience, is a slight increase in the total amount of code, but an overall decrease in code complexity. A worthwhile tradeoff.

If you look again at the MVVM diagram, you’ll notice that I’ve used the ambiguous verbs “notify” and “update”, but haven’t specified how to do that. You could use KVO, like with MVC, but that can quickly become unmanageable. In practice, using ReactiveCocoa is a great way to glue all the moving pieces together.

To know more about it with an Example, here you will find the source code.

Coding difference between MVC & MVVM

Below screenshot is for OLD MVC pattern. 


Below screenshot for MVVM pattern (Compare viewDidload of both)


Below Screenshot for View model Class



Practical Considerations

As we've seen, MVVM as a design pattern in iOS is useful and yields many benefits. However, as with any design, care must be taken to understand the limitations and the appropriate implementation in any given project or project feature. Complex project features with a small number of views may not realize the same benefits of MVVM that a larger feature with many repetitive views would. Each developer must think carefully about the best design pattern for any given project. Hopefully you will find MVVM a useful approach in your latest iOS project.

Happy coding :)



Saturday 27 December 2014

Subclass, Category and Extensions in Objective C

Hi guys, hope you find the articles i have posted before, interesting and useful. I always welcome your feedback to make the future articles more interesting.Today lets see what is subclassing, categories and extensions in Objective C, and where, when and how to use these concepts.

1) Subclass in Objective C

Every object you create in your Cocoa application descends from the 'NSObject' foundation class. The NSObject class identifies properties and methods which apply to all objects. The NSObject class is divided into smaller groups of objects, called subclasses. Objects in these subclasses not only conform to the protocol of NSObject, they are also defined more precisely by the methods that govern their subclass. Every object class inherits from the superclasses above it in the object hierarchy, and also declares the methods which make it a unique class.
Subclassing in simple words is changing the behaviour of properties or methods of an existing class or in other words subclassing is inheriting a class and modifying the methods or properties of super class however you want. Additionally subclassing lets you add state. when subclassing, (sometimes you intently need to override the existing behavior/methods or you can add extra functionality too.) you explicitly declare that Object with the type like
MyCustomString *string;
and then all the methods written in your subclass become visible.

2) Categories in Objective C

An Objective C category provide the ability to add functionality to an object without subclassing or changing the actual object. Categories let  you expand the API of existing classes without changing their type such as NSString or your own custom objects allows you add your own methods to an existing class. Categories are also called as "informal protocols".

Suppose take an example, since Foundation Framework classes such as NSString, NSArray, NSDate etc… doesn’t have any access to modify, you can add your own methods in to these classes by the help of a category.

Consider NSString Class and if suppose we want to add a reverse string method to NSString class, so that in our application at any point of time any NSString object can call this category method and get a reversed string as a result. We can do this as below,

 Usually naming convention for category file is like OriginalClassName+CategoryName 

Ex:  NSString+ReverseNSString                                                                             

Note: in a category you can’t add an instance variable, since methods within a category are added to a class at runtime.


3) Extensions in Objective C

class extension is used to declare additional interface -- methods and properties -- whose implementation contract will be met within the class's primary @implementaiton.
The docs state:
Class extensions are like anonymous categories, except that the methods they declare must be implemented in the main @implementation block for the corresponding class.

Extensions are similar to categories but the need of extension is different. 
  • Class extensions are often used to extend the public interface with additional private methods or properties for use within the implementation of the class. 
  • Extensions can only be added to a class for which you have the source code at compile time (the class is compiled at the same time as the class extension).
  • Extensions will be local to a class file.

The syntax to declare class extension looks like,

@interface ClassName()                                                                                                

@end
since no name is given in the parentheses, class extensions are often referred to as anonymous categoriesUsually people will use extensions to hide private information of a class without exposing them to access from any other class.

Note: Extensions can add instance variables.
Finally the simple point to remember is , Subclassing is better option if you want to customize an existing stuffs or functionalities, and Category is a best option if you want to add additional functionalities to an existing class














Friday 26 December 2014

Show the world that you can excel at iPhone App Developmen

iPhone has creates immense innovation and excitement not only among the people belonging to the mobile application development industry or iPhone app development specialists and professionals, but also the masses, especially the youngsters who love flaunting this high-end Smartphone.

Why iPhone is in Vogue these days?

Youth are fond of having an iPhone Smartphone not only because it has become a style symbol but also because they love it for the mobile applications. Currently, you will find an app for almost everything. The mobile apps have made many tasks easier and fun due to which there is hype for iPhone and Android OS smartphones.
 

Make money from Mobile application development:

iPhone app development has become a very promising business for the mobile application development professionals. The businesses all over the world are paying heavily to the app developers. If you want to earn a handsome amount of money then it would be better if you start your career in iPhone app development. Do you want to create mobile applications and sell them at Apple's App Store, iTunes, Nokia Store or Google's Play? Of course, it will be time consuming but this will help you earn huge sum of money.
 
Does it require one to be a specialist in mobile application development?

You do not necessarily have to be a specialist in mobile application development, as children are also capable of developing mobile applications. In 2010, Fahma Waluya Rosmansyah a 12 year old Indonesian sixth grader astonished the mobile application development industry by creating a mobile app named ENRICH to help Indonesian children learn English language and basic mathematics skills. Similarly, another 12 year old, Freddie Ann Hodges, who lives in Dallas, Texas, USA, created the "Measure Me" iPhone application to measure her height so that so do not have to use a measuring tape.


How to get started?

First of all, go to Apple's App Store website and browse the various categories, like, business, health and fitness, travel, music, games, social networking, news, education, etc. You can check the applications already available there. You do not want to create something that is similar to the one already there, as it would be a waste of time and energy.

After this you can make a concept regarding what you want the iPhone application to do. Sometimes, we want to perform something that might consume time but we are unable to find a mobile application for it. You can try making it for yourself and then sell it to other on app store and Android Play. You can also note down what sort of iPhone apps your friends are searching for but they end up being disappointed to find none that suit their purpose. This will give you an idea and you can start working on your mobile application development project.


What about Coding?

Well, if you are not familiar with coding then it is better to hire the services of a mobile application development company to get your desire mobile application. You can interview mobile application development expert to find out if he has the skills that are required for the app that you want him to develop for you. There are many well-reputed mobile application development companies that have experienced and highly-skillful team of mobile application developers. You only have to tell the company what sort of mobile app you want and leave the rest on them. They will take away your burden of finding the correct person by handing over your project the developer who is most suitable for your mobile application development project. You can even ask the mobile app developers to test and de-bug your app to ensure that it is flawless. Sometimes, the iPhone app development companies help you in getting the distribution certificate, submitting the app and placing it on the App Store for sale. Indeed, this is a very practicable way to have your own mobile application in the market.



SPHChatCollectionView to use in chat screens. (Supports iOS 8)

This project is an attempt to create the experience of chat bubbles with image , time and avatar support.  Published at




Screenshot
Screenshot2
To see the code in action, download the app:

Conciergist

View in Youtube

Features:

  1. You can customize as per your need (Ex: change the bubble image)
  2. Message sizes can be vary from small to larger.
  3. Copy & paste messages
  4. Support for group messages
  5. Data detectors (recognizes phone numbers, links, dates, etc.)
  6. Timestamps
  7. Avatars
  8. Bouncing Effect like message app. (see the video on you tube)

Tuesday 23 December 2014

Open Sourced iOS Control For Displaying Images With Tilt Gesture Scrolling


alt tag

Swift implementation of the photo tilt gesture/UX found in Facebook's Paper app.

Requirements

  • iOS 8.0 or higher
  • ARC
  • Core Motion
 Here you will find a nice scrollable interface for presenting images with stories, an open source Swift based photo viewing component submitted by Sameh Mabrouk allowing the user to view images wider than the screen using a tilt gesture called Panoramic.

Panoramic is inspired by Facebook’s Paper app, and uses Core Motion for handling the tilt gesture. There is also an indicator on the bottom of the screen to indicate where the user is in the image.


Swift Version             : https://github.com/iSame7/Panoramic
Objective-c version   : https://github.com/iSame7/Panorama

Twitter app like Profile Image Blurr effect.

This project is an attempt to Make a blur effect when you drag down the top of a UITableView like on twitter and in tweetbot.

Here is the Source code : https://github.com/sibahota059/TwitterProfilePageBlurr

Screenshot

Contact Me or add me on Facebook - https://www.facebook.com/sibaprasad.hota

Comparison between Corona, Phonegap, Titanium

Note: This Article is Originated from Stack overflow Question : Comparison between Corona, Phonegap, Titanium which is answered beautifully by DennisJZH
Titanium and PhoneGap are more similar than different. They both expose mobile phone functions through a set of javascript APIs, and the application's logic (html, css, javascript) runs inside a native WebView control.

  1. PhoneGap is not just a native wrapper of a web app. Through the PhoneGap javascript APIs, the "web app" has access to the mobile phone functions such as Geolocation, Accelerometer Camera, Contacts, Database, File system, etc. Basically any function that the mobile phone SDK provides can be "bridged" to the javascript world. On the other hand, a normal web app that runs on the mobile web browser does not have access to most of these functions (security being the primary reason). Therefore, a PhoneGap app is more of a mobile app than a web app. You can certainly use PhoneGap to wrap a web app that does not use any PhoneGap APIs at all, but that is not what PhoneGap was created for.
  2. Titanium does NOT compile your HTML, CSS or JavaScript code into "native bits". They are packaged as resources to the executable bundle, much like an embedded image file. When the application runs, these resources are loaded into a UIWebView control and run there (as JavaScript, not native bits, of course). There is no such thing as a JavaScript-to-native-code (or to-objective-c) compiler. This is done the same way in PhoneGap as well. From architectural standpoint, these two frameworks are very similar.

    Now, are they any different? Yes. First, Titanium appears to be more feature rich than PhoneGap by bridging more mobile phone functions to javascript. Most noticeably, PhoneGap does not expose many (if any) native UI components to javascript. Titanium, on the other hand, has a comprehensive UI APIs that can be called in javascript to create and control all kinds of native UI controls. Utilizaing these UI APIs, a Titanium app can look more "native" than a PhoneGap app. Second, PhoneGap supports more mobile phone platforms than Titanium does. PhoneGap APIs are more generic and can be used on different platforms such as iPhone, Android, Blackberry, Symbian, etc. Titanium is primarily targeting iPhone and Android at least for now. Some of its APIs are platform specific (like the iPhone UI APIs). The use of these APIs will reduce the cross-platform capability of your application.
    So, if your concern for your app is to make it more "native" looking, Titanium is a better choice. If you want to be able to "port" your app to another platform more easily, PhoneGap will be better.

    Updated 8/13/2010: Link to a Titanium employee's answer to Mickey's question.
    Updated 12/04/2010: I decided to give this post an annual review to keep its information current. Many things have changes in a year that made some of the information in the initial post outdated.

    The biggest change came from Titanium. Earlier this year, Appcelerator released Titanium 1.0, which departed drastically from its previous versions from the architectural standpoint. In 1.0, the UIWebView control is no longer in use. Instead, you call Titanium APIs for any UI functions. This change means a couple things:

  3. Your app UI becomes completely native. There is no more web UI in your app since the native Titanium APIs take over control of all your UI needs. Titanium deserves a lot of credit by pioneering on the "Cross-Platform Native UI" frontier. It gives programmers who prefer the look and feel of native UI but dislike the official programming language an alternative.
  4. You won't be able to use HTML or CSS in your app, as the web view is gone. (Note: you can still create web view in Titanium. But there are few Titanium features that you can take advantage of in the web view.)Titanium Q&A: What happened to HTML & CSS?
  5. You won't be able to use popular JS libraries such as JQuery that assume the existence of an DOM object. You continue to use JavaScript as your coding language. But that is pretty much the only web technology you can utilize if you come to Titanium 1.0 as a web programmer.
Now, does Titanium 1.0 compile your JavaScript into "native bits"? No. Appcelerator finally came clean on this issue with this developer blog:Titanium Guides Project: JS Environment. We programmers are more genuine people than those in the Marketing department, aren't we? :-)
Move on to PhoneGap. There are not many new things to say about PhoneGap. My perception is that PhoneGap development was not very active until IBM jumped on board later this year. Some people even argued that IBM is contributing more code to PhoneGap than Nitobi is. That being true or not, it is good to know that PhoneGap is being active developed.
PhoneGap continues to base itself on web technologies, namely HTML, CSS and JavaScript. It does not look like PhoneGap has any plan to bridge native UI features to JavaScript as Titanium is doing. While Web UI still lags behind native UI on performance and native look and feel, such gap is being rapidly closed. There are two trends in web technologies that ensure bright feature to mobile web UI in terms of performance:
  1. JavaScript engine moving from an interpreter to a virtual machine. JavaScript is JIT compiled into native code for faster execution. Safari JS engine: SquirrelFish Extreme
  2. Web page rendering moving from relying on CPU to using GPU acceleration. Graphic intensive tasks such as page transition and 3D animation become a lot smoother with the help of hardware acceleration. GPU Accelerated Compositing in Chrome
Such improvements that are originated from desktop browsers are being delivered to mobile browsers quickly. In fact, since iOS 3.2 and Android 2.0, the mobile web view control has become much more performing and HTML5 friendly. The future of mobile web is so promising that it has attracted a big kid to town: JQuery has recently announced its mobile web framework. With JQuery Mobile providing UI gadgets, and PhoneGap providing phone features, they two combined creates a perfect mobile web platform in my opinion.

I should also mention Sencha Touch as another mobile web UI gadget framework. Sencha Touch version 1.0 was recently released under a dual licensing model that includes GPLv3. Sencha Touch works well with PhoneGap just as JQuery Mobile does.

If you are a GWT programmer(like me), you may want to check out GWT Mobile, an open source project for creating mobile web apps with GWT. It includes a PhoneGap GWT wrapper that enables the use of PhoneGap in GWT

HTML5 vs Native Mobile Apps

Will HTML5 ever really compete with native apps and become the primary mobile development platform?

Mobile apps and HTML5 are two of the most innovative – and polarising – technologies in the mobile world at present, and there are plenty of similarities between the two. Web apps, most recently using next-generation HTML5 features, run in mobile web browsers and can also be re-packaged to look like native apps on the various mobile platforms. They bring facilities like offline access and a smoother user experience to the web, but still often fall short of native apps.


Native apps can be easily found in the relevant app stores and are normally developed individually or on a mobile platform, such as Core-three's Core Engine platform. Ease of discovery and the best of all possible user experiences have made native apps the current industry front-runner.

But due to the wide-ranging number of mobile platforms to support, combined with the sheer power of mobile browsers, developers are increasingly turning to HTML5 as a "write once, run many" solution. However, there are still vast compelling reasons to go native, especially when native mobile platforms such as Core Engine are now available. We've highlighted the benefits of native app over HTML5 web apps as they stand today, and also give a view of the future where you may not have to choose.


The current state of play

Mobile functionality can be split into two dimensions: the user experience, and the way it integrates into the device's ecosystem. For Android or iOS, this includes features like widgets and push notifications. Native apps excel in both dimensions, with HTML5 approaching from a distance.
User functionality 

In terms of user functionality, native apps can do more. They can make deeper use of the device's hardware, acting on hard or soft keys being pressed, like a device's back button and volume controls, and accessing hardware like GPS (for location-based services) and the device's camera. In some cases, with the user's permission, native apps can also access the devices operating system too, providing tight integration with other apps, and a gateway to technologies such as contactless communications via NFC.

Native apps can also more easily cache data when there is no network coverage, where web apps need coverage to function. This means users can scan QR codes at a virtual supermarket in a closed shopping centre or in a subway. Once network coverage is available, the app can then automatically send an order to the retailer for fulfilment. Or how about downloading a mobile ticket - once downloaded, the ticket can be stored on the phone and produced when required without network coverage. Corethree's recent work with Go North East for their UK bus network is a great example of this capability in action.

Native is a fast-moving target, and these benefits are not yet available on HTML5, but the web is also developing at a rapid rate. Solutions to enable web apps to use devices' functionality are in active development, with Mozilla (developers of the popular Firefox web browser) leading the charge with their WebAPI initiative.

One of the defining features of any platform is its look and feel, and users come to expect consistency. If developers take care to use the tools provided by the device manufacturers, native apps can deliver a great user experience. Users only have a number of seconds to get familiar with a new app; if there are any delays, even of a few seconds, the app could be discarded.

Due to a lack of a common set of standard for user interfaces, web apps tend to have a custom look and feel, which requires "familiarity curve", which all takes time. Native app developers have a much easier task in making their UI consistent, so apps generally look and feel similar to others on that device. This is important, as there is only limited time before the user will get frustrated and give up on the application.

Renowned usability guru Jakob Nielsen suggests that there's a 10 second window to grab users' attention. Anything slower needs a percentage-complete indicator as well as a clearly signposted way for the user to interrupt the operation. Ideally, he recommends a 1 second response time as the best way to make the UI appear seamless. Native apps, even those such as Core-three's (which deliver services from the cloud) can achieve this, where web apps have a hard time ensuring this kind of performance.

Factors in this include the web run time barrier (downloading all elements of pages), so downloading content is faster using native apps. Native apps are also more easily optimized and can take advantage of performance boosters like graphics acceleration and multithreading. Web apps are also highly dependent on the network coverage levels, which are not as reliable or as fast indoors or in rural areas. The impact of apps running on reduced network speeds such as EDGE or GPRS (2.5G), will massively affect the user experience.


Ease of development

Native apps use robust and mature programming languages, which were designed for complex application development and have a proven track record. These tools were designed from the ground-up to support each platform. You can easily debug apps in desktop emulators that provide a close representation of the target device, all of which makes the path to market with a reliable application much smoother.

What makes web development particularly troublesome is the huge diversity of browsers and runtimes, potentially making the web app unstable and requiring a great deal of testing. In addition, standards are open to interpretation – again, projects like Mozilla's WebAPI aim to move past these limitations, but aren't yet mature enough to be a solution.

Discoverability 

App distribution mechanisms like Android's Market and Apple's App Store have been overwhelmingly popular in recent years, and are a major driving force for the entire market. Any developer can submit their native app to the marketplace – for example, Core three's Core or M-tickets - where users can discover it through a combination of browsing, searching, and getting recommendations. Not only that, but if development companies have done their job right, the glowing ratings and comments will convince users to hit the all important "install" button.

With a web app, there's no central hub for app discovery. Even with a variety of smaller web app directories, none have taken off to a large extent, so companies need to market their service much more actively. Unless they have a bottomless pit of money or are a well-known brand, consumers will find it difficult to know where to find the mobile service, or even that it exists.

Some companies are designing hybrid apps using technologies like PhoneGap (Cardova),Titanium, a combination of native and web just so they can get into the relevant app stores. Whilst it's better than having no presence at all, it masks the fact they are predominately an HTML5 web app. These apps will still do not have the functionality of a native app, and generally lack in robustness and tight user experience.

Native apps can be monetized

With regular headlines such as "12 year-old makes app during lunch hour, sells a billion copies at 69p each", it's no wonder developers large and small are looking to the mobile marketplaces for monetisation. Mobile platforms offer several avenues for developers to directly charge for their apps. The simplest scheme is the one-time payment, to unlock the app forever. There are also in-app payment and subscription mechanisms on offer for some platforms, and they are tightly integrated in a consistent, secure, mechanism, with centralised and trusted billing. These newer forms of payment allow developers to convert a smash-hit app into a long-term revenue stream.

Given that Apple's App Store, for example, limits payments to those for digital content only, platforms like Core Engine provide corresponding facilities for payment and CRM in retail operations for real-world goods.

In comparison, web apps lack a standardised payment model. Although providers like PayPal can fill the gap to some extent, the HTML5 purchasing experience is still generally fragmented and inconsistent, with no specific focus for user trust.

The way forward

Some apps are best suited for native and some are best suited for the web - it all depends on the requirements from the client. However, as we are at the start of the explosive exponential growth of the smartphone, any requirement from clients should be future proof.

How will you surprise and delight your subscribers? Offering subscribers the ability to use the devices functionality if required will help add stickiness to the app.

The development of new features for web apps has momentum, but in terms of native user experience, capability and performance, native apps at present far excel those of web apps. Until there comes a time when web technologies are a first-class citizen on the majority of mobile operating systems, native will always, in our opinion, be a superior offering.

If you do choose the web path, be mindful of web standards, future proofing and the principle of progressive enhancement.




 

Monday 22 December 2014

Great Mobile Apps by Mobile App Development India

Mobile application development and release of new apps is a great market globally, and has developed highly all over India too. This giant market offers both salaried and freelance jobs to many app developers all over the world, and eventually gives mobile users a wide array of applications to plunge in. There are apps developed and released for the various activities and purposes that go on in a person's life. Apps for all types of needs are there, and are continuously being developed by Mobile App Development India.


Mobile Apps cover all aspects of life

Mobile applications are not just subjected to simple mobile phone call and phone settings or just business related functions. Time is changing fast, and man has entered a very different era, where all sorts of jobs are tried to be covered through the small handheld devices. Thus the world is trying to come closer and more compact through these applications and Mobile Application Development India is making life easier and faster.

There are applications for astrology, love, matrimony, chatting, social networking, money making, shares and forex trading, banking, accounting, file managing, exercising, sports, cooking and what not! All and everything is available in this world of varied mobile apps that are available both on demand and in application stores as per requirement.

Why people are interested in new Apps

Although there are plenty of applications available in the app market worldwide, yet newer apps are always in demand because of the following reasons:

  • People want up-gradation of current apps and always show interest in newly developed apps to see if they get a better version of what they are using currently.
  • People want apps for different purposes and any new application for a purpose raises interest among users to try and see if that suits their purpose and lifestyle.
  • For specific organizations or software etc, apps are custom made and such tailor made apps are used by people associated with those software or organizations.
The development and marketing of Mobile Apps

Mobile Apps are developed and marketed in mainly two ways.

Firstly, by several companies and individuals who make apps and then release them in collaboration with giant mobile platform developers. This way the mobile app developer gets a part of the revenue that comes from selling the app from the app store of the big players of mobile platforms.

Several companies are there who develop mobile applications. Some do it dedicatedly by keeping salaried employees who are highly experienced app Mobile App Developers. Some get the jobs done by freelancers. There are many freelancers who earn a nice living by this. Simply developing high quality and various mobile apps for different OS and platforms brings a good living for many programmers and app developers.

A second type of app development happens when companies or developers create customized apps for their customers. Many service providers from various platforms ask or hire Mobile App Developers India to create tailor made apps for their clients and users. This type of app development generates revenue for the developers through the company they have developed the app for.
Both type of Mobile App Development India has got a huge market and great future, the mobile apps being in accentuating great demand.

 

Sunday 21 December 2014

Mobile Apps or Mobile Websites – Which One Helps Businesses More

With competition growing with every single second, business owners perfectly know the significance of having a mobile presence. However, what still confuses them is the real difference between native mobile apps and mobile web apps and what is the best criterion for selection?

For understanding, the real difference between the two and know which one holds an edge over the other; it is important that business owners study the following points.

Accessibility – A mobile web app consists specially formatted web pages to appear better on smart phones and tablets when accessed via the Internet browser. Mobile websites on the other hand, use basic features like maps and click to call features. Mobile apps can be downloaded from app stores and installed in a smart device for use. The best element is that they can be accessed even in the absence of the internet connectivity on the smart device. However, this will entirely depend upon the features of apps. 


Audience – Before selecting anyone, you should be familiar with your audience's needs. This would be very helpful in determining the best for your business. Suppose a customer is searching for a good restaurant in the area he is currently present in, he would use the Internet. It will allow them to check reviews, ratings, menu, discount coupons, cost and reserve a table while still standing on the road. Studies have shown that users mostly use mobile browsers for shopping, searching and entertainment and mobile apps for managing data, playing interactive games and doing productive works.  

New or existing customers – This situation puts immense pressure on enterprise owners. Those looking to know more about your business and services will not download your app for that. For new customers a mobile friendly website is a best choice.

However, for present customers who are already engaged in regular dealing with you, a mobile app is a smarter choice. They will communicate more deeply using these apps and take interest in every personal manner like availing discount coupons, and other similar matters.

Cost – If compared on a feature-to-feature basis, you will find that mobile friendly web application or a mobile website is far cheaper than mobile apps. In addition, it takes lesser time, lesser investment, and lesser headache to develop, run or maintain it. Now, here is the million-dollar question; which one is better, a native mobile app or a mobile web app? One very short and beautiful answer is – it depends upon your goals. For an interactive game or an application, which requires unique inbuilt features, mobile apps are the best choice. However, if you are looking for a mobile friendly content or a simplified version of your existing website, then selecting mobile website concept is a wise decision. A mobile website has the potential to reach a large number of audiences in a shorter period. Following the on-going trend, most business owners prefer to get both for their businesses as both have diverse targeted audiences and business owners would love to grasp the opportunities presented by both of them.

CONCLUSION


Both of them have their unique qualities and it is clear to everyone that both of them help business owners in completely diversified ways. According to my experience, a business owner should first get a mobile website and employ it to gain mobile presence and once, he is contented with the popularity of his mobile websiteFree Articles, he should jump into a bigger war turf with a mobile app.

Use of Mobile apps in 2014

        When we pass into the second half of 2014, mobile apps have defeated the mobile web. Apps have come to dominate mobile traffic, according to leading mobile survey company, which studied 300 billion ad impressions in the first half of 2014.A surprising 58.2 percent of mobile ad impressions was the contribution of mobile apps while48.8 percent on the mobile web. Businesses vie for user time and attention in the mobile apps,not websites and that's why mobile app development companies and cross platform app development companies have great funnel of projects to execute.

    American users are now spending most of their time enjoying digital media within mobile applications they have downloaded to their mobile devices, according com Score. Mobile apps are thus reported to steal most of the user's time than desktop usage or mobile web surfing.

     The mobile apps along with mobile web, captures 60% of time spent, whereas desktop-based digital media consumption trails behind at 40%. Ninety per cent of media consumption is also on mobile devices.

         One-third of US app users, nowadays, download at least one application per month. The average smart-phone user downloads 3 apps per month. The average number of running apps in a smartphone is 40. Most of the users are addicted to them. Nearly 80% of app users use apps nearly every day, accurately saying, 26 days a month.

       This upsurge in mobile app use reflects in many fields like travel booking, for example, the percent of users who booked travel products or services on tablets and smartphones at least once in the past 12 months was 25% in April 2014, and expected to reach 30% next year. In the coming months, more and more people will be booking their flights and hotels through the apps of travel operators. The travel booking apps provide them convenience,flexibility, discounts and special offers, the facilities which gradually drag them away from the conventional ways of booking.


     On Feb 28, 2014, CNN gave the breaking news that the Americans used smartphone and tablet apps more than PCs to browse the Internet in January 2014, for the first time. 55% of Interne tbrowsing was done through mobile devices. Apps had a share of 47% whereas mobile web had7%, according to enders Analysis.

       This is not a phenomenon seen only in the US. Developing economies like India also joins the mobile app race. With 111 million smartphone users, India ranks as the fourth largest smartphone market globally after China (629.2 million), US (196.8 million) and Brazil (141.8million), according to the latest reports. This will lead to astonishing rise in mobile app use in the coming months.

         Mobile app development USA, mobile app development India, mobile app development china,
mobile app development Brazil, mobile apps development, mobile app development Bangalore,
mobile app development Chennai, mobile app development Mumbai, mobile app development Singapore