Language applications for Android. We are writing the first application for Android

Many programmers want to start developing applications for Android. But few people realize what steps need to be taken here. This collection is designed to help beginners in mastering Android development.

Beginning of work

For those new to programming ours will help.

For Android newbies Google has made a good introduction to Android on their website. There's also a great crowdsourced Android guide. There is also a course from Google on Udacity.

If you are experiencing problems with Android, it is highly recommended to check StackOverflow first. It is designed to answer technical questions and is even a .

You can always find it on our website.

FAQ

I want to start developing for Android. Where do I begin?

The first and most important step in Android development is learning Java and XML. Once you're more or less familiar with both, check out the official Android Documentation and take a few tutorials until you feel confident enough to create your own projects. Good luck!

Do I need an Android device for development?

You can write applications without any Android device using the included emulator (or the advanced Genymotion). However, to take into account hardware requirements, there is no substitute for testing on a real device.

Which IDE should I use?

  • Android Studio- An officially supported IDE for Android development. This is what is used in modern guides and videos, including those from Google.
  • Eclipse has been the primary IDE for Android development for many years, which is why most of the legacy tutorials, resources, videos, and screenshots are made with it.
  • IntelliJ IDEA was an alternative to Eclipse, but nowadays it makes more sense to start with Android Studio. Android Studio is a fork of IntelliJ IDEA, so you get all its benefits plus Android bonuses.

Maybe I should forget about Java and start learning Kotlin?

Google now officially supports Kotlin as an Android development language, but that doesn't mean you can forget about Java support. In the near foreseeable future, documentation, tools, and new platform features will support both Kotlin and Java. Although Kotlin is a newer language with some nice features, you can still create great applications in Java. The choice is up to you, but if you don't care or are a beginner, then it may be better to opt for Kotlin.

Resources

Here are the main resources for learning Android development in English. This is far from full list, but sufficient for a start.

Official Android Resources

Design

  • Beauties for Android - inspiration for creating graphical interfaces for Android.

Newsletters

  • Android Weekly is a great newsletter to help you stay up to date with the latest Android developments.

Library collections

Tools

  • Genymotion is an extremely useful and functional emulator.
  • Android Asset Studio is an excellent collection of tools for creating/editing icons, images, etc.
  • Codota Plug-in for Android Studio - great code examples right in Android Studio.

Examples of open source applications

Application Ideas

So you have an idea for an app... People write about it every day. But before you ask for help in implementing a project, you need to answer the following key questions:

What's my budget?

If you are serious and want to release your product, you should think about your budget. Even for a simple application, you need to think about several thousand dollars. At least.

What is my marketing strategy?

Are you going to use regular word of mouth or are you willing to pay for fame?

What is the list of tasks for this project?

Also, what are the restrictions? How many developers do I need?

Where will the data come from/where will it be stored?

And also, how will they be used? Do I have an appropriate privacy policy?

Is there a goal to make money?

If yes, how are you going to achieve it? Through advertising, IAP, subscriptions, paid applications? All of the above?

How will you pay your developers?

Do you have capital or are you going to pay them after the application starts generating income? Often independent contractors require a portion of the total cost upfront. Most developers are not interested in revenue sharing unless they are investing in the app themselves.

What will be the testing method?

What type of device are you going to install it on? How many iterations do you need? What kind of people do you want to engage?

How soon do you want to publish your app to the store?

This will definitely affect the final income.

Will you require or offer social media registration/integration?

Consider implementing this functionality.

What is your target audience?

Is it a niche app or can it be distributed everywhere?

Has my idea already been implemented?

If so, how can I improve it or what is missing from it?

What to do with app ideas if you're not a developer?

You may be looking for developers to join your team to implement an application. If you have money and can pay a developer or company, then everything is simple and clear. Next we'll talk about what to do if you don't have enough money to pay someone.

Realize that your idea may not be unique, and development requires significant effort.

  • Draw the design your application ( appearance and functionality). It can be rough and drawn on paper. But it should be quite specific and not vague.
  • Make a list of your skills related to the idea.
  • Make a list of what you will invest into your idea.

