How to make a mobile application if you have no development experience


By the end of 2014, there were already more than 18 million programmers, but this did not make the profession less in demand. There are many specialists, but there are even more vacancies for really good programmers.

It is not surprising that the profession of a programmer is so popular: it allows you, without leaving your desk, to improve products and create solutions that will be used by millions of people. Some people are stopped by the fact that there are already so many developers. But programmers are needed—especially those who can observe, design, and find new solutions to problems.

The free Geekbrains course “Programming Fundamentals” is needed for those who want to learn this profession and gain real development experience, but do not know where to start. Using the course materials, we put together a short plan on how to create our first program.

What is the program

A program is a sequence of commands that tells the computer how to solve a problem. The simplest program is to give the computer three numbers, so that it performs operations on them and shows the answer. Of course, the computer will not understand commands in Russian - they must be clearly written in one of the programming languages. But the general meaning is clear: the programmer gives the computer commands and provides the necessary data.

For those who need to find the cheapest hotel, they created the Booking program. If you need to write a note - Evernote, edit a photo - Photoshop. For the user, a program is a product that should solve his problem.

Development cost

As they say, to make money you must first spend it. This is not entirely true when it comes to mobile applications, but we will return to this below. For now, let's assume that you decide to order an application from the developer.

Depending on the type of application you want to make, the price can range from $500 to $100,000. This price may seem very high, but it is worth keeping in mind that the profit from a successful application covers the costs several times. In addition, gaming applications are the most expensive to develop and are also bestsellers.

If you already have some work in place (like layout and graphics), you can reduce the price significantly. Another way to reduce costs is to offer the developer a share of the profit from the application.

To find out approximately how much it will cost to develop an application, you can use the howmuchtomakeanapp calculator. It was created by the Canadian company ooomf.com. The resulting price can be safely divided by 2, and you will find out the price of development from us. You can also look at examples of applications they have already created with prices - crew.co.

Placing a ready-made application on the App store will cost you $99.9 per year. Placing an application on the Android Market costs $25.

What does it look like on a computer?

Three computer components are involved in program processing: the processor (CPU), the storage device (HDD), and the random access memory (RAM). The processor processes and executes the specified instructions, the hard drive stores them, and the RAM serves as a buffer for the processor: from here the data and commands necessary for the processor to perform operations are taken.

A simple example: the user needs to open a calculator and perform a mathematical operation. While the program is not yet open, it is stored on the hard drive. As soon as the user opens the program, all instructions and data go into RAM. The processor begins to perform operations specified by the user. During operation, all data is stored in RAM. When work stops, the program is unloaded from RAM and goes into hibernation on the hard drive.

What made this release so incredibly successful?

Here are some simple tips and if you do it right you can make huge profits:

I created a good product and kept updating it for two years. I think this is the main reason for the popularity of my program. To launch a special program, the offers were already known and had good reviews. Many people had heard about it before, but they were not willing to pay full price for it. It takes a long time to earn a good reputation.

Offer people a price they cannot refuse. Some people already knew about my program, but haven't bought it yet. But when they saw it for just $27, it was hard to resist!

Recruit more partners! Mark Thompson has been associated with a large number of affiliates. However, once it was launched by the company and went on sale, and we saw that the program was a huge success, Mark reached out to even more people. Thus, we continued to recruit partners, even after the launch of the company.

Own subscriber base. I've always been reluctant to use your subscriber list for advertising. However, it was my own product! I had already done several promotional emails for my subscribers and as a result I was one of the best sellers of my own product.

Formulation of the problem

To create a program, you need to clearly define the initial task. To do this, you need to formulate the conditions and describe all incoming and outgoing information. The programmer immediately understands what he will give to the program and what he wants to receive in return.

Let's take, for example, a program that performs operations on several numbers and displays the answer to the user. The incoming information will be numbers, the outgoing information will be the result of calculations that the program will show. To process this information, the programmer creates sets of instructions - algorithms.

How to create software that really works?

Do you really think you have what it takes to create great software? I'll tell you one secret: it's not easy and it takes a lot of effort, but you can learn it all.

Here's my list of what's needed to develop software projects that actually sell and perform well:

Learn to create a product for people

Creating a product for people is a skill like many others, and it can be learned.
I don't mean visual design (although that is part of the process). I'm talking more about recognizing the problem and understanding how to provide a human-computer interaction that ensures the user can successfully solve problems without any difficulty, rather than just creating a generic CRUD application to work with. databases, which includes several typical UI components. To do this, at first you can do the following: analyze the software of other developers and what problems you need to solve using these programs, and what you need to do to solve them. For example, how many mouse clicks do I need to make in my email program to write a reply? How many tags do I need to read? How often do I need to switch between mouse and keyboard? Does this help me in solving well-known problems? How about finding all attachments from emails from a specific person - you'd be surprised how difficult it is to do this using software!

