Android offers developers a wealth of power: it's a universal, open platform used by millions of users around the world, with a surprisingly easy-to-use platform for app distribution. Luckily, there are plenty of tools for Android developers to help you get started quickly. But even better is that every year there are more and more tools, and their effectiveness is constantly improving. There has never been a better time to create your own Android app!

Android Studio

Not a single top The best tools for developing applications for Android” is not complete without Android Studio. This is the official IDE (integrated development environment) for Android created by Google. That's why Android Studio is the number one choice for developers who want to create apps that follow Google's Material design and access the platform's advanced features.

The IDE is where a developer spends most of his time: Android Studio acts as an editor for the programming language of your choice (it supports Java, C++, as well as Kotlin, which has recently also become official Android language), a compiler that can produce APK files and a file system to organize your project. It also includes an XML editor and an advanced layout editor. Android Studio offers a whole range of additional tools, some of which we will look at in this article. Fortunately, most of them can now be downloaded in one package. Essentially, this package comes bundled with the Android SDK, but you will still have to download and install the Java JDK separately. And it would be nice if you read the beginner's guide to using Android Studio.

Developing with Java and the Android SDK has a somewhat steep learning curve, but in terms of integration, support, and capabilities — Android Studio is second to none.

AVD Manager

The AVD Manager tool comes bundled with Android Studio. The acronym AVD stands for “Android Virtual Device”, so it is essentially an emulator for running Android applications on your computer. This is a very useful tool that allows you to test your applications without having to install them on physical devices. More importantly, AVD Manager allows you to create a variety of emulators with different screen sizes, specifications, and Android versions. You'll be able to see how your creation will look on any device, thereby ensuring support among the most popular gadgets. The tool's performance is constantly improving, especially with the fast virtual, which runs Intel's version of Android on your computer and eliminates the need for level emulation instruction.

Android Device Monitor

Another built-in tool is Android Device Monitor, which allows you to monitor your physical or virtual device while it is running, and, in return, receive information about how many processes are running per thread, network statistics, LogCat, etc. This tool is great for testing the performance of your applications.

Android Debug Bridge

ADB is a tool command line, with which you can copy files to and from the device, install and uninstall applications, perform backup and recovery on all devices on Android based, including virtual ones. It comes bundled with Android Studio and, for the most part, you won't have to use it. But in rare cases you will still have to use it. To do this, go to the folder where the file is located adb.exe and open a command prompt (Shift + RMB>Open Command Window).

Unity 3D

Unity 3D is the first tool on our list that is not pre-installed in Android Studio. Unity 3D is a game engine and IDE for cross-platform game development. It is very easy to learn and has a lot of features for game development. WITH using Android Studio can create a game, but in Unity the same thing can be done much easier, without a lot of wasted time and headaches. By the way, Unity has the ability to create augmented reality applications for Daydream, Cardboard or Gear VR!

Unreal Engine

Unreal Engine is a game engine and Alternative option for those interested in cross-platform and full-featured game development. Unreal, like Unity, supports Android development, but in terms of graphics, Unreal games are far superior to Unity games. However, Unity has better native support for mobile and 2D creations, making it the preferred option for most mobile game developers. It doesn't matter which engine you end up choosing, as there's no reason why you can't give them both a chance.

GameMaker:Studio

GameMaker: Studio is another game development tool, this time for 2D games. It's much easier to use than Unity or Unreal, and allows you to create games with virtually no coding. However, if you want to add a little more settings into your game, you can use the built-in programming language for beginners — GML or “GameMaker Language”.

However, with ease of use, you do lose some power and functionality. It's also worth noting that GameMaker: Studio is not free software, but there is a free trial version.

B4A

B4A (or Basic for Android) is the most obscure tool for developing Android applications from Anywhere Software, a company specializing in the concept of rapid application development (RAD). As the name suggests, B4A is an IDE and interpreter that allows developers to create applications using the BASIC programming language . For those unfamiliar with BASIC, it is a procedural programming language that reads almost like regular English. Despite the fact that B4A is a project developed by just one person, it has managed to combine many useful advanced features, such as: wireless debugging via Bluetooth, visual editor for adding and organizing views, etc. This software is not free.

