Android software development. How to start developing for Android. Graphical development environments

In any business, the most difficult thing is the beginning. It is often difficult to get into context, which is what I encountered when I decided to develop my first Android application. This article is for those who want to start, but don’t know where.

The article will cover the entire application development cycle. Together we will write a simple Tic-Tac-Toe game with one screen (in Android OS this is called Activity).

Lack of Java development experience should not be an obstacle to mastering Android. Thus, the examples will not use Java-specific constructs (or they will be minimized as much as possible). If you write, for example, PHP and are familiar with the fundamental principles of software development, this article will be most useful to you. In turn, since I am not an expert in Java development, it can be assumed that source does not claim the label “best practices for Java development”.

Installing the necessary programs and utilities

I'll list necessary tools. There are 3 of them:

  1. IDE with support for Android development:
    • Eclipse + ADT plugin;
    • IntelliJ IDEA Community Edition;
    • Netbeans + nbandroid plugin;

The utilities are installed in the order specified above. There is no point in installing all the listed IDEs (unless you have difficulty choosing the right one). I'm using IntelliJ IDEA Community Edition, one of the most advanced on this moment IDE for Java.

Starting a virtual device

By launching AVD Manager and installing additional packages(SDK different versions), you can start creating a virtual device with the necessary parameters. Understanding the interface should not be difficult.

Device list

Creating a Project

I am always eager to get to work, minimizing preparatory activities, which include creating a project in the IDE, especially when the project is educational and does not intend to be produced.

So, File->New Project:

By pressing the F6 button, the project will be assembled, compiled and launched on the virtual device.

Project structure

The previous screenshot shows the structure of the project. Since in this article we are pursuing purely practical goals, we will focus only on those folders that we will use in the process of work. These are the following directories: gen, res And src.

In folder gen there are files that are generated automatically when the project is built. You cannot change them manually.

The res folder is intended for storing resources such as pictures, texts (including translations), default values, layouts.

src- this is the folder in which the main part of the work will take place, because files with the source code of our program are stored here.

First lines

As soon as the Activity (application screen) is created, the onCreate() method is called. The IDE filled it with 2 lines:
super.onCreate(savedInstanceState); setContentView(R.layout.main);
The setContentView method (equivalent to this.setContentView) sets the xml layout for the current screen. In what follows, we will call xml layouts “layout” and screens “Activity”. The layout in the application will be as follows:

TableLayout is ideal for this application. Id can be assigned to any resource. In this case, TableLayout is assigned id = main_l. Using the findViewById() method you can access the view:
private TableLayout layout; // this is a property of the KrestikinolikiActivity class public void onCreate(Bundle savedInstanceState) ( super.onCreate(savedInstanceState); setContentView(R.layout.main); layout = (TableLayout) findViewById(R.id.main_l); buildGameField(); )

Now we need to implement the buildGameField() method. To do this, you need to generate a field in the form of a matrix. This will be done by the Game class. First you need to create a Square class for the cells and a Player class whose objects will fill these cells.

Square.java

package com.example; public class Square ( private Player player= null;

public void fill(Player player) ( this.player = player; ) public boolean isFilled() ( if (player != null) ( return true; ) return false; ) public Player getPlayer() ( return player; ) )

Player.java

package com.example; public class Player ( private String name; public Player(String name) ( this.name = name; ) public CharSequence getName() ( return (CharSequence) name; ) )

All classes of our application are located in the src folder.

Game.java