Master and use multiple languages

If another language (or another development environment) is a better solution or gives you greater benefits, then use it.
Often, mastering another instrument is not worth the extra effort. Don't underestimate the importance of something new to the work environment: all new products must be tested, deployed, protected, and controlled - and this can take years.

Don't be fooled by advertising

Use what is best for you.
If your productivity is high in PHP, then work with PHP. Of course, sometimes technology can actually increase productivity or provide other significant benefits, but it is not an exaggeration to say that this is a huge rarity - it happens perhaps once or twice a decade. Don't fall into the trap of believing that a basic idea is good just because there are many variations of a particular technology. In fact, this may indicate that people are desperately looking for a technological solution to the wrong approach.

For example, client-side MVC for almost any type of web application functionality adds overhead (because there are more layers and more interfaces are needed between them), reduces productivity (you need to write more code, and layers make it harder to troubleshoot errors), and in fact Doesn't improve user experience.

UI design is hard work and using MVC on the client side will not work magic for you.

Stick to one style

As languages, frameworks, and libraries change, the way you use a language changes—like the seasons.
One month you are using closures with all your might, and the next you find out that it is already outdated. Try to reduce the cognitive stress while coding and debugging so you can calmly think about solving the problems you really need to solve.

Implement a minimum viable solution

You can't go overboard with this: when writing code, don't write anything that the code doesn't actually need to work properly.
Don't think ahead about how you can expand it in the future. All the same, everything will be as you did not expect. Focus on code that works and write tests rather than waste time making abstract assumptions. And don't forget: the code is not carved in stone. It's easy to refactor or rewrite it later, when you actually need to change or extend it, and when you know the real requirements.

Avoid complications

I don't use CSS or HTML preprocessors like HAML or Sass (if you're comfortable working with them, then use them to your health and increase your productivity!) - my style of coding and polishing applications requires a lot of fiddling and reworking, and for I find it much easier to tinker with the code at a lower level (e.g. just copying and pasting styles and working with browser development tools directly in the CSS file).
And while I really like CoffeeScript, I still find it easier to just write JavaScript entirely. For me, the benefits of slightly cleaner syntactic design and better language capabilities are not enough to then have to deal with additional compilation steps, more complex settings, and an additional layer of abstraction when debugging.

All these difficulties are relative. What seems terribly complex to me, you may perceive as simple and natural. It will take time to figure out what types of jobs are best for you. Be honest with yourself - if you feel uncomfortable using a particular tool, then perhaps you shouldn't try to adapt it to your working style. Just find what suits you best.

Coding > Configuration

It's easy to get into trouble by over-relying on code written by other people.
It must be (as you assume) that if many people use this code, then it must be of high quality. Isn't it true? By the way, this is why most people use Windows. This is what is called “reasonable sufficiency” (satisficing), or the desire for something that seems sufficient for a person. Your brain always tries to find the easiest solution. It will tell you to forget about some component or library, and most programmers will agree with this. Why reinvent the wheel and suffer from the famous “Not Invented Here” syndrome?

Choosing a ready-made component is almost always not the most optimal way to solve the problem. Such tools will solve your problem by 80%. And then suddenly you discover that there is no configuration option for this seemingly simple thing that looked so simple. And now you need to start reorganizing the source code and fixing errors in the selected library, and ultimately fork the code. After that, you need to figure out how to properly run tests, and suddenly it turns out that the ability to run tests is simply not there. And then... And everything in the same spirit.

Don't forget that you are a programmer, not a configurator

Try to keep track of time and what exactly you do while programming.
This includes: thinking about how to implement a specific feature, designing human-machine interfaces and interactions, creating plans and task lists for implementing a particular feature, choosing tools and libraries to make the job easier, creating prototypes, writing the code itself, testing and iterating to find errors and ensuring proper functionality. You'll be surprised at how little time you spend actually writing the code compared to how much time you spend choosing and configuring libraries.

You could save a lot of time if you just write the code from scratch. I've found that writing code often helps me understand a problem domain better, forcing me to think about edge cases. None of this would have ever happened if I had chosen a ready-made library that would do all the work for me.

Never stop learning

Perhaps the best way to stay on top of things is to do side projects from time to time.
This is a great option for enjoying learning new things without introducing “technological clutter” into your work project. For example, write an open source microlibrary (or two) and use it to share with other people the things you learn to use on the job. Experiment and rework certain elements so as not to lose the joy of programming - creating different things from nothing.

What are algorithms

Algorithms are a layer of operations between incoming and outgoing data. Essentially, this is what the computer will do with the information it has to give the user an answer.