Understand that development requires significant effort. Imagine a developer working full time (8 hours) for 2 months to create your app. And you also work full time. What are you doing at this time? If your work, in your opinion, ends earlier, then you need to reconsider the idea. In this scenario, the developer does most of the work and you are, frankly, useless. What you can give after the app is finished doesn't really matter and won't motivate the developer to finish the product.

Revisiting your idea

If the developer does more work than you, the idea needs to be reconsidered to distribute the work more equitably. This will give you the benefits of working together. Look at your list of skills and think about how they can be applied. It's okay if the application differs from the initial idea. Revise it until your work and the developer's work are at least equal.

  • Distribute work as fairly as possible.
  • Focus on your skills first.
  • Your workload should be approximately equal to 2 months of full-time work. For simple applications the load, of course, may be less. You can ask the community (eg.

Android programming is an exciting job in the field. mobile devices. Who hasn’t dreamed of developing their own game for a smartphone or tablet, writing a useful application and repeating the success of projects such as EverNote and Angry Birds?

To create unique programs you will need all your creativity, mental alertness and creative approach. Are you bursting with brilliant ideas? By choosing Android programming, you can quickly achieve success and recognition, perhaps faster than in other areas of IT.

An Android developer always sees the results of his work, because each individual application is a separate project, built “brick by brick” from the foundation to the roof. Thanks to your code, the application or game will come to life, acquire colors and unique features that will make your creation a masterpiece. Android programmers are not constrained by virtually any boundaries; they are free to create as they please. The main goal of an Android developer is to create a popular application. How you do it and in what way depends only on you!

An Android programmer creates, tests and supports applications for smartphones and tablets, including games.

To do this, you need to know the programming language for Android - Java. You need to be familiar with the language syntax and be able to work with Java development environments. Development environments are special interfaces designed to make writing a program easier. It is enough to know the following shells at an intermediate level: NetBeans, Eclipse, IntelliJ IDEA. But it’s better to focus on Android Studio or Android SDK - specialized development environments tailored for Android.

English proficiency is important, as there are many manuals for latest versions Java or Android itself are simply not translated into Russian. If you don’t have enough technical English knowledge, it doesn’t matter - there are Russian-language courses: “How to write an application for Android.”

The applicant must have basic knowledge of XML, a markup language widely used in Java. In addition, an Android developer must understand the principles of communication between client and server. Don’t forget about usability - how convenient the application is will largely determine its popularity. Creation good interface is an art that needs to be constantly honed.

An Android programmer needs to be up to date with the latest changes. operating system, since Android is developing very quickly and if you do not monitor the emergence of new OS features when changing versions, then very soon your knowledge will become outdated.

If you have specific additional knowledge, for example, you understand how a weak signal affects the operation of a web-based application, then your chances of getting hired increase. However, such skills can only be possessed by those who have already tried Android programming in a more or less serious company and have experience real work. However, nothing new: experience in IT plays a major role.

Today, Android programming is in demand in companies of all levels. Large IT studios are engaged in creating applications and games “on stream”, so they always need new personnel. But to start your career, you can look at the vacancies of small organizations. After all, they are also interested in creating applications. For example, online stores or food delivery services often have their own Android application.

In addition, you can always try your luck and try to write your own application, which can become a bestseller, and then all roads will be open to you, and it should be enough for a comfortable old age :)

Some of the best places to work will be banks, where you will need to support client applications. This is a responsible and very well-paid job, which can only be obtained if you have solid knowledge and experience. And if you know how to create a game for Android, then the road to the mobile game industry is open to you.

The salary of an Android programmer directly depends on his skills, work experience and interview results. On average in Moscow you can count on the following figures:

  • Beginning: 56,000 rub.
  • Specialist: 108,000 rub.
  • Team Leader: 134,000 rub.

And these amounts are far from the limit. As you become a specialist, you can count on 200 thousand rubles per month. And if you can take a leadership position in your department, then the reward can approach 300 thousand.

It is necessary to study Android programming in a comprehensive manner: simultaneously learn to write applications and learn about the functions of the operating system itself. Because of its openness and customization flexibility, you may already have some experience and knowledge of OS architecture. But Android development requires deeper skills, so you'll need courses that teach you how to channel your creative energy into coherent lines of code.