With B4A you can do almost everything you can do with Java, but much faster and with less boilerplate. Any performance hit compared to other IDEs is minimal. However, it's still worth learning the official method for building apps, especially if you want to use specific libraries (but it's worth mentioning that Java libraries can be wrapped for Basic4Android).

AIDE

You've probably already noticed that Android application development tools love acronyms. AIDE stands for “Android IDE” and is unique in that it runs on Android itself. This means you can create apps using your phone or tablet and then test them on the same device.

You've probably already realized that this IDE lacks some features from Android Studio (ok, a lot of features) and has no real advantage over more feature-rich IDEs for Android development. It is only suitable for learning Java and Android SDK, as it provides the opportunity to read a programming tutorial and, at the same moment, check the code from there in real time. This is a real find for those who have just started developing their own mobile projects. AIDE is not free and, regardless of whether public opinion about it is good or not, it is worth buying and trying for yourself.

Xamarin V Visual Studio

Visual Studio- This is an IDE from Microsoft that supports a range of languages ​​including C#, VB.net, JavaScript and more. With the Xamarin framework included with Visual Studio, you can build cross-platform apps using C# and then test them across multiple cloud-connected devices. This is a good and free choice if you plan to release an app for both Android and iOS, but don't want to write your code twice. It is also an excellent choice for those already familiar with C# and/or Visual Studio. The downside is that Xamarin is awkward to use Java libraries and, as with any other Android Studio alternative, you lose Google support and advanced built-in features.

Eclipse

Before the advent of Android Studio, developers used Eclipse as the main tool for developing Android applications. This IDE supports several different programming languages, including Java with Android SDK. Unlike Android Studio, Eclipse does not offer native support and requires more advanced configuration. On this moment Google has turned off official support, so there's really no reason to use Eclipse instead of Android Studio. I included it in this list because it may be useful for those interested in the history of IDEs and learning how to create Android applications. So to speak, in order to broaden your horizons.

GitHub

GitHub is an online service for hosting and collaborative development of IT projects. It also includes a version control system. This is very convenient if you need to do backup copy your project or you are looking for people for joint development, or a sample good code, which they could use as an example to develop their own project. If you are a beginner, you will most likely download the code of various projects onto your computer, and then rewrite it as you wish. If you've ever worked on a team to develop a large application, but have never used GitHub, now is the time to fix that!

Nowadays it is difficult to imagine the life of a modern person without mobile phone. In addition to their main function, phones play a significant role in everyday work: they are used to read files, check email, print various documents using network printer. In this regard, an independent segment has appeared on the market - mobile applications. The peculiarity of this segment is that the creation of applications should be carried out taking into account the specifics of mobile devices, namely: interface differences, screen parameters, touch controls.

Today, the Android operating system is the most common in the field of mobile devices. Android gained its popularity largely due to its open source source code and Google's policy of allowing mobile device manufacturers to use the Android platform for their products free of charge. Android is used by most major mobile device manufacturing companies such as Samsung, HTC, Sony, Huawei.

Android Studio is an integrated development environment (IDE) for working with the Android platform, released by Google.

Initially, Google expected to give Android versions names of famous robots, but abandoned the idea due to copyright issues. Each version of the system, starting with version 1.5, gets its own sweets-themed codename. Codenames are assigned in alphabetical order of the Latin alphabet.

The Android platform consists of operating system, based on the operating kernel Linux systems, embedded mobile applications and transition software. Google is at the forefront of creating and improving the Android platform.

Android allows background execution of any action, supports 2D and 3D graphics, access to file system and database, provides an extensive library of user interface elements.

The Android system architecture consists of the following layers:

1) Linux operating system kernel.

2) Libraries and runtime system.

3) The application framework layer gives the developer access to the application programming interface (API).

4) Application level – a set of standard applications.

Figure 1 shows the Android system architecture.

Figure 1. System architecture image Android

A developer typically works at the application and application framework layers. The libraries, runtime system, and kernel of the Linux operating system are hidden from the developer.

One of the most important tools for developing Android applications is the universal mobile application development tool for the Android operating system (Android SDK) - a set of programming tools that contains the tools necessary to create, compile and build a mobile application.

Nowadays, software creation is often done using an integrated development environment (IDE). The IDE automates the process of compiling, assembling and launching the application, which makes the programmer’s work easier and allows the novice developer to special effort create your own application for the first time.

There are two predominantly popular development environments recommended by Google: Android IDE (ADT) and Android Studio.

