Desktop apps, mobile apps, and web apps. Apps are everywhere. In the past years, as hardware became more powerful, the tendency to merge apps between desktop, mobile, and web platforms is higher than ever. And, in accordance with that, we meet more and more programming languages and frameworks that we can use on every platform with a minimal trade-off in terms of code difference, app execution speed, and even user interface.
In this article, we are going to answer the question of how to make a (mobile) app as a total beginner. The answer requires a multi-faceted approach, starting with the perspective of the person that is asking that question. Are you an aspiring developer who wants to learn how to develop an app? Are you an eager product manager? Or are you an ambitious startup owner?
What should a developer, who is a total beginner know about mobile app development?
If you are a beginner developer there’s no need to look at the app from a product manager’s perspective. That means your focus will be purely on technical details. You are going to leave product management, marketing, and a sales part of the app release to product, marketing, and sales people. Of course, you can find tutorials that point to the topics we’ve mentioned, but for a beginner developer, marketing and sales only add additional burden and complexity to the mobile app development.
Being capable to develop an app is one of the most useful skills in today’s employment market and definitely adds a competitive advantage when you want to find a new job. However, you should still make a decision on which particular language and framework you should learn because the right choice will maximize your investment in time. Even more, if you are a total beginner, you will not need to invest only time in learning a new programming language, but oftentimes money, too, especially if you want to speed up your learning path. On the education market, you can find courses on different technologies that range from $30 USD up to 20-30K. And at the end of the day, when choosing if you are going to invest your money, you should ask yourself does the course that costs $30K really delivers such a big difference in knowledge and personal dedication from a personalized tutor compared to a course that costs $30. This is absolutely a matter of a budget that you have on hand and a personal preference. When you enroll in more expensive courses, a beginner developer usually gets a personal mentor who is available most of the time for questions and guidance. Inexpensive courses don’t offer any kind of personalized help but do not fear – there are always helpful communities that offer solutions in cases when you get stuck and can’t find a way out.
At the end of the first phase of a learning process (approximately 6-12 months), and some basic practice, assuming you really invested at least 6 to 8 hours of your time on a daily basis, a total beginner should be able to progress to a junior position in a development company and earn from 20-40K USD per year with a good prospect for higher and better-paid positions in a period of one to two years.
What should a total beginner as a product manager know about mobile app development?
Product manager for applications needs a totally different skillset. The level of technical details for a product managers is often a lot lower than for developers. A product manager who works on an application product for the first time has to dedicate his time to consult with a development team regarding the best technology for the app product. However, it’s important to resist the groupthink of the development team which is always more or less biased.
- Development team may try to push technology they are familiar with, which may not be the best choice for the product
- Development team may try to push technology which they are not familiar with but are interested in learning it because it is ‘trendy’ although that choice might not be a good fit for a product
In any case, if the product manager makes a final decision on the technology used for application development she needs to talk with different stakeholders in the company as well as independent consultants. Finally, what’s most important, a product manager needs to research herself different technologies pros and cons and at end of the day decide for herself.
What should a tech startup owner know about developing mobile apps?
If you are a tech startup owner, you might also be a deciding factor on the technology used for application development. Startups can range from high-profile startups backed by investors with serious money or one-man-army startup. Technical decisions in venture-backed startups are usually delegated to CTO, product manager, or software architect.
In the case of a one-man-army startup, it’s quite obvious who calls the shots. The startup owner has to play all roles himself and therefore has to be familiar with different technologies to be able to choose the best-suited one for the product.
What should you know about cross-platform apps technologies?
For a prototype app or a MVP (minimum viable product) as it’s called in Lean manufacturing it is usually better to use cross-platform technologies. Cross-platform technologies offer a wider range of platforms where you can deploy and test your product concept in the real world. They can be also financially available because there are more developers on the market with the technical knowledge and you get the finished product faster because developers write only one code which is then easily deployed to various platforms (Android, OS, Windows, Linux, Web, etc).
The major shortcomings of cross-platform technologies are the app’s slower execution, lack of low-level access, and the platform’s unique features. However, technology producers are trying hard to overcome these with each new release, so don’t be afraid to consider them.
Major cross-platform technologies for app development are: React Native, Flutter, Apache Cordova, Native Script, Titanium, Xamarin. Some people will mention Ionic as well but it actually works on top of the Apache Cordova. It’s hard to tell which one is the best as they are ultimately quite similar in terms of results but some of them are more popular which certainly means better support and faster technology evolution.
Native apps technologies
Native technologies for apps are produced by platform owners and from their perspective are the preferred choice of app development. If the product targets only a specific platform obviously there’s no need to go cross-platform. Apps made with native technologies are faster, leaner, and better suited to run on a specific platform. When the product is market validated and accepted, in other words when it exits the MVP phase many companies are abandoning cross-platform technology with which they made their app in the first place and turn to native technologies. This means making the whole codebase from the scratch for each platform. But that also means tuning the app for maximum performance and the best possible user experience.
Native apps technologies are Java or Kotlin for Android platform, Objective-C or Swift for Apple-based platforms, .NET for Microsoft platforms, to name only the most widespread ones. To be more precise each platform has various development APIs that have to be used when developing native apps so the knowledge of the platform programming language is a good start. Unfortunately, it’s not enough to complete the app.
Making apps is an interesting and creative work in our relatively new, more and more digitally oriented world. If you are a total beginner app maker, we advise you to first choose a starting persona based on your preference. This will help you to progress faster through a learning path and at the end of the day, you will be able to produce meaningful results.