As a place to study, we can recommend the Android developer courses run by our school. On them you will work directly with applications, while gaining related knowledge on: network protocols, working with graphics, interacting with file system, as well as many other useful skills. At the end of the training, you will have your own application in your hands, which you can put in your portfolio.

How to start developing for Android

Start Android - Android tutorial for beginners and advanced

Join us in Telegram chats on various topics

In this doc you can see what lessons I'm currently working on and what the next lessons will be about

Android Lessons

If you are a beginner, then start learning with lessons. They will help you learn Android from scratch to intermediate level.

Start training

Blog

The blog contains materials about various SDKs, APIs, libraries, patterns and simply interesting cases.

Go to blog

Advanced developers will be interested in courses that cover useful and in-demand technologies and libraries in detail.

Architecture Components

A set of mechanisms from Google for building application architecture.

Pass the course

Testing

A useful tool for every Android developer. Get rid of bugs in your applications.

Pass the course

Dagger 2

An excellent helper in implementing the Dependency Injection pattern. It will help make your code clean and reduce dependencies between objects.

Pass the course

Android programming lessons

Mobile device programming 1.0 will help you learn how to create modern programs that are designed to run on mobile phones that support the Java platform. The Mobile Device Programming application will help you create a program for any phone of any type, including commercial programs for their further sale. The application will be convenient even in the absence of basic knowledge and will help you fully understand the necessary operations and actions for creating programs.

Mobile Device Programming Features:

  • the opportunity to learn programming in Java (J2ME) or MIDletPascal;
  • the ability to create programs of any type, including office, gaming, multimedia (with support for wav, midi or mp3), for working on the Internet, with support for sending SMS and other types;
  • the ability to use additional libraries to expand the capabilities of created programs;
  • possibility of using emulators cell phones the most common models;
  • ability to download programs to mobile phone using a cable, infrared port, Bluetooth or WAP, as well as testing and debugging them;
  • the ability to create mobile content: ringtones, Java games and programs, animation, logos and more;
  • the ability to study methods of hacking Java programs using special tools;
  • the ability to study the protection of programs from hacking using special tools.

Advantages:

  • the ability to learn the basics of creating programs in Java;
  • viewing the description of the “RedBrowser” virus;
  • the possibility of posting and selling created programs on the Internet;
  • the opportunity to study the mechanism and sell programs created independently using SMS payment.

Flaws:

  • to receive any of the five-month training courses, you need to pay their developers (you can view a trial lesson);
  • A license is required to access all courses.

See also programs:
Pascal ABC
MobileJavaBookCreator
All about mobile phones
123D Sculpt
Cube

I started going to work by subway. I wondered: is it possible to do what you love on the road? We have an Android phone (large enough), Wi-Fi and forty minutes of free time.

A search on the all-knowing Google turned up some encouraging information. Yes, they program on Android devices and, in particular, on the subway. Unfortunately, only on tablets. It is clear that the main problem is the keyboard. Or rather, its absence. On-screen ones, as a rule, are poor and do not allow you to press the combination Ctrl+C, Ctrl+V - the main combination of programmers. The lack of ten-finger touch input has never stopped a real programmer (in fact, two fingers are enough)

But I'm not interested in tablets, but in phones!

After some searching I settled on the following configuration:

VimTouch requires additional installation of VimTouch Full Runtime, I don’t remember exactly when before or during the start. I think you can download both applications at once.

For Hacker’s Keyboard, you can install a plugin for the Russian language Russian dictionary Russian

SGit didn't require anything. There is no need to explain why it is needed.

Of course, there are a lot of options for both, and the third, but

Vim seemed the most convenient for editing on the phone. He is generally convenient as an editor. All editors that support key combinations for control are left out in the telephone case. Vim rules here! I used my universal one for all my devices.vimrc. Works. This implementation is adapted for android. There is a special customizable command line and menu.

The only thing that was required was to choose a normal programming keyboard, which allows you to use all sorts of controls, alts and metas. Among the many presented on the market, there was only one normal one: Hacker’s Keyboard. It has only one drawback - the buttons are quite small.

Quick navigation