Android IDE is a mobile application development environment for the Android operating system, based on the Eclipse integrated application development environment. Contains built-in tools for creating, compiling, assembling and debugging mobile applications.

Android Studio is a mobile application development environment for the Android operating system, based on the IntelliJ IDEA integrated software development environment. Similar to the Android IDE, Android Studio contains built-in tools for creating and debugging mobile applications. In addition to all the features in Android Studio, the following are implemented:

Support for the Gradle automatic build system;

Unique code refactoring system;

Tools for troubleshooting various problems;

A preview window that shows the running application on several devices at once and in real time;

Cloud platform support Google Cloud Platform.

Google is currently discontinuing support for development tools in the operating room. Android system for Android IDE.

While studying in practice the Android Studio mobile application development environment and writing small programs (the “Notes” application for creating notes, an application for determining the longitude and latitude of an object, an application that determines location using Google Maps, the Flashlight application), the following shortcomings of Android Studio were identified:

1) You must have a basic level of programming Java language and knowledge of English.

2) Due to the constant support of the developer by an automatic assembly system (Gradle), the compilation time of projects is significantly slowed down.

3) High system requirements for the developer's computer.

4) Standard emulators are demanding in terms of system resources, take a long time to turn on and do not have all the capabilities of real smartphones.

5) Lack of Russian-language certificate.

Advantages of Android Studio:

1) User-friendly design.

2) A convenient interface designer that allows you to view the screen display on any device, including TVs and watches. Interface elements are displayed exactly as they would look on a specific version of the operating system.

3) The built-in SDK (software development kit) issues a notification with the installation of the necessary API to launch the old project.

4) Convenient project structure.

5) Availability of logs to track errors, processes and threads.

6) Availability of a sufficiently large amount of literature in Russian.

Beginner developers who have just started learning programming will find it quite difficult to work in this system, since it requires some skills and experience in programming and application development. However, the Android Studio programming environment is developing rapidly and programmers working with this system are in great demand.

Bibliography:

  1. Encyclopedia Wikipedia: website – [ Electronic resource] - Access mode. URL: https://ru.wikipedia.org/wiki/Android_Studio (access date: 01/25/2017).
  2. Encyclopedia Wikipedia: website – [Electronic resource] – Access mode. URL: https://ru.wikipedia.org/wiki/History_of_Android_versions (access date: 01/25/2017).

Great. But where to start? What language should I learn? From what sources? And where to apply the acquired basic skills? Our article will help you get answers to these questions.

Each language and framework has its own complexities and nuances, advantages and disadvantages. Let's look at the main languages ​​for developing Android applications.

Java

The official programming language supported by the Android Studio development environment. According to the annual survey of the resource Stackoverflow, in 2019 Java entered the top five most popular programming languages. Most of the projects created by Live Typing before 2019 were written in Java.

The first step to mastering Java is to install Android Studio. This is a type of software called IDE - Integrated Development Environment, or built-in development environment. Android Studio comes with Android SDK - a set of tools for Android development and everything you need for a reliable start.

Most of Google's official documentation refers to Java, and it's not difficult to find paid and free libraries and tutorials - there are a great many of them.

Unfortunately, the complexity of Java prevents anyone from programming in it. As an object-oriented programming language, it has a lot of features in the form of class constructors, exceptions that cause applications to crash during operation, and other points that always need to be taken into account during development. However, Java code is easy to read and structure, especially if the accepted standards for its design are observed.

When developing in Java for Android, not only Java classes containing code are used, but also manifest files in XML, which provide the system with basic information about the program, and automatic build systems Gradle, Maven or Ant, in which commands are written in Groovy, POM languages and XML respectively; by default, projects use Gradle, and at the initial stages of learning to develop in Java, you will hardly have to edit files written in Groovy. For the layout of the UI part, XML is usually also used.

Android Studio, recognized by Google as the official development environment for the Android OS in December 2014, is being improved year after year, making life easier for Android developers. Its features such as a visual UI editor and code completion help make the development process more comfortable.

For those who are ready for a full immersion in Android application development, Java is recommended first. However, if you feel difficult due to the specifics of the language, then start with something simpler and come back when you feel confident.

Kotlin


