A Complete Beginner’s Guide to Developing Apps (iPhone, Android, and Windows)
Mobile app development is the new buzz word in the arena of technology. Considering the fact that there are over 700,000 apps on Play Store as well as App store, that doesn’t come much as a surprise. With estimations suggesting that the mobile app industry would become a $35 billion industry by 2015, there’s surely no one belittling this new playground.
For some, it’s a shortcut to fame, money, and respect. While for some, it’s a means to reach millions of users worldwide. For successful app developers, it’s both.
So, if you always had an idea that you wished could be transformed into something real, something interactive, something useful, here’s your chance to develop an app. Just how every contrivance ascends from an ingenious idea; apps, too, need to be created first in your head, and then on your computer.
However, finger-flicking-good apps can’t be developed just by downloading run-of-the-mill training videos, and learning some atypical languages. Developing awesome apps goes way beyond watching tutorials and learning languages. It requires creativity, design, awareness of the market trends and most importantly- an idea.
Kicking-off with an awesome idea
To develop an app, you need to have an idea that would click among the masses. There’s no point developing mediocre apps; the app stores are already stuffed with thousands of those.
Many novices spend hours learning technicalities of different languages, only to end up developing apps which are not revered by the masses. They fail not because they are poorly designed, but because there are better alternates. For instance, there’s no point developing an online chat messenger like WhatsApp, or developing alternate mobile browsers, unless of course you are confident of outdoing the competition.
But… how exactly do you kick-off with an awesome idea?
- Think of something innovative that is already on the web and can be ported to mobile. Though web and apps are two different sides of the coin, it won’t be untrue to conclude that everything that works on web, works on apps too. For instance, to simplify the news-reading experience of people, you can aggregate the popular news-sources from the web and, sort them according to keywords and develop an app that listens to their RSS feeds.
- Think of an app that you always wished you could have. As they say, charity begins at home. Get your nimble neurons to work and spin up an idea that could allow you the luxury of being just a tad lazier.
- Think of an app which could make complex things simpler. For instance, you need to enter your credit card number and other details every time you pay the bills. Think of an app that can securely store those details by encrypting it with a user-defined PIN.
- If you’re thinking of developing a game, make sure you hire the best graphic designing talents, and provide an engaging game-play. Though we said that your ideas need to be original, you can always augment an already existing idea. For instance, though Subway Surfers has a game play congruous to Temple Run, it’s more magnetic than its counterpart. The key thing is either to be better than the best, or to be different than the rest.
Choosing the right platform
Assuming that you have finally figured out an out-of-the-box idea for your app, here’s another critical choice you would have to make. Which platform are you going to opt for you app- Android, iOS, or Windows? While the choice of platform is completely solitary, here are some tips to keep in mind if you’re still unsure on which way to go.
- If you’re looking to develop an app that could yield more profits, go for iOS. Though Google has more apps on Play Store than App Store, apps on App Store grapple far more profits than Android apps. That’s due to high amount of piracy on Android platform and also due to the deep-rooted problem of fragmentation. However, on the down side, make sure you have a Mac, and are also willing to pay the mandatory $99/ year to Apple for your intrepid endeavor.
- If you want to make your app more popular by offering it for FREE, and intend to earn from ads, go for Android. This is perhaps the best strategy for beginners, as paid apps have remarkably lesser downloads than free apps. Perhaps, when the app gains enough popularity, you can switch the gears.
- If you wish to try something new, and have an idea which has already been adapted by hundreds of apps on the Google and Apple platform, go for Windows 8. Granted that Windows 8 is a less-explored territory, but you could reach a larger audience in a quick-time with Metro-styled apps as the discoverability of your app on Windows Marketplace would be much better than App Store or Play Store.
Design
“Design is everything”- Steve Jobs
That sums it all up. The first phase might seem frivolous to beginners, but the unspoken truth is that it’s one of the most important phases in mobile app development. It’s the phase where the bricks are laid out. The prominent reason why most apps fail to gain huge popularity in the app market is poor design. Hence, no matter which platform you’re working on, never overlook the design aspect.
Here are some tips that would help you make better and consistent looking apps.
iOS app design:
If you’re designing an app (not a game) for iPhone/ iPad, you can design your app from the readily available custom templates. These templates would help you move quickly from your prototype model to your actual app. Moreover, it would also give your app a more consistent look-and-feel. Though most developers would advise you to stick to readily available templates or Interface builder (a tool provided by Apple that allows you to build visual interfaces and comes bundled up with iOS developer program), it’s always a good practice to write codes from scratch, which can be done using the UIkit code.
Android app design:
If you’re designing an app for Android, we suggest browsing through this amazing page developed by android developer community. The page explains how an app should be designed and elements it should integrate.
Also, there’s no point reinventing the wheel again and again. Hence, Google put everything required for developing an app (stencils, sources, color swatches, and icon packs) in public domain. There’s no restriction in using the controls, features and packs. These readily available packs offered under Android developer program not only save time and effort, but also provide a consistent interface across apps.
Download Design Pack
Windows app design:
The most beautiful looking apps can be created on the Windows 8 platform. As Windows is a less-explored territory when it comes to apps, we are unsure whether you would find a readily available template for your app. However, here are some well laid-out rules for developing wonderful apps. If you wish to make apps from scratch, you would need to code the design using HTML5/ CSS3. Using HTML5/ CSS3 would be easier if you have some experience with scripting languages in the past. Here are some tutorial videos that would help you brush up your knowledge on using HTML5/ CSS3.
Registering and Downloading the required tools and SDKs
Considering that you have already chosen the platform, here’s what all you would need to start your journey. You would need to register as a developer for the platform you chose, and would have to download the corresponding SDKs. Software Developer Kits (SDKs) is a software-kit that allows developers to create apps that would run on the intended platform. Different SDKs support different devices. Hence, you would have to choose a SDK that resonates with the platform and the type of device you are targeting.
iOS:
To develop an app for iOS platform, you would need to become an official Apple developer and accept the terms and conditions. The registration is free. Once you register, you can use the same username and password for accessing you iTunes account. You would have to pay the mentioned 99$, only when you intend to publish your app.
To start developing apps for iPhone/iPad, you would need to download the relevant SDKs and tools that can be downloaded from here. You would need iOS x.0 SDK (where x represents the iOS version for the app), and XCode, which is an IDE tool for developing iOS apps. XCode can be downloaded from here.
The language that would be used for coding the apps is Objective C. Once your enroll for the iOS app development program, lots of tutorial videos, coding examples and developer libraries would be made available to you. Along with XCode, other tools like iOS Simulator that allows you to run and test your app and Interface Builder are also available.
Android:
To create an app for Android platform, you would need to register as an official Google developer and accept the terms and conditions. You would need to pay 25$/ year to be able to publish apps on Play Store.
To start developing apps for Android, you would need to register under Android developer program, and then download Eclipse with the required Android SDK. We suggest choosing a lower versioned SDK (Android v3.0) as it would be compatible with most Android devices. However, if you wish to use the advanced API features, you may also choose the latest SDK version (Android 4.0). Apart from the SDK, you would also be able to integrate existing Google services in your app. To learn more about developing perfect Android apps, visit the official Android developer development page.
The coding would be done using JAVA code with the design interface being XML. The IDE would offer all the required tools (Interface Designer, Code Editor, Debugger, and Emulator) for complete development of apps.
Windows:
To be able to publish apps on the Windows 8 platform, you would first need to register yourself as a Windows developer. There’s no registration fee, and the SDKs and tools are available on the Windows Phone official site. There’s a publishing fee of 49$/ year to host apps on Windows Market Place. For more info on how to make apps with Windows and to understand all the nitty-gritties, click here. To develop Windows 8 apps, you would need Microsoft Visual Studio 2012 integrated with the required SDK. The back-end coding would be done in C#, while the front-end design can be achieved using HTML5/CSS3 or XAML scripting.
Download SDK | Download Microsoft Visual Studio 2012
Learning Languages
So, we have finally figured out ‘what’ we need to develop an app. Let’s now shift our focus on how to develop an app.
If you have some experience with object-oriented languages like Java, C++, etc., and script languages like HTML, CSS, etc., programming an app should not be a tough nut to crack. Here are the languages you would need to learn for developing apps on different platforms.
iOS: Objective C
Android: Java, XML
Windows: HTML5, CSS3, C#
If you have little experience with programming languages, we suggest getting brushed up with the OOPS concepts, before plunging into learning languages. Below are links of some sites and e-books that would help you in understanding the mentioned languages.
Objective C: Cocoadevcentral
Java: Introduction to Java Programming, Java: The complete reference
XML: W3Schools
HTML: HTML 5: up and running
CSS3: CSS3 for web designers
C#: C#- A beginner’s guide, C# Station
I have been learning from these online sources and find them awesome. If you’ve any more learning sources, do share it with us below in the comment section.
[Tip-off: If programming is not your strongest point, you can also create apps WITHOUT learning any programming languages. Lots of web interfaces like ibuildapp, Appyet, AppMakr,AppsGesyer and others are available that can help you create an app in just minutes, and that too, without learning any programming languages. No kidding.]
Testing your app
After you have developed your app, you would need to test the app on actual devices. Though you can always test the app in the IDE simulator, you need a reality-check when you are planning to publish your app on the app stores. Besides, considering the fact that Android devices run differing flavors of Android, differ in screen sizes, and internal hardware, there’s a definite need to test your app before you publish it. The same goes with Apple devices that come in different sizes and versions. Windows phones also come in different screen sizes and hardware. There are lots of testing services like Testflight, Mobile App Testing, uTest, etc. that can help you test your app on real-life devices. These services test the integrity of your app on numerous devices, and can help you overcome any anomalies.
Submitting and Publishing your app
Now that you have tested your app on devices, you are confident that your app would run on user devices. After testing the app, you can submit the app for approval. It may take a while to get the approval as the app markets scan your app for any malicious code, and also measure the utility of the app. However, if your idea is unique and the code is immaculate, you would receive an approval from the community, and your app would be published on the App Store/ Play Store/ Market Place. To publish your app, navigate to your developer account and click on “Submit” app.
Distribution
After testing the app, you can submit your app for approval. It may take a while to get the approval as the app markets scan your app for any malicious code, and also measure the utility of the app. However, if your idea is unique and the code is immaculate, you would receive an approval from the community, and your app would be published on the App Store/ Play Store/ Market Place.
However, the journey does not end here. Once you’ve published your app, you would need to make it discoverable. This is undoubtedly one of the most challenging tasks in mobile app development program. However, here are some tips to increase the visibility of you app:
- Optimize your app for keywords. If you have developed an app that lets user make money, make sure you include it in the description and title (if possible).
- While taking-off, sell your app for FREE, no matter how good it is. If you wish to stick to the paid version, make a trial version of your app and market it for free.
- Advertise with as many ad networks as possible. There are lot of advertising platforms that could help you fetch thousands of downloads within days.
- Pay attention to the rating of your app. If people are complaining about glitches in your app, fix them with an update as soon as possible. If your app maintains a good-rating, it would surely encourage more users to try the app.
- Make sure you target the right users when you publish your app. For instance, you might have designed an app for a particular screen size. So, make sure you exclude the users with larger screen sizes.
- Localize the description and the content of your app to reach more users.
Monetizing from your app
Now that the app has been successfully published, you would need to start thinking on which strategy to apply (Paid, Free or Freemium?) for monetizing from your app. Though the paid-option is lucrative, it would surely find lesser potential buyers. If you sell it for free, you would lose out your profits. Hence, you would need to reassess the genre of your app, and cite the competition in the market before deciding an optimum monetization strategy.
However, a simpler monetizing strategy can be explained as follows:
- If you’re creating a one-time play app for iOS/ Android/Windows, make it premium; if you’re developing a slowly progressive game, market it as FREE on the app stores; if you’re developing an app that can entice the users to unlock items, go for the Freemium model.
- If you’re developing an app for iOS/Android, and if you think it’s productive enough, go for the paid approach.
- If you’re making an app/game for iPad/Microsoft Surface, never ever think of deploying an ad-monetization model.
- DO not annoy users with unrelated, buggy ads.
- Grow your users through aggressive social marketing and by providing a handy feature.
The key to app monetization is realizing that people won’t mind downloading your app if they actually need it, and won’t mind paying a few bucks, if they know it’s worth it.
That being said, there’s no optimum strategy for monetizing from apps. If you’re wary of the available choices, you can adapt all the three models, and adapt the one that works the best for you. Read more about optimum app monetization on this articulated piece on Free v/s Paid approach for apps.
That’s it. Hope our tutorial helps you in creating awesome apps. 😆
Have something to say? Shoot your questions in the comments section below.
I believe a man who knows nothing has more curiosity than a man who knows something.
minimally written but maximum info given, Thanx for giving a clear and concise overview of APP development , understandable even to some one like me who knows nothing.
Yes. Windows does allow you to create apps in C/C++.
A great read 🙂 Thanks author
I was just wondering, can c++ work in any of the platforms?
A bit exaggerated that lol
Indian Alon Musk .great piece