Programmers with flat fingers are resting.

The keyboard has a bunch of settings, you can enable and disable special keys. One of the most positive settings is the use of a custom character set in the sixth line. In particular, a long click allows you to select a bunch of additional symbols without switching to other modes. There are even arrows for moving. Other keyboards were delivered with positioning in Right place. What irritates me about it is switching Russian/English slide by space bar.

The combination of these three components, in particular, allows you to write and publish these notes without leaving the subway car.

Welcome to the section where lessons on programming on the Android SDK platform are collected both for beginners who plan to learn programming from scratch, and for more experienced developers and programmers creating applications for Android.

Generally speaking, the development of mobile applications is a rather complex process that requires careful study of the documentation and meticulous understanding of all processes.

Android Lessons

This will help you understand how to create a program yourself, in a self-learning mode and gradual mastery Android platforms SDK or etc.

If you are just starting your journey in writing Android programs, you need to start by creating your first project in the Android SDK. In this article, we look in detail at what is needed to build a full-fledged project, what needs to be downloaded and installed to deploy a full-fledged development environment.

You also need to understand that the process of building applications is done through the Eclipse application using ADT, this is covered in the corresponding guide.

Programming for Android OS

Android OS (Android) books and literature on configuration, administration and programming

Android (android) is an operating system for smartphones, Internet tablets, e-books, digital players, wristwatch, game consoles, netbooks, TVs and other devices. Based on the Linux kernel and its own implementation virtual machine Java from Google. Android allows you to create Java applications that control the device through developed Google libraries. Android Native Development Kit allows you to port libraries and application components written in C and other languages. 86% of smartphones sold in the second quarter of 2014 had OS installed Android system. At the same time, more than 1 billion Android devices were sold throughout 2014. You can view and download books, tutorials and literature for teaching administration and programming for developers and users absolutely free on this page

Sorry, this section is under construction You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near "at line 1

Every year the Android operating system 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 “ 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. Basic source Android 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 the ART virtual machine (or Dalvik in Jelly Bean and earlier Android versions) - an analogue of the Java virtual machine, because of which Google has serious litigation with Oracle.


Google on this moment officially supports the fairly powerful Android Studio development environment, which is built on the basis of 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 "towards 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 for mobile platforms is open to you, but remember: the first step is always yours.

When the news changes, you will receive a notification by E-mail and DM.

Already subscribed: 2

How to learn to create applications on Android? Firstly, you need to master Java language, since Android applications are written in this language. Then you have different options: sign up for offline courses, which is expensive and, in my opinion, useless, plus very inconvenient. You can also turn to a tutor, which is even more expensive, also not very inconvenient, but, however, much more effective. You can also read many books and search for information on the Internet. And, in my opinion, this method is already an order of magnitude better than the previous ones, but, unfortunately, it takes a lot of time. In principle, this is exactly how I learned. The main problem I encountered was outdated code. The vast majority of educational articles for Android were written back in 2011-2012. And if some of them are still relevant, then some are simply outdated so that, in principle, they do not work. Then again you need to look for more recent information, and it is highly desirable to know English language to find the right solution to a particular problem. Books have exactly the same problem, since often more than one year passes from the moment a book is written to its publication, and this, although not critical (as most people mistakenly think), still seriously affects its relevance.

Therefore, the most the best way I consider video training based on the following facts:

  1. Better digestibility of the material. You see how the author writes and comments the code, launches the application, and together you see the result. That is, you use both hearing and vision at once, which greatly simplifies the assimilation of the material compared, for example, with books.
  2. You can watch at any time. You are not limited to a specific date and time of any seminar in Moscow, you are not tied to living where it is held, and even going there. You can watch the video course anywhere, anytime. You also do not need constant Internet for this, as, for example, for learning from articles on the Internet.
  3. High learning speed. Due to the fact that you get everything at once in one place, plus you also quickly learn everything.
  4. A budget option. The price of a video course is a couple of hours of lessons with an average tutor, or several offline lessons, during which you will learn too little. In general, programming is not something that should be taught in classrooms.
  5. Much more interesting. This may be subjective, but personally, and I am sure that most people prefer not to read, but to watch. For me, for example, video lessons on a topic that interests me are much more interesting than any movie. And I think that for many of you it is the same.

