Application development has been in the spotlight for several years now, with developers creating amazing desktop, web and mobile applications at a rapid pace. There are advantages and disadvantages to each category of application, but it is clear mobile applications and web-based apps have begun to take center stage, as users prefer options that can be accessed from anywhere.
Photo Source smartinsights.com
There are some significant advantages to web based applications for the user and for the developer.
- No installation required
- Web apps lend themselves to subscription based pay models allowing a predictable income stream for the developer
- Users may access data and interact from multiple devices
- Distributed architecture without the need for any socket coding
- Easier to defend against piracy issues compared to desktop applications
- Cross platform utilization
Desktop applications have a few advantages as well. However, rewarding development in this area is getting more challenging. The simple reason for this is that user's behavior clearly indicates they are now using web apps and mobile sources at an increasing rate.
Desktop App Advantages
- Typically, desktop apps are paid for in full upfront by the user, which means a larger potential initial cash flow to the developer as opposed to subscription based payment methods.
- Application responsiveness is not dependent upon internet connection speed
- Privacy is easier to control for users as the software and data is stored locally on their machine. Some users prefer this and feel more secure having complete control of their data.
- Cost advantages in hosting application access
Photo Source cdixon.org
While some of advantages of desktop applications are significant, it is easy to see, from the chart to the left and the chart above, internet usage has entered a new era. Developers looking to make their mark and create an application that is widely accepted and used would be wise to keep these trends in mind. Web based apps and mobile applications seem to have taken the lead.
How users ultimately prefer to access data within those two areas is something we will have to wait to see how it develops over the coming years.
Growth of Mobile Apps
Nearly 50,000 games and applications are submitted to the iTunes app store every month, while the Google Play store hit the 1.3 million app mark last year. The Windows Store and Amazon App Store, lag behind with just 300,000 and 240,000 apps respectively, with Blackberry coming in last with 130,000 applications.
While Google does not have a review process in place like Apple and Windows, the submissions do have to adhere to Google's policies. Typically, Google removes about 25% of all apps submitted to their store and Apple has a rejection rate of almost 58%.
There are a myriad of reasons for these rejections, but you could hazard a guess that at least three quarters of these are reskinned applications and games that fail to meet developer requirements and standards.
In fact, even when a company that exclusively deals with application development tried their luck with some purchased code, their offering was promptly rejected. It is an interesting story and can be found at overpass.co.uk.
So, app rejections don't just haunt novices, it also affects those who have programming expertise in their toolbox. Yet, the internet abounds with alluring promises of how people can make thousands, or even millions, in application development without any programming knowledge.
Photo Source news.dice.com
Unfortunately, this is what has led to the slew of reskinned apps uploaded to iTunes. Most are simply poor imitations of games and applications that already hit the big time, with just the graphics and the sounds changed. As far as the original developer is concerned, this is sometimes their way of milking the code for every last penny.
The rise of this phenomenon has posed a unique conundrum for experienced programmers.
Application Development from Scratch?
That is the question. So, here is a look at why application development from scratch, although dismissed in the world of apps, remains a viable and practical prospect.
Fresh App Code Anyone?
As far as time is concerned, as a person adept at programming, writing the code from the ground up may only take a bit longer than the few weeks you would need to buy a source code, and then bend it to meet your goals.
Even if you were to remove the time and money factors from the equation, you would still gain important flexibility from writing code from scratch, as it would allow you to take the development in any direction you desire without consideration of what someone else has already "baked" into the code.
Flexibility
When working on fresh code you have absolute flexibility, in terms of not only the features, but also the architecture and the platform. The application can be built to meet your specific goals, instead of reworking your objectives to suit what is available in the source code. Another factor to consider is if you have come upon a really good idea, you do not have to limit yourself to just iTunes or Google Play or the Windows app store for mobile app development, an application can be cross platform.
Photo Source Enterprisecioforum.com
This would of course not be an option when trying to reskin an app. It should also be stated that given the popularity of the Apple store, chances are, the source code was built for the iOS platform and in Objective-C. Therefore, if you need a version of it in Java for the Android Platform, you would need to put in some serious programming hours. If you don't have resources in-house, then you may need to hire Android developers.
The same dynamics can be involved when developing desktop applications. For example, if you are using .NET as your chosen programming language, then some of the architecture foundation can be transferred to Windows Phone and Windows Store applications. However, the keyword is "some" and if you are not careful, you may end up with a larger project than you realized would be necessary. Details matter when attempting to migrate or expand applications from desktop versions to mobile or web-based versions, and vice versa.
In contrast, using a tool such as Appery.io (formerly Tiggzi) would be much simpler and less time consuming. For those of you who are more a designer than a programmer, a tool that makes life easier with its drag and drop interface is Codiqa. For mobile back end, you could use Kinvey.
In other words, there are so many tools, which bring down the amount of time you spend on application development; there is simply no reason to struggle with inferior source code.
Read the second part of the article here.