package com.example; public class Game ( /** * field */ private Square field; /** * Constructor * */ public Game() ( field = new Square; squareCount = 0; // filling the field for (int i = 0, l = field.length;
Initialization of Game in the KrestikinolikiActivity constructor.

public KrestikinolikiActivity() ( game = new Game(); game.start(); // will be implemented later)
private Button buttons = new Button;
//(....) private void buildGameField() ( Square field = game.getField(); for (int i = 0, lenI = field.length; i
Line 8 creates an object that implements the View.OnClickListener interface. Let's create a nested Listener class. It will only be visible from KrestikinolikiActivity.
public class Listener implements View.OnClickListener ( private int x = 0; private int y = 0; public Listener(int x, int y) ( this.x = x; this.y = y; ) public void onClick(View view) ( Button button = (Button) view; ) )
It remains to implement the game logic.

public class Game ( /** * players */ private Player players; /** * field */ private Square field; /** * has the game started? */ private boolean started; /** * current player */ private Player activePlayer; /** * Counts the number of filled cells */ private int filled; /** * Total cells */ private int squareCount; /** * Constructor * */ public Game() ( field = new Square; squareCount = 0; // filling the field for (int i = 0, l = field.length; i

Determination of the winner
K.O. suggests that the winner in tic-tac-toe is the one who lines up X or O in a line equal to the length of the field vertically, or horizontally, or diagonally. The first thought that comes to mind is to write methods for each case. I think the Chain of Responsobility pattern would work well in this case. Let's define the interface
package com.example; public interface WinnerCheckerInterface ( public Player checkWinner(); )

Since Game has the responsibility to determine the winner, it implements this interface. It's time to create virtual “linesmen”, each of whom will check his side. All of them implement the WinnerCheckerInterface interface.

WinnerCheckerHorizontal.java package com.example; public class WinnerCheckerHorizontal implements WinnerCheckerInterface ( private Game game

;

public WinnerCheckerHorizontal(Game game) ( this.game = game; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer; Player lastPlayer = null; for (int i = 0, len = field.length; i

WinnerCheckerVertical.java

package com.example; public class WinnerCheckerDiagonalLeft implements WinnerCheckerInterface ( private Game game; public WinnerCheckerDiagonalLeft(Game game) ( this.game = game; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer; Player lastPlayer = null; int successCounter = 1; for (int i = 0, len = field.length; i

WinnerCheckerDiagonalRight.java

package com.example; public class WinnerCheckerDiagonalRight implements WinnerCheckerInterface ( private Game game; public WinnerCheckerDiagonalRight(Game game) ( this.game = game; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer; Player lastPlayer = null; int successCounter = 1; for (int i = 0, len = field.length; i
Let's initialize them in the Game constructor:
//(....) /** * "Judges" =). After each move they will check * to see if there is a winner */ private WinnerCheckerInterface winnerCheckers;
//(....) public Game() ( //(....) winnerCheckers = new WinnerCheckerInterface; winnerCheckers = new WinnerCheckerHorizontal(this); winnerCheckers = new WinnerCheckerVertical(this); winnerCheckers = new WinnerCheckerDiagonalLeft(this); winnerCheckers = new WinnerCheckerDiagonalRight(this); //(....) )
Implementation of checkWinner():
public Player checkWinner() ( for (WinnerCheckerInterface winChecker: winnerCheckers) ( Player winner = winChecker.checkWinner(); if (winner != null) ( return winner; ) ) return null; )
We check the winner after each move. Let's add code to the onClick() method of the Listener class
public void onClick(View view) ( Button button = (Button) view; Game g = game; Player player = g.getCurrentActivePlayer(); if (makeTurn(x, y)) ( button.setText(player.getName()) ; ) Player winner = g.checkWinner(); if (winner != null) ( gameOver(winner); ) if (g.isFieldFilled()) ( // if the field is filled gameOver(); ) )
The gameOver() method is implemented in 2 variants:
private void gameOver(Player player) ( CharSequence text = "Player \"" + player.getName() + "\" won!"; Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); game.reset (); refresh(); ) private void gameOver() ( CharSequence text = "Draw"; Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); game.reset(); refresh(); )
private void refresh() ( Square field = game.getField(); for (int i = 0, len = field.length; i

Ready! I hope this article helped you get comfortable in the world of Android development. Thank you for attention!

Video of the finished application

So, you've decided to become a mobile application developer for... operating system Android. This is an excellent solution, but without certain knowledge it will not work. At a minimum, you need to learn programming. There are several programming languages, and you will need to choose which one you start with. There is a difference between them, and it may not be too easy to understand.

Here are the programming languages ​​that a future Android developer might consider:

  • Java is the official development language for Android and is supported by Google's development environment. It may not be that easy to learn.
  • Kotlin – This language was introduced as the second officially supported language. It's similar to Java in many ways, but it's easier to get started with.
  • C/C++ – Android Studio supports C++. This language is even more complex, but it is actively used in game development.
  • C# – this language may appeal to beginners. It is supported by the Unity and Xamarin development environments. They provide advantages when developing games and products for different platforms.
  • BASIC – This language is supported by the B4A IDE, which is a simple yet powerful tool.
  • Corona/LUA – The LUA environment is good for developing cross-platform products. It greatly simplifies the creation of applications and provides access to native libraries.
  • PhoneGap (HTML, CSS, JavaScript) – This option is suitable for those who know how to create interactive web pages. With PhoneGap you can create cross-platform apps in a similar way.

Now let's look at these options in more detail.

The Java programming language is the first one that comes to mind when it comes to Android development. Java was released by Sun Microsystems in 1995. It is used for different types applications. When it comes to Android applications, Java is the best choice for those who want to dive into Android development headlong. However, it is not the best language for a beginner. You will definitely face difficulties. If you're a beginner, want to create a game, or want to start learning, but haven't yet decided what kind of result you want to achieve, you might want to start with something simpler.

Kotlin

Kotlin, just like Java, is good for Android application development. The difference is that Kotlin is easier for beginners, but still not easier than many other options. It's worth a look because the language is young and you can work with it in Android Studio, which is a big plus.

C/C++

Not the best choice for creating simple applications. You can work with the language in Android Studio with using Android NDK, but unlike Java and Kotlin it does not run on the Java Virtual Machine. However, it runs natively on the device, which can give you more memory options. You can achieve better performance in 3D games with it. If this is your choice, prepare for difficulties. You might be better off using a ready-made game engine to create your games.

C#

C# is more simple version C and C++, developed by Microsoft. With this language, you don't have to worry about memory management, just like with Java. However, C# is more modern and cleaner compared to Java. C# and Unity will be very useful and easy to develop games. For application development, the Unity environment is not that good. C# is a great choice, but it will limit your options if you want to become a professional Android developer.

BASIC

This language - the best option for a beginner. You will be able to use it in the B4A development environment. This combination isn't great for making games, but it's ideal for learning how to develop. You can learn a lot of new things without too much effort and create good applications. However, you will have to pay for all these joys with money. You will learn something new, but you won’t become a professional if you only know how to program in BASIC.

Corona

Corona in conjunction with LUA will allow you to develop not only for Android, and it is much easier than starting to learn Java. You will like it and be pleased with the results, but in order to develop your skills, you will have to learn something else. As with BASIC, there is no way to become a professional.

PhoneGap

The last option is suitable for those who are good at web development and can create an interactive website using HTML, CSS and JavaScript. PhoneGap will allow you to create an application using the same tools. This option has very little to do with Android development, but it is suitable if you have specific goals and do not plan to develop for Android in the future.

There are many options. We're sure you can do it right choice.

Based on Android Authority

Android OS is approaching its tenth anniversary. Although so much time has passed since the first release of this operating system, this does not mean that the train has left, and it is too late to learn how to develop Android applications. In fact, now is the time to learn: never before have there been so many effective ways creating amazing Android apps.

And all new Chromebooks now and forever have acquired support for Android applications: they can be downloaded, installed and launched, as in their native environment. The Android software market is only growing. You shouldn’t think that time has passed - it’s not too late to start. All you need to get started: get ready, take a deep breath, choose the appropriate programming language - and start your journey.

But which programming language is best for you? Choosing the right development tool is the first task that no one can do better than you. Much depends on experience in programming (or lack of experience in specific development environments), on personal comfort when using a particular language. Fortunately, there is a decent selection. This article discusses a selection best languages programming for Android.

When it comes to Android apps, there is no way Java is a wrong choice. In addition to the fact that it is the official programming language of this OS, it is also the second most common on the GitHub resource, and it has been so popular for more than 20 years. This means that there are a great many instructions and textbooks on Java, and there is absolutely no need to worry about this language becoming obsolete in the near future.

Since the Java language has spread widely across dozens of programming industries, we recommend starting your learning with books that focus on Java in the context of the Android ecosystem. Of course, Java is the same in all environments, but separate paradigms and expressions will help an inquisitive mind quickly understand the essence of Android application development. This is precisely the task that most books on this topic set themselves.

It's worth noting that due to Java's advanced age, it lacks some of the features found in younger languages. This may not be a big deal for newbies, but for more experienced programmers coming to the language from, say, Swift, Java can feel claustrophobic at first.

The Kotlin programming language was created specifically to work on virtual machines Java. This means that Kotlin applications are compiled into Java code, allowing them to run on any machine with Java support- environment. And since most machines support Java, using Kotlin is a relatively simple way to develop cross-platform software.

Using Kotlin means using all the best aspects of Java in a software product, without its disadvantages. The syntax and other features of programming in Kotlin are modern, understandable, and fast. It's a really convenient development environment. Where Java seems cumbersome, clunky and an old language, Kotlin looks comfortable, fresh and even beautiful. To some extent, we can consider that Kotlin was specifically created for development Android applications.

But on the other hand? Kotlin is a very young language. Its first versions were released in 2011, and the official release took place only in 2016. There is good news: Kotlin is free and open source. We can expect it to develop by leaps and bounds. But in any case, it will take several years before this language proves itself to be a truly reliable choice.

C# is an incredible programming language! He took all the best from Java, leaving behind the worst features of this language. And it developed in the same right direction. It seems that Microsoft once saw the potential of Java and decided to develop its own, better version.

For a long time, a major drawback to using C# was that it only worked in Windows systems: This language is based on the .NET Framework. But in 2014, this circumstance changed: Microsoft open sourced the .NET Framework. Moreover, in 2016, the corporation acquired Xamarin, the developer of Mono (a project that allows C# programs to run on various platforms).

The result of these glorious deeds is that today you can use the Xamarin.Android and Xamarin.iOS environments to create mobile applications in Visual Studio or Xamarin Studio. An excellent way to start development, because in the future it will be possible to use the tools of this language in other areas - for example, creating complex games using Unity and C#. Illustrative examples apps built in Xamarin? MarketWatch – no more, no less.

Finally, we note that until recently, working in Xamarin required a fee. But Microsoft made this environment free!

While Android doesn't have native support for Python, there are tools that allow you to write apps in Python and then convert them into native Android APK apps. A great example of Python's viability as a truly powerful language. Python enthusiasts who want to try their hand at developing Android applications will definitely appreciate this opportunity - without delving into the jungle of Java.

Among the most popular solutions for converting Python code to APK is the Kivy project. And the point is not even in its open source nature, and not only in Windows support, Mac, Linux and iOS in addition to Android. Kivy is designed to really speed up application development. If anything, you can use it as a prototyping tool. There's so much you can do with just a few lines of code!

However, in the absence of native support for Python, you won’t be able to take advantage of the native Android environment. Applications written with Kivy tend to compile into larger APKs, have slow startup times, and generally have below-average performance. However, each newly released release is truly better than the previous one, and mobile devices today so powerful that suboptimal application performance doesn't mean that much. Let this factor not be an obstacle.

A couple of examples of Android apps written in Kivy: Kognitivo and Barly.

  1. HTML5 + CSS + JavaScript

This trio of languages, once created for developing front-end applications in a web environment, has since grown into something more. Now HTML5, CSS and JavaScript tools are enough to create the most different applications for both mobile devices and classic PCs. Essentially, a programmer creates a web application that can harness the power and magic of offline platforms.

To create Android applications in this way, you can use the capabilities of Adobe Cordova - it is an open source framework that also supports operating systems. iOS systems, Windows 10 Mobile, Blackberry, Firefox, and many others. However, as useful as Cordova is, it requires some serious work to create a decent app. Therefore, many programmers prefer the Ionic Framework project (which uses Cordova for deployment on various platforms).

Examples of Android applications written in HTML5, JavaScript and CSS: Untappd and TripCase.

There is another possibility: using the React Native library. It can be deployed on Android, iOS and the Universal Windows applications" This library is used by specialists from Facebook, Instagram and other large companies, so you can rely on its reliability. It's not the easiest learning curve, but when it comes to the end, you'll have all the power, flexibility, and convenience you could want at your fingertips.

Lua - old scripting language, which was originally created as an add-on for programs written in more complex languages: C, VB.NET, etc. This language has some features that distinguish Lua from a number of similar ones - for example, the beginning of arrays with 1 instead of 0, or the absence of native classes.

Thus, for certain tasks, Lua can be used as the main programming language. The best one example - SDK Corona. Using Corona, you can create powerful, feature-rich applications that can be deployed on Windows, Mac, Android, iOS, and even Apple TV + Android TV. Corona also has built-in monetization capabilities, plus it is a decent-sized market where you can find useful plugins.

Corona is most often used to create games (examples include Fun Run 2 and HoPiko), but there are also examples of utilities and business applications (My Days and Quebec Tourism).

  1. C/C++

To create Android applications, Google officially provides two development environments:

  • SDK (uses Java);
  • and NDK (uses native languages ​​like C and C++).

Note that to create an entire application, using C, C++ and “naked” Java will not work. Instead, the NDK allows you to create libraries whose functions can be accessed by parts of Java code from within your application.

Typically there is no need to use the NDK. This environment should not be used as the main one, if only because you will have to do more coding in C/C++ rather than in Java. The existence of NDK is justified in those tasks where it is necessary to squeeze out as much performance as possible when performing complex computing tasks. The NDK also allows you to implement C and C++ libraries into your application.

But in other cases, it's worth sticking with Java wherever possible. Developing Android applications in C/C++ is many times more difficult than in Java. And more often than not, the performance gains are too small.

What applications would you like to tackle?

Messengers, games, calculators, notepads, players. The possibilities are endless! In many ways, they are limitless thanks to the programming languages ​​and frameworks listed above. There is no need to study them all in a row - only those that are useful specifically in solving your problem. If in the future you need to expand your own knowledge, then you can engage in self-education when the time comes.

Finally, we recommend reading blogs dedicated to mobile application development. They will allow you to determine the ingredients needed to prepare a successful mobile application and help you overcome many difficulties that inevitably arise on the path of all programmers.

operating room Android system every year it becomes not only a suitable OS for ordinary users, but also a powerful platform for developers. Well, what can you do: Google always meets developers halfway, providing ample opportunities and powerful tool an aria peppered with informative documentation.
In addition, one should not lose sight of the fact that the “green robot” is the leader in popularity among mobile operating systems. This suggests that by programming for Android, you will have a wide audience, which can later bring profit. In general, Android is a kind of “oasis” for developers. Therefore, we have prepared for you a special selection of programming languages, as well as development environments for this OS.
Attention, a little advice for beginners
: Android programming may seem difficult or too monotonous at first. Tip: Check out the links to useful documentation before you get started, and then programming on Android will not be a problem for you.

Java is the main tool for Android developers

Development environments: Android Studio (IntelliJ IDEA), Eclipse + ADT plugin
Suitable for wide range of tasks
Java is the main language for Android programmers, a must-have for beginners. The main Android source code is written in this language, so it's easy to see why most people choose this language. Applications written in Java run on Android using virtual machine ART (or Dalvik in Jelly Bean and more earlier versions Android) is an analogue of the Java virtual machine, because of which Google has serious litigation with Oracle.


Google currently officially supports the fairly powerful Android Studio development environment, which is built on based on Intellij IDEA from JetBrains. Also, don’t forget about the very detailed documentation from Google, which covers everything from match_parent and wrap_content to constructors, constants and main methods of the JavaHttpConnection class - it’s definitely worth reading.

Also, don't forget about Eclipse, a very popular environment for Java programmers. With the official ADT plugin from Google, this toolkit will become a powerful and lightweight weapon in your hands. But the guys from Mountain View stopped supporting Eclipse since last summer, giving way to the new Android Studio. Recommended for use on weak PCs.

Required documentation:

C++ is a powerful tool in the hands of a master

Main development environments: Android Studio (version 1.3 and higher), Visual Studio 2015, QtCreator
Suitable for game engines and resource-intensive applications.
C++ is a middle-aged but very powerful programming language that celebrated its thirtieth anniversary last year. It was invented in 1985 thanks to the efforts of friend Björn Stroustrup and still occupies the top positions of the most popular programming languages. “Pros” give you complete freedom of action, limiting you only to what is reasonable.




Over the entire existence of Android, many frameworks and development tools for C++ have been created. I would especially like to highlight the well-known Qt and IDE QtCreator, which allow you to develop cross-platform applications for Windows, Windows Phone, Windows RT, iOS, SailfishOS and Android (once this list also included Symbian). In addition, you get a convenient Tulip library of containers, algorithms and templates, which absorbs the best of Java and Android. And finally, you get many different QT modules for high- and low-level work with the system. Your humble servant codes specifically in C++ and Qt.

Last year, at the Windows: The Next Champter conference, widespread attention was paid to the fairly popular development environment Visual Studio 2015. One of the main innovations was support for developing applications for both Windows Phone and Android - Microsoft tried to somehow increase the number of applications for your OS.

It is also impossible not to mention that the official Android Studio began to support NDK. With the help of the NDK, you can use OpenGL graphics when working with Android. If you need speed and efficiency - choose NDK! This development method is perfect for game engines that require high performance.

Android development in C or C++ may seem simpler than in Java, but despite the fact that the language offers you complete freedom of action and does not limit you in your steps, it has some specific features that will take a lot of time to learn - not without reason C++ has been compared to nunchucks (an excellent weapon that unfortunately requires great skill). However, developing Android applications in C and C++ can be fun.

Required documentation:

Other languages

Now is the time to talk about other less popular, but also interesting languages ​​and frameworks for them. However, for many reasons, you won't be as successful as you are with Java and C++.

Corona (LUA Script)


Suitable for creating games and simple applications
If for some reason you don’t want to learn Java or understand building an interface via XML, then you can choose this IDE for yourself. Corona is a fairly lightweight development environment, the code in which must be written in a fairly lightweight LUA (Pascal lovers will appreciate it).

This toolkit will help you write simple 2D games, for which there are libraries for 2D objects, sounds, network and game engine. The games created work with OpenGL, which means high efficiency. Great for beginners, perhaps this is where you can create your first mobile app on Android!


Required documentation:

Adobe PhoneGap (HTML5, JavaScript, CSS)


Suitable for creating non-resource-intensive applications
If you are already familiar with HTML, CSS and JavaScript, you can try PhoneGap as an alternative. This IDE will allow you to build full-fledged applications developed in the above-mentioned programming and markup languages.

In fact, ready-made applications from PhoneGap are the simplest WebViews, brought to life by JavaScript help. Using various APIs, you can use various device functionality just like in native applications. What's interesting is that the applications are compiled on the server and then available for use on iOS, Android, Windows Phone, Web OS and BlackBerry OS. With such broad cross-platform functionality, app development can speed up significantly.


Required documentation:

Fuse (JavaScript and UX)


Suitable for creating both simple and complex applications
When people talk about Android development tools, they often think of Fuse. This tool is one of the most user-friendly of its kind, and it can present a wide range of possibilities and benefits to the developer.

The main logic of Fuse applications is built on JavaScript - a simple and understandable language with a low entry threshold. The interface foundation is represented by UX markup - intuitively understandable to everyone. Well, the “buns” of the environment will allow you to apply changes directly while the application is running on your device or emulator - just like in Android Studio 2.0 and higher. With Fuse, Android app development can be easy and enjoyable.

Required documentation:

The words "at the end"

Of course, we have not shown you all the currently existing development tools. With this article we wanted to explain to you that becoming an Android developer is not so difficult, although it often requires effort and perseverance. The world of development under mobile platforms is open to you, but remember: the first step is always yours.

Programming is one of those areas where everyone can feel like a creator. Usually it is understood as application development under personal computers, units of production equipment or just for electronic homemade products. But with the spread of touchscreen mobile devices, programming for Android, iOS or another system shell of a similar type is becoming increasingly popular. Well, I must admit, this is a promising occupation. Therefore, within the framework of the article, we will consider running Android from scratch. What features are there? What language is used?

Creating programs

Before writing programs yourself, you need to study all the components necessary for this:

  1. Language.
  2. Select your development environment. We will dwell on the language in detail, as well as on software products, where applications will be created. But first, let's talk a little about development environments. Conventionally, they can be divided into three components:
  • graphic;
  • ordinary;
  • online.

Regarding the creation of programs, it should be noted that now it is difficult to put forward an idea that has not already been worked out before. Therefore, if a problem arises or simply in the case of a lack of knowledge, it is necessary to correctly formulate the misunderstanding that has arisen and turn to more experienced programmers. They will be able to help you create programs with constructive advice.

What language are programs written in?

Java is used for these purposes. It should be noted that this is a rather complex programming language. But you don’t need to know it completely to create your own applications. Basic knowledge and skills in working with background information to get answers to your questions. In addition, there are certain presets, using which you can take some steps to create an application without significant problems. Then programming for Android becomes a pleasure.

Choosing a regular development environment

Eclipse and Android SDK. They are both free. In general, it should be noted that these development environments are serious competitors, and each of them has a number of strengths and weaknesses. Each of them is worth studying. Separately, let us just dwell a little on one aspect of the Android SDK - the emulator. It is a program that pretends to be a phone or tablet that runs on Android. The emulator runs smoothly on regular computer and on the desktop it looks like a standard one mobile device. There is only one peculiarity - it is controlled using the mouse and keyboard, and not with your finger. In the emulator you can check the functionality of the application under various screen extensions, as well as on different versions Android mobile operating system. Therefore, no matter how strange it may sound to you, when developing applications aimed at Android, it is not at all necessary to have a phone.

What do you need to develop your application?

Graphical development environments

This option is suitable for those who have no idea about programming in general, but want to get their application here and now. First, you should familiarize yourself with the description and capabilities of graphical development environments. Thus, some can place only the simplest elements and attach minimal functionality to them. It is better not to use such resources, since with their help it will be difficult to understand the logic of work and create a developed final product. It is advisable to make a selection according to the following parameters:

  1. Availability of an intuitive interface.
  2. Using clear operating logic.
  3. Ability to create elements in graphical and code modes.
  4. Availability of documentation for working with the development environment and a support forum.

Online development environment

They can provide quite a wide range of functionality in a simple access point - the Internet. “Online development environment” probably says it all. Although it should be clarified that under Android it is still not an easy task. So, the most difficult will be to implement shooters and applications of similar complexity. But programs with text formatting and data transfer are easy.

Conclusion

We hope there are no more questions about the first steps of preparing to create your own programs. If you decide to get serious about programming, then you can use special literature. For example, the book “Programming for Android” by Hardy Brian. Of course, this is not the only good work, but you have to start somewhere. By reading this manual, you can begin the path to success.