The course consists of 16 sections:

  • Section No. 1. Introduction.
    • How to take the course correctly.
    • How to install Android Studio and, most importantly, how to configure it correctly.
    • How to install an Android emulator so that you don't have to constantly download the application to your device.
    • After this section, you will have a completely ready and configured environment for developing applications on Android.
  • Section No. 2. Android Programming Basics
    • How to write the simplest application “Hello World”.
    • What is the project structure? This is a very important lesson in which you will learn the purpose of all files and folders in a project.
    • How to run the application on a real smartphone or tablet. You will see what actions you need to perform on the phone itself, how to properly connect it to your computer, and how to download the application to the device itself.
    • What is the AndroidManifest.xml file for and how to use it.
    • After completing this section, you will be able to create your first applications.
  • Section No. 3. Application Interface Basics.
    • You will learn what Layout files are and how to use them.
    • You will learn how to set the sizes of elements and how to position them on the device screen.
    • You will learn to create simple user interfaces.
    • You will learn how to handle events (for example, a button click).
    • You will learn how to create "multi-page" applications.
    • You will learn to work with resources.
    • After reviewing this section, you will be able to create relatively complex applications that actively interact with the user.
  • Section No. 4. Layout managers.
    • You will learn to work with a variety of layout managers: LinearLayout, TableLayout, FrameLayout, RelativeLayout, ConstraintLayout, ScrollView, GridLayout.
    • You'll learn how to programmatically create and use layout managers.
    • You'll learn how to combine different layout managers together.
    • After this section you will be able to create interfaces of any complexity.
  • Section No. 5. Components.
    • You will learn to use the most different components: text labels, text fields, buttons, checkboxes, radio buttons, drop-down lists, components for selecting date and time, sliders, pop-up messages.
    • You'll learn how lists are created and used in the application.
    • After this section, you will be able to use a variety of components in your applications. From this moment on, you will be able to create complex projects, since you will know: how the interface is created, how the user interacts and how information is displayed on the screen.
  • Section No. 6. Menu.
    • How to create menus, submenus, checkboxes and radio buttons in the menu.
    • How clicks on different types of menu items are processed.
    • After this section, you will be able to create and use the most different types menu.
  • Section No. 7. Dialog boxes.
    • What are the basic dialog boxes already built into Android and how to use them.
    • How to create your own dialog boxes.
    • How to handle user interactions with a dialog box.
    • After studying this section, you will be able to use a variety of dialog boxes in your applications.
  • Section No. 8. Application design.
    • What are styles and how to use them.
    • What are themes and why are they so important and convenient?
    • This section will help you create different design versions of the application and change the design of the entire application with just one click.
  • Section No. 9. Working with Activity and Service.
    • What callback methods does an Activity have?
    • What is an Intent object and how to use it.
    • What are Intent filters and how can they be used.
    • How to pass data from one Activity to another.
    • What is a service?
    • How to create a service.
    • How to display notifications.
    • This section is really important, and after it you will be able to create truly complex functional applications: with background processes, with many Activities that exchange data with each other.
  • Section No. 10. Fragments.
    • What are fragments and what are they for?
    • How data is exchanged between fragments.
    • What callback methods do fragments have?
    • How to do page turning using ViewPager.
    • After completing this section, you will be able to make your applications more efficient using fragments.
  • Section No. 11. Working with multimedia.
    • How to work with images.
    • How to work with audio.
    • How to work with video.
    • What is SoundPool and how to use it.
    • After completing this section, you will be able to use multimedia in your applications.
  • Section No. 12. Data storage.
    • Write information to a file.
    • Read information from a file.
    • Save and load application settings.
    • After this section, you will be able to work with files in Android, and also learn how to save various custom settings and service information even when the user exits the application.
  • Section No. 13. Phone calls and SMS.
    • How to make a call directly from your application.
    • How to send SMS from your application.
    • How to intercept incoming SMS.
    • How to access device SMS and read them.
    • How to work with contacts in the device phone book.
    • How to correctly request permission from the user to access these functions, since by default they are, of course, prohibited.
    • After viewing this section, you will be able to create applications that interact with the telephone functions of the device.
  • Section No. 14. Drawing in Android.
    • How does drawing work in Android?
    • How to draw and position shapes.
    • How to draw complex shapes.
    • What are Matrix transformations and how to use them.
    • What is Bitmap.
    • What is Drawable, how to create and use it.
    • How to draw your own component (for example, your own button).
    • How to animate components (for example, fade in, fade out, move, unfold, etc.).
    • How to animate images.
    • After this section you will be able to create beautiful and stylish applications.
  • Section No. 15. Working with the Internet.
    • You will learn how to get data from a URL.
    • You will learn what JSON is and how to work with it.
    • You will see an example of parsing data about the current weather using geo-coordinates obtained via the API of a third-party service and displaying it on the screen.
    • Very important section, which will allow you to create applications that interact with the API of any Internet services.
  • Section No. 16. Multithreaded programming in Android.
    • You will learn how to create multi-threaded applications in Android.
    • You will learn how to use the AsyncTask class and what it does.
    • You will see how a countdown timer is created.
    • You'll learn how to make your phone vibrate and how to customize the vibration pattern.
    • After this section, you will be able to create multi-threaded applications in Android. This is a very important section, since processing user actions, some kind of background service thread, some kind of countdown timer, stopwatch, clock - all this must work in different threads. And you will learn how to create a variety of streams with different goals and objectives in this section.