Everyday life also consists of algorithms. For example, you want to drink coffee during your lunch break: go to the coffee machine, insert money into the bill acceptor, select the coffee you want, place the cup and confirm your choice. As in real life, in programming the consistency and accuracy of the execution of actions is very important: if you don’t substitute a cup, the coffee will spill; if you don’t feed the machine money, you won’t get coffee. The algorithm is the essence of the program.

What do you need to know to create useful programs?

First of all, you need to know whether you want to create programs that run on your (or someone else's) computer, or whether you want to develop web pages, or whether you need a program that only displays information, or whether it will involve participating in the development of a specific function. If you don't know yet, don't worry! The information on this site will give you a good basis to figure out where to go. You will find that most books and websites you come across on programming for beginners generally only show you the text of the program. This style of programming dates back to the days of on-the-fly computing. Some of you may remember the days of using DOS or perhaps VAX in school, where you had to type commands on the command line (“C:\>”) to get things done. Since most programming languages ​​were written with the command line interface as the primary interface, you will find many tutorials helpful for this method of learning. You're probably more interested in creating windowed programs that run as an open window on your operating system. Windows and tools that are commonly used in windowed programs (menus, help files, opening and saving files, etc.) are found in what is called an integrated development environment (IDE) programming for dummies. These frameworks provide elements that you can drag and drop into your programs, so you don't have to write different types of tools from scratch—a very useful innovation in programming for beginners. Despite this, many training courses begin with working and entering text in console mode and this can be confusing to a person who is trying to learn and understand programming. You probably aren't interested in writing console programs with a command line interface, but that's pretty much all they teach. Rest assured, there are ways to easily write windowed applications. Visual Basic is designed for writing Windows applications. Languages ​​such as C and C++ are not specifically designed for Windows, but using tools such as the Microsoft Visual C++ IDE and Borland C++ Builder, you can adapt your knowledge to write Windows programs. If you want to create web pages or programs that function on the Internet, you have several ways to use programming basics. If you just want to create web pages with text and graphic content, then HTML is the best choice for you. If you want to create a more interactive page and pages with more advanced content, learning PHP and MySQL can satisfy these needs and allow you to accomplish everything you want to do. If you want to create a fairly advanced program that uses the Internet to have different functions, then you should turn to the more difficult to use Java and maybe you will find what you are looking for.

Programming languages

The Programming Fundamentals course from Geekbrains uses the JavaScript programming language. Firstly, it has a wide range of applications: JavaScript is used in web development, in the development of office and server applications. Secondly, it is universal. To work with JavaScript, you do not need to install a development environment, that is, a system for writing software - all operations are carried out in the browser.

Getting started writing JavaScript is quite easy. You need to create a file with the HTML extension (any text editor will do, even Notepad) and write a few lines of code in it.

On Windows, it is best to use Notepad++. It's not available on OS X, but there are good alternatives, such as Sublime Text or TextMate. To display the familiar inscription 'Hello, World!' on the screen, you need to write the following lines in the editor:

<script language="javascript">

alert('Hello, World!');

</script>

After that, save the file in HTML format and open it. It will open in the browser - if everything is done correctly, a window with the entered text will appear.

Creating a portable program

To start creating a portable program, you need to download and launch Cameyo. Downloading the program is quite simple; you can find such an application on the official website or on other web resources. After downloading the program, you need to run it. You can do it this way:

  1. Run the program as an administrator (before launching the program for the first time, it is advisable to register on the official website of the application).
  2. In the window that opens, you must select the first item.
  3. After opening the application, you need to select the icon and start capturing the desired applications.
  4. Then open the installation window and create the application.

After such procedures, it is advisable to restart the computer. Now you need to go to the full settings of the created application or program. Remember that all portable programs you create are located in the “Computer” tab - Cameyo. Settings:

  1. Open the window using the right mouse button -Edit.

    )

  2. Go to the tab - General. Here we view information about the created program or application.
  3. Next you need to look at the Advanced tab. In this tab, you can configure full Explorer integration, recreate the file from the application, and also completely restart them.
  4. And the last tab you can work with is Security. This tab will help you encrypt data, gain access to certain applications and programs, and also limit their operating time.

Remember that absolutely any programs created using Cameyo can be uploaded to the cloud. In this case, any program will be launched from there directly in the browser, this will simplify the performance of the programs and the load on the system. Cameyo helps you easily and conveniently create a portable program and implement it on your personal computer. The free version of the program has restrictions for applications created in the cloud. They can be stored there for only 7 days, while the maximum account size can reach only 30 MB. These measures apply only to the free version of the program.

Rating
( 1 rating, average 4 out of 5 )
Did you like the article? Share with friends:
For any suggestions regarding the site: [email protected]
Для любых предложений по сайту: [email protected]