The language was officially introduced to the Android community in May 2017 at Google I/O. Already in 2019, Google recognized it as preferable for developing applications on Android, relegating Java to the background. This also means that the creation of new standard tools (libraries, Android Studio functions) will be primarily aimed at Kotlin.

Since 2019, Live Typing Android developers have been writing exclusively in Kotlin. Projects such as Superbro are written in this language, and are gradually being translated into it.

Kotlin includes the best of modern programming languages ​​such as Java, Scala, TypeScript. The main advantages include automatic detection of data types, support for the functional paradigm, and extension functions. At the same time, the language received protection from a number of large-scale problems, for example, the “error in a billion”, or NullPointerException. All this explains its popularity - according to a 2019 StackOverflow survey, Kotlin was among the five most beloved languages ​​by the community.

Kotlin is based on Java, making the transition easier for experienced developers. If Java is unfamiliar to you, we recommend working with it first. Large projects with a lot of legacy code are most likely written in Java. That is, in the commercial development of applications for Android, tasks may arise where knowledge of Java will be required.

C/C++


Lower level languages ​​that are also supported by Android Studio using the Java NDK. This allows you to write native applications, which can be useful for creating games or other resource-intensive programs. Android Studio offers C/C++ support through the Android NDK (Native Development Kit). This means that the code will not run through the Java Virtual Machine, but directly through the device, which will give you more control over system elements such as memory, sensors, gestures, etc., as well as the ability to squeeze maximum resources out of Android devices . This also means that you will have to use libraries written in C or C++.

In turn, it is difficult to configure and not very convenient, so it is recommended to use it only for writing those program modules where it is necessary to quickly perform complex operations: processing and rendering graphics, videos and complex 3D models.

Python


Just because Android doesn't support using Python to create native apps doesn't mean it's not possible. Fans of this language have developed many tools that allow you to compile Python code to the required state, and the presence of various libraries will allow you to build even native interfaces in compliance with Material Design guidelines. The most popular framework is Kivy, which allows you to create an application for Play Market in pure Python.

BASIC


Thanks to its simplicity and friendliness, BASIC is the optimal entry point for new programmers.

The bad news is that it is not supported by Android Studio and is not suitable for Unity and Xamarin environments. The good news is that there is a special development environment for BASIC, B4A, in which you can create Android applications. B4A embodies RAD's visual prototyping concept, which is designed to be fast and easy to program. There are many handy little design solutions here, and a helpful community will help with any problem.

Another downside is that resource-intensive games cannot be created in BASIC and you should not count on support from Google due to the unofficial status of the software. This means that applications will not comply with Material Design, and you cannot be considered a professional developer with knowledge of only BASIC. And among the entire list of languages ​​​​and environments in this article, this is the only paid one.

Lua (using Corona SDK)


Balance between ease of learning mobile development under Android and a sense of control on the part of the developer. The cross-platform graphics engine Corona is based on the Lua language. LUA is much simpler than Java, and the Corona SDK will make working with this language easy and enjoyable. It supports all native libraries, thereby allowing you to write for many platforms.

To write code, you need Notepad++, and to run it without first compiling, you need an emulator. If the APK is assembled and the program is ready for deployment, then you can launch the application through the online tool. With basic programming skills, you can master Android development using Corona without much difficulty.

There were some restrictions, and restrictions that made it impossible to develop serious things and establish yourself as a professional. If you need functionality in your application, such as in-app purchases, then you will have to pay for the opportunity to develop it, just like for using the native Android API.


If you already know something about web programming in general and HTML, CSS and JavaScript in particular, then this knowledge will be useful to you for creating basic cross-platform applications using the PhoneGap framework. This is the last on our list, but far from the least important, way to conquer Android development.

The main reasons to use PhoneGap for application development at Live Typing were:

  • reducing the time and cost of developing an application for several platforms at once (an application for obtaining a subscription to city sports institutions);
  • the ability to use the client’s existing website and its fragments (application for payment for services and online purchases).

Conclusion

In general, applications for Android can be created in almost any popular language - there are frameworks and utilities for everything. However, if you want to become a professional Android developer, use all the capabilities of the operating system and have access to the latest Android features, then Java or Kotlin will be your faithful companions. Even if these languages ​​are unfamiliar to you and seem difficult, they are worth learning in order to write varied, beautiful and functional applications for the Android operating system.