Bonuses. The course turned out to be very voluminous, but in addition to the course itself, along with it you will also receive several free Bonuses. All source code from the Bonuses is, of course, included with the course.

  • Bonus #1. Creating a widget. I am sure that many of you know what a widget is. But for those who don’t know, I’ll briefly explain that a widget is a small program that is located on the desktop of the device. There could be, for example, your bank account balance, weather information, today's to-do list, and the like. And in this Bonus, consisting of 5 lessons, you will learn:
    • Create a widget.
    • Accept settings from the user.
    • Process clicks on the widget.
    • Update information in the widget.
    • Create full-fledged widgets from scratch using the weather widget as an example.
  • Bonus #2. OpenGL and 3D drawing. Very complex material, but extremely useful for those who plan to create graphic applications, for example, games. This Bonus consists of 11 lessons, in which:
    • You will be introduced to OpenGL.
    • You will learn what shaders are.
    • You will learn how to draw shapes in OpenGL.
    • You will learn how to work with color in OpenGL.
    • You will learn how 3D images are created.
    • You will learn how to remove distortion in different screen orientations.
    • You will learn how to operate the camera.
    • You will learn how to animate a camera.
    • You will learn how transformations are applied.
    • You will learn how to texture an object.
    • You'll see an example of creating a textured 3D object with a rotating camera.
  • Bonus #3. Creating a Vision application. I once wrote this application for myself, but I think that it will be useful for everyone who works a lot on the computer and at the same time wants to preserve their vision. The idea is to take breaks at regular intervals. For example, 50 minutes at the computer and a 10 minute break. After each interval, the phone should signal that it is time to go to the computer or take a break. Of course, in the functions of this application given time must be configured. Also, this application should implement many small nuances: resetting the timer, dialog boxes, running the timer when the application is closed, and much more. So this is the application that I personally use and advise you to use too, in this Bonus we will create it. The Bonus itself consists of 10 lessons in which you will see:
    • How the main screen is created.
    • How to create a settings screen.
    • How to add support for landscape orientation.
    • How settings are processed and saved.
    • How watches are made.
    • How to create a countdown timer.
    • How the dialog box is displayed and processed.
    • How to add a vibration alert and audio signal.
    • How to make a button for changing the timer operating mode.
    • How to make a timer reset button.

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 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 to fully immerse themselves in Android 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.


The language was officially introduced to the Android community in May 2017 at Google I/O. Already in 2019, Google recognized it as the preferred choice for Android development, 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 big amount legacy code is most likely written in Java. That is, in commercial development there may be tasks 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.


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 a lot of handy little design solutions here, and a helpful community to 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)


A balance between the ease of learning Android development and the developer's sense of control. 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 complicated, they are worth learning to write rich, 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.