So you want to program an app and then publish it in an AppStore of your choice. Of course you want to do this asap, right? Who has time to look at long tutorials and then grapple with problems that were not described in the tutorial? In this article you will learn everything you need to take the next step to your first own app. What do you have to learn? Which platforms do you have to consider? Can you simplify your work and if so, how? Regardless of whether you already have programming experience or not. Are you in a hurry? Then take a look at this article about Apache Cordova.
What are apps?
Apps are actually perfectly normal computer programs that are run on a mobile device. These have the special feature of being able to access the sensors and hardware of the device. The manufacturers provide so-called programming libraries for this purpose. This allows you to use the hardware in your own app relatively easily (relatively, because you have to develop a technical understanding). A feature that particularly stands out in apps is the touchscreen. Programmers have to design their apps so that they can be used on a small or large screen. Websites and app must adapt to the size of the screen. If this is met, an app or website is responsive. Nowadays this requirement is actually more or less standard. The creation of apps can be done by anyone who has learned to code and has adopted the technologies for app development. However, there are also a few differences here, because depending on the manufacturer and operating system, you actually have to write your own app.
For which platforms can apps be developed? What is to be considered?
Writing an app and then making it available for all devices is unfortunately not as easy as you might imagine. Because the manufacturers program different operating systems that are not compatible with each other, each manufacturer has to learn their own programming language and their own programming environment. A bitter pill for a beginner, because you want to cover as many areas as possible with your first app. There is another way, as you will learn later in this article. Let’s get to the individual manufacturers:
Android
Google’s Android is one of the most widely used operating systems for mobile devices. Many manufacturers such as Samsung, HTC, etc. produce their devices with Android. There is the so-called Play Store directly from Google where you can find the apps and install them on your own device. There are other stores where you can get apps. Every manufacturer usually has its own store and large companies such as Amazon also have their own stores for apps. To publish an app in such a store you have to register as a developer. With Google, this costs a one-time fee and you can then offer your apps there for download or for sale. If you sell your app, the store operator usually withholds a small commission. To develop for the Android platform you need Java knowledge and the Android SDK. Once you’ve installed that, you can basically get started.
iOS
Apple’s iOS is the operating system for iPhones, iPads and iPods (and whatever else is mobile with i … from Apple). There is no manufacturer who uses this operating system, except Apple itself. The apps are available from the so-called AppStore or iTunes. In order to place apps in this store you also have to register as a developer (Apple Developer Program) and pay an annual fee for it. Commissions are also incurred when selling apps to Apple. To develop the apps you need an Apple computer with Mac OSX, because the programming environment XCode runs only on it. You can program the whole thing now either with Objective-C or the new Apple programming language Swift. Unfortunately, you can’t avoid your own Mac if you want to develop with these languages. There are options to run the operating system without a Mac, but a lot of technical know-how is required. So getting started at this point is quite expensive if you have never immersed yourself in the Apple environment.
Other platforms
But there are also other players in this market. There are different operating systems from Blackberry to Windows Phone. All of them have their own programming environment, use a different programming language and also have their own stores in which the apps are offered.
What do I have to learn for this?
So many different manufacturers, programming languages, operating systems, even the professional will quickly get dizzy. Every language and library is structured differently and in principle you have to pay attention to special features everywhere. Apart from the fact that you should have the devices on site for testing. If you want to get into development now, but are still a total beginner, when it comes to programming in general, you will not get around familiarizing yourself with a programming language. We’ll get to that in a moment. First of all, you should get to know the differences in the apps yourself.
Native Apps
Native apps are written with the manufacturer’s programming language, see the section on platforms. You first have to learn programming, preferably in the language for which you want to program an app. The respective language and environment for each platform. Whether this work is worth anything to you is another question. That must be pretty worth it.
Construction kit apps
There is now a huge range of so-called app construction kits. You basically click the app together instead of programming. There is something similar for websites. Most construction kits cost a monthly fee. The functionality of such apps is limited, however. As soon as you want to do more specific things, you either have to commission the special development from the provider (which can be very expensive) or you start again at 0 and have to program the whole thing again yourself. It works for very small standard things, but can quickly end up in double the effort.
Web Apps (or HTML5 Apps)
If you are reluctant to write things twice or three times and don’t want to mess around with the different programming languages of the different manufacturers right from the start, you will use this solution. Web technologies can also be used to write entire applications. And wherever a modern browser can be run, a web-based program can also be run. There are great libraries, like Apache Cordova, with which you can program a web-based app and use practically the same functionality that you know from native apps. These apps can even be brought into the AppStores. The cool thing is that you develop a normal responsive web application and can convert it to a fully functional app with a few adjustments. The app looks the same on all platforms. At first, you only learn one programming language (Javascript) and can use it to build almost anything you can imagine. For someone who is just starting out and doesn’t really know what they actually want to build, this is ideal.
Can I also offer my app on the computer / notebook?
In the native area there is actually a clear no. Maybe it is possible to run an iOS app on a Mac, but I don’t know anyone who has tried this before. In other words, if you want to code an app that, in case of doubt, should also be used on the “big” computer, you should also look for a programming environment next to which you can also write your apps. Right, one more programming language / programming environment and everything that goes with it.
Wouldn’t it be ideal if you could create all programs in just one language? It’s a great thing to get started, although you have to say that as soon as it becomes special or the requirements for performance increase, you should muster enough manpower and develop it natively.
That means I have to write everything twice? Do I have to choose a platform?
Soundboard Android App
With a strong development team, it is certainly not a problem to write certain things twice for the respective platforms. But a beginner doesn’t have a 5-person crew. So you have a choice. Your apps should run on all platforms, so to speak
Study and write 3 times. Or you just make the app for one platform. Or you can learn Apache Cordova and get a whole lot to start with
given. The best part: You develop your web app on the computer as normal and can test all functions without the need for a mobile device. Only when you have made the adjustments for the mobile version do you use the emulator or download your app to the smartphone. And when you’re done, you’ll have an app for mobile devices and an application for the computer. I have prepared an example, here you can see a soundboard that I developed for my club and the Android version.
Can I make money and get rich with my first programmed app?
Even if I think the motivation is great and know myself that you have at the beginning. But unfortunately you have to say at the beginning that the first programs will not convince. My advice: Do not start with your fat idea right away, because it is quickly killed and paralyzed. Start with small mini-projects. Only then take a tiny little functionality from your idea that you actually want to program and implement this mini-function in your own program. This is the only way to increase the chance of getting some money for your app. The whole thing with marketing etc. not included.
You need this for your start and this is how you get started:
My suggestion to you: If you have no idea about programming, start with web development and JavaScript. With this you can learn the basics and continue to use this language. A whole lot can be done with Javascript. If you are unsure, work through this tutorial. If you can’t cope with this, you’ll have to start much earlier. Then you are definitely a candidate for our beginners course. If you are already familiar with web technologies, then take a look at our article on Apache Cordova.