And you need to start getting acquainted with the theoretical side of Android development from our article, in which we collected.

And if you decide to create a mobile application, but don’t know which platform to start with, then start with Android. Number of downloads Android applications 65% higher than iOS, and Android app design and development costs less. Looking for a reliable mobile development studio? , and we will contact you.

Before we start developing applications for Android, let's look at existing tools suitable for these purposes. You can select necessary tools, without which the development of mobile applications for Android is simply impossible. On the other hand, there are a large number of auxiliary systems that to some extent simplify the development process.

Mandatory tools include the Android SDK - a set of programming tools that contains the tools necessary to create, compile and build a mobile application.

Let's take a brief look at the most important tools included in the Android SDK:

We have looked at the main tools included in the Android SDK, of course, not all of them and not in sufficient detail. For a more serious study of the tools, it makes sense to visit the developers’ website (http://developer.android.com/tools/help/index.html). To develop mobile applications for Android, confident knowledge of the tools from the SDK is quite enough. If any questions arise, additional instructions on creating projects, compiling, running from the command line are contained in the manual from Google (http://developer.android.com/training/basics/firstapp/index.html).

In modern conditions, software development in most cases is carried out using integrated development environments (IDEs). IDEs have undoubted advantages: the process of compiling, assembling and launching an application is usually automated, and therefore it is not difficult for a novice developer to create his first application. But to engage in development seriously, you need to spend time and energy studying the capabilities of the environment itself. Let's look at IDEs suitable for development for Android 1 Of course, the review does not pretend to be complete and most likely there will be tools that are not covered (or even new ones will appear), but the most popular ones at the end of 2013 will be considered. .

First, let's talk about two development environments that Google recommends: Android IDE (ADT) and Android Studio.

Android IDE- Android development environment based on Eclipse. Provides integrated tools for developing, building and debugging mobile applications. In this course, Android IDE is chosen as the main development environment. The capabilities of this environment are discussed in more detail in the first laboratory work. It also provides recommendations for installing and configuring the environment, creating and launching the first application both on the emulator and on a real device.

Android Studio- Android development environment based on IntelliJ IDEA. Similar to the Android IDE, it provides integrated development and debugging tools. In addition to all the features expected from IntelliJ, Android Studio provides:

  • support for application builds based on Gradle;
  • Android-specific refactoring and quick fix defects;
  • lint tools for finding problems with performance, usability, version compatibility and others;
  • ProGuard capabilities (a utility for reducing, optimizing and obfuscation of code) and application signing;
  • template-based wizards for creating common Android designs and components;
  • WYSIWYG editor that works on many screen sizes and resolutions, a preview window showing the running application on several devices at once and in real time;
  • Built-in support for Google Cloud Platform.

Let's move on to consider other tools suitable for developing mobile applications for Android. Let's start with tools from Intel - Intel XDK and Intel Beacon Mountain.

Intel XDK allows you to easily develop cross-platform mobile applications; includes tools for creating, debugging and building software, as well as a device emulator; supports Android development, Apple iOS, Microsoft Windows 8, Tizen; supports development languages: HTML5 and JavaScript.

The last topic of this course is entirely devoted to the study of the new generation tools development of mobile HTML5 applications and Intel XDK, it is expected to develop a mobile application using these tools.

Intel Beacon Mountain- a development environment that allows you to create applications for devices running Android OS. Provides the tools necessary to design, develop, debug and optimize Android applications. Frees the developer from the need to keep the development system up to date, monitors updates and adds them to the development environment as they become available. Supports development for target platforms based on Intel Atom and ARM processors.

Beacon Mountain is built on the Android IDE (Eclipse, Android ADT, Android SDK), with the following Intel tools added for more serious development and optimization:

  • Intel* Hardware Accelerated Execution Manager (Intel* HAXM)- a hardware-supported virtualization processor that uses Intel* virtualization technology (Intel* VT) to speed up the emulator in a development environment.
  • Intel* Graphics Performance Analyzers (Intel* GPA) System Analyzer supports mobile devices with Intel processor Atom running Android OS. Allows developers to optimize system load when using OpenGL routines, providing the ability to obtain a variety of real-time system metrics displaying CPU, GPU and OpenGL ES API load. A developer can run several graphics experiments to identify bottlenecks in graphics processing.
  • Intel* Integrated Performance Primitives (Intel* IPP) Preview- a library of optimized data and image processing that supports mobile devices with Intel platform running Android OS. Preview version is part of the full version Intel versions IPP, which also supports Android OS.
  • Intel* Threading Building Blocks (Intel* TBB) is a widely used, established C++ templating library for building scalable applications and increasing productivity. Supports mobile devices running Intel platform Android control. Proven algorithms enable developers to efficiently parallelize C++ mobile applications, increasing performance while reducing energy costs.

You can download Intel Beacon Mountain here

You can't ignore the Marmalade SDK tools.

Marmalade SDK- cross-platform SDK from Ideaworks3D Limited. Provides a set of libraries, samples, tools, and documentation needed to develop, test, and deploy applications for mobile devices. Mainly used for game development. Many acclaimed games such as Cut the Rope and Plants vs. Zombies were developed using this software tool. Unfortunately, the Marmalade SDK is proprietary software(cheapest license $15 per month) and cannot be recommended in this context training course, but the reader can try the free 30-day trial for themselves, available at https://www.madewithmarmalade.com/free-trial.

One cannot fail to mention domestic developments. For example, the 1C company keeps up with the times, version of the 1C platform 8.3 allows you to develop mobile applications. Software "1C:Enterprise 8. Extension for pocket computers" provides the ability to work with data from 1C:Enterprise 8 information bases on mobile devices (pocket computers, communicators, data collection terminals), as well as on personal computers(including laptops) that do not have direct access to information databases 1C:Enterprise 8.

The Android development environment is the implementation of complex software in order to create software for the gadget (short abbreviation “IDE”). In some cases, it may contain elements of integration with management systems and various tools that simplify the construction graphic image from scratch. Below we will look at the basis for choosing an Android development environment and what it is like.

Popular development environments

Let's say you want to create a graphic image. To do this you will need an editor (Paint, Adobe Photoshop etc.). Programs for Android are written in a similar way. To design applications for the Android OS, you need special software - a background on which you need to write IDE codes. Nearby, the smartphone screen will be reflected in real time in the window, on which you will see the visual transformation of the program.

Today the most popular environments are:

  • Eclipse;
  • IntelliJIdea;
  • Android Studio.

Each IDE has unique characteristics. More about them below.

Eclipse


It is a free IDE developed by the non-profit Eclipse Foundation. This program is the basis that regulates the processes of creating applications. Eclipse advantages:

  • the interface has been translated into competent Russian (documentation is attached);
  • runs great on computers with low performance;
  • has additional functions (for server work and database analysis);
  • can be connected to modules;
  • can work in group mode (when a project is created by several people at the same time).

Eclipse became popular a few years ago and still occupies a leading position. Although after the release of Android Studio (2014), Google decided to transfer cooperation with Eclipse to the “background”.

IntelliJ Idea


This program developed by the Russian company JetBrains. Like Eclipse, this framework allows you to create applications and programs in several programming languages. Also, IntelliJ Idea does not overload your PC. What makes it special:

  • more efficient debugging of values;
  • Method autofill is provided;
  • there is refactoring;
  • the interface is clearer and more concise;
  • Suitable for those who program in Java.

The only drawback is that you have to pay for IntelliJ Idea. Although anyone who understands the market situation will not consider this a minus.

Android Studio


Google never stands still, and most recently the company began developing an authoring environment for Android. She created her own IDE based on IntelliJ Idea.

There are no fundamental differences between the programs, since there are few innovations here. However, the developer's name allowed the program to become a worthy competitor to the two previous IDEs in a matter of months. The only drawback of the program: an insufficient number of personalization functions in the code editor and general settings.

What to choose

You should use Eclipse if:

  • you are working on a “weak” PC (1 GB RAM);
  • you write programs in two or more programming languages;
  • you do not know English.

The last point is, of course, controversial. The reason is obvious: any successful programmer must own English language, at least in order to understand foreign documentation. But if you are new to IT, Eclipse is created for you.

IntelliJ Idea and Android Studio is suitable for those who:

  • develops programs in two or more languages;
  • runs on a relatively powerful PC (2 GB RAM);
  • writes programs only for Android OS.

Considering that Android Studio is the official brainchild of Google, created for the Android OS, you will learn in this IDE. In general, an Android application can be created in any language. And the development environments listed above allow you to do this.