Как пишут приложения для андроид

Время на прочтение
8 мин

Количество просмотров 528K

В любом деле самое сложное — это начало. Часто бывает тяжело войти в контекст, с чем столкнулся и я, решив разработать свое первое Android-приложение. Настоящая статья для тех, кто хочет начать, но не знает с чего.

Статья затронет весь цикл разработки приложения. Вместе мы напишем простенькую игру “Крестики-Нолики” с одним экраном (в ОС Android это называется Activity).

Отсутствие опыта разработки на языке Java не должно стать препятствием в освоении Android. Так, в примерах не будут использоваться специфичные для Java конструкции (или они будет минимизированы на столько, на сколько это возможно). Если Вы пишете, например, на PHP и знакомы с основополагающими принципами в разработке ПО, эта статья будет вам наиболее полезна. В свою очередь так как, я не являюсь экспертом по разработке на Java, можно предположить, что исходный код не претендует на лейбл “лучшие практики разработки на Java”.

Установка необходимых программ и утилит

Перечислю необходимые инструменты. Их 3:

  1. JDK — набор для разработки на языке Java;
  2. Android SDK and AVD Manager — набор утилит для разработки + эмулятор;
  3. IDE c поддержкой разработки для Android:
    • Eclipse + ADT plugin;
    • IntelliJ IDEA Community Edition;
    • Netbeans + nbandroid plugin;

Утилиты устанавливаются в определенном выше порядке. Ставить все перечисленные IDE смысла нет (разве только если Вы испытываете затруднения с выбором подходящей). Я использую IntelliJ IDEA Community Edition, одну из самых развитых на данный момент IDE для Java.

Запуск виртуального устройства

Запустив AVD Manager и установив дополнительные пакеты (SDK различных версий), можно приступить к созданию виртуального устройства с необходимыми параметрами. Разобраться в интерфейсе не должно составить труда.

Список устройств

Создание проекта

Мне всегда не терпится приступить к работе, минимизируя подготовительные мероприятия, к которым относится создание проекта в IDE, особенно, когда проект учебный и на продакшн не претендует.

Итак, File->New Project:

По нажатию кнопки F6 проект соберется, откомпилируется и запустится на виртуальном девайсе.

Структура проекта

На предыдущем скриншоте видна структура проекта. Так как в этой статье мы преследуем сугубо практические цели, заострим внимание лишь на тех папках, которые будем использовать в процессе работы. Это следующие каталоги: gen, res и src.

В папке gen находятся файлы, которые генерируются автоматически при сборке проекта. Вручную их менять нельзя.

Папка res предназначена для хранения ресурсов, таких как картинки, тексты (в том числе переводы), значения по-умолчанию, макеты (layouts).

src — это папка в которой будет происходить основная часть работы, ибо тут хранятся файлы с исходными текстами нашей программы.

Первые строки

Как только создается Activity (экран приложения), вызывается метод onCreate(). IDE заполнила его 2 строчками:

super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Метод setContentView (равносильно this.setContentView) устанавливает xml-макет для текущего экрана. Далее xml-макеты будем называть «layout», а экраны — «Activity». Layout в приложении будет следующий:

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/main_l"
    android:gravity="center"
    >
</TableLayout>

Для этого приложения идеально подойдет TableLayout. Id можно присвоить любому ресурсу. В данном случае, TableLayout присвоен id = main_l. При помощи метода findViewById() можно получить доступ к виду:


    private TableLayout layout; // это свойство класса KrestikinolikiActivity

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        layout = (TableLayout) findViewById(R.id.main_l);
        buildGameField();
    }

Теперь необходимо реализовать метод buildGameField(). Для этого требуется сгенерировать поле в виде матрицы. Этим будет заниматься класс Game. Сначала нужно создать класс Square для ячеек и класс Player, объекты которого будут заполнять эти ячейки.

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;
    }
}

Все классы нашего приложения находятся в папке src.

Game.java

package com.example;

public class Game {
 /**
     * поле
     */
    private Square[][] field;
 
 /**
     * Конструктор
     *
     */
    public Game() {
        field = new Square[3][3];
        squareCount = 0;
        // заполнение поля
        for (int i = 0, l = field.length; i < l; i++) {
            for (int j = 0, l2 = field[i].length; j < l2; j++) {
                field[i][j] = new Square();
                squareCount++;
            }
        }
    }
 
 public Square[][] getField() {
        return field;
    }
}

Инициализация Game в конструкторе KrestikinolikiActivity.

public KrestikinolikiActivity() {
    game = new Game();
 game.start(); // будет реализован позже
}

Метод buildGameField() класса KrestikinolikiActivity. Он динамически добавляет строки и колонки в таблицу (игровое поле):

private Button[][] buttons = new Button[3][3];
 //(....)
    private void buildGameField() {
        Square[][] field = game.getField();
        for (int i = 0, lenI = field.length; i < lenI; i++ ) {
            TableRow row = new TableRow(this); // создание строки таблицы
            for (int j = 0, lenJ = field[i].length; j < lenJ; j++) {
                Button button = new Button(this);
                buttons[i][j] = button;
                button.setOnClickListener(new Listener(i, j)); // установка слушателя, реагирующего на клик по кнопке
                row.addView(button, new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT,
                        TableRow.LayoutParams.WRAP_CONTENT)); // добавление кнопки в строку таблицы
                button.setWidth(107);
                button.setHeight(107);
            }
            layout.addView(row, new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT,
                    TableLayout.LayoutParams.WRAP_CONTENT)); // добавление строки в таблицу
        }
    }

В строке 8 создается объект, реализующий интерфейс View.OnClickListener. Создадим вложенный класс Listener. Он будет виден только из 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;
        }
    }

Осталось реализовать логику игры.

public class Game {
    /**
     * игроки
     */
    private Player[] players;
    /**
     * поле
     */
    private Square[][] field;
    /**
     * начата ли игра?
     */
    private boolean started;
    /**
     * текущий игрок
     */
    private Player activePlayer;
    /**
     * Считает колличество заполненных ячеек
     */
    private int filled;
    /**
     * Всего ячеек
     */
    private int squareCount;

    /**
     * Конструктор
     *
     */
    public Game() {
        field = new Square[3][3];
        squareCount = 0;
        // заполнение поля
        for (int i = 0, l = field.length; i < l; i++) {
            for (int j = 0, l2 = field[i].length; j < l2; j++) {
                field[i][j] = new Square();
                squareCount++;
            }
        }
        players = new Player[2];
        started = false;
        activePlayer = null;
        filled = 0;
    }

    public void start() {
        resetPlayers();
        started = true;
    }

    private void resetPlayers() {
        players[0] = new Player("X");
        players[1] = new Player("O");
        setCurrentActivePlayer(players[0]);
    }

    public Square[][] getField() {
        return field;
    }

    private void setCurrentActivePlayer(Player player) {
        activePlayer = player;
    }

    public boolean makeTurn(int x, int y) {
        if (field[x][y].isFilled()) {
            return false;
        }
        field[x][y].fill(getCurrentActivePlayer());
        filled++;
        switchPlayers();
        return true;
    }

    private void switchPlayers() {
        activePlayer = (activePlayer == players[0]) ? players[1] : players[0];
    }

    public Player getCurrentActivePlayer() {
        return activePlayer;
    }

    public boolean isFieldFilled() {
        return squareCount == filled;
    }

    public void reset() {
        resetField();
        resetPlayers();
    }

    private void resetField() {
        for (int i = 0, l = field.length; i < l; i++) {
            for (int j = 0, l2 = field[i].length; j < l2; j++) {
                field[i][j].fill(null);
            }
        }
        filled = 0;
    }
}

Определение победителя

К. О. подсказывает, что в крестики-нолики выирывает тот, кто выстроет X или O в линию длиной, равной длине поля по-вертикали, или по-горизонтали, или по-диагонали. Первая мысль, которая приходит в голову — это написать методы для каждого случая. Думаю, в этом случае хорошо подойдет паттерн Chain of Responsobility. Определим интерфейс

package com.example;

public interface WinnerCheckerInterface {
    public Player checkWinner();
}

Так как Game наделен обязанностью выявлять победителя, он реализует этот интерфейс. Настало время создать виртуальных «лайнсменов», каждый из которых будет проверять свою сторону. Все они реализует интерфейс WinnerCheckerInterface.

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 < len; i++) {
            lastPlayer = null;
            int successCounter = 1;
            for (int j = 0, len2 = field[i].length; j < len2; j++) {
                currPlayer = field[i][j].getPlayer();
                if (currPlayer == lastPlayer && (currPlayer != null && lastPlayer !=null)) {
                    successCounter++;
                    if (successCounter == len2) {
                        return currPlayer;
                    }
                }
                lastPlayer = currPlayer;
            }
        }
        return null;
    }
}

WinnerCheckerVertical.java

package com.example;

public class WinnerCheckerVertical implements WinnerCheckerInterface {
    private Game game;

    public WinnerCheckerVertical (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 < len; i++) {
            lastPlayer = null;
            int successCounter = 1;
            for (int j = 0, len2 = field[i].length; j < len2; j++) {
                currPlayer = field[j][i].getPlayer();
                if (currPlayer == lastPlayer && (currPlayer != null && lastPlayer !=null)) {
                    successCounter++;
                    if (successCounter == len2) {
                        return currPlayer;
                    }
                }
                lastPlayer = currPlayer;
            }
        }
        return null;
    }
}

WinnerCheckerDiagonalLeft.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 < len; i++) {
            currPlayer = field[i][i].getPlayer();
            if (currPlayer != null) {
                if (lastPlayer == currPlayer) {
                    successCounter++;
                    if (successCounter == len) {
                        return currPlayer;
                    }
                }
            }
            lastPlayer = currPlayer;
        }
        return null;
    }
}

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 < len; i++) {
            currPlayer = field[i][len - (i + 1)].getPlayer();
            if (currPlayer != null) {
                if (lastPlayer == currPlayer) {
                    successCounter++;
                    if (successCounter == len) {
                        return currPlayer;
                    }
                }
            }
            lastPlayer = currPlayer;
        }
        return null;
    }
}

Проинициализируем их в конструкторе Game:

//(....)
 /**
     * "Судьи" =). После каждого хода они будут проверять,
     * нет ли победителя
     */
    private WinnerCheckerInterface[] winnerCheckers;
 //(....)
    public Game() {
        //(....)
        winnerCheckers = new WinnerCheckerInterface[4];
        winnerCheckers[0] = new WinnerCheckerHorizontal(this);
        winnerCheckers[1] = new WinnerCheckerVertical(this);
        winnerCheckers[2] = new WinnerCheckerDiagonalLeft(this);
        winnerCheckers[3] = new WinnerCheckerDiagonalRight(this);
        //(....)
    }

Реализация checkWinner():

public Player checkWinner() {
        for (WinnerCheckerInterface winChecker : winnerCheckers) {
            Player winner = winChecker.checkWinner();
            if (winner != null) {
                return winner;
            }
        }
        return null;
    }

Победителя проверяем после каждого хода. Добавим кода в метод onClick() класса Listener

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()) {  // в случае, если поле заполнено
                gameOver();
            }
        }

Метод gameOver() реализован в 2-х вариантах:

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();
    }

Для Java, gameOver(Player player) и gameOver() — разные методы. Воспользовавшись Builder’ом Toast.makeText, можно быстро создать и показать уведомление. refresh() обновляет состояние поля:

private void refresh() {
        Square[][] field = game.getField();

        for (int i = 0, len = field.length; i < len; i++) {
            for (int j = 0, len2 = field[i].length; j < len2; j++) {
                if (field[i][j].getPlayer() == null) {
                    buttons[i][j].setText("");
                } else {
                    buttons[i][j].setText(field[i][j].getPlayer().getName());
                }
            }
        }
    }

Готово! Надеюсь, эта статья помогла Вам освоиться в мире разработки под OS Android. Благодарю за внимание!

Видео готового приложения

Исходники .

PS: статья была опубликована по просьбе комментаторов этого поста.

#Руководства

  • 18 июл 2018

  • 1

Платформа Android открытая, поэтому каждый может написать своё приложение и распространять его через каталоги программ. Все инструменты бесплатны.

 vlada_maestro / shutterstock

Анатолий Ализар

Пишет про разработку в Skillbox Media. Работал главным редактором сайта «Хабрахабр», ведёт корпоративные блоги.

Язык программирования для мобильной разработки на Android очень простой — это Java. Сейчас Google активно продвигает Kotlin как язык, который сможет заменить Java. Приложения пишут и на C++.

Создание простейшего приложения состоит из нескольких этапов:

  • проект в Android Studio;
  • создание пользовательского интерфейса;
  • добавление активностей, навигации и действий;
  • тест-драйв приложения в эмуляторе.

Первым делом установите программу Android Studio. Это официальная среда разработки (IDE) для Android, она работает на Windows, macOS и Linux. Хотя при разработке программ для Android можно использовать и другие среды, кроме Android Studio.

Если на компьютере не установлены Android SDK и другие компоненты, то Android Studio автоматически скачает их. Android SDK — это среда программирования, в которую входят библиотеки, исполняемые файлы, скрипты, документация и т.д.

Android SDK компилирует код вместе с любыми данными и ресурсами в файл с расширением .apk. Он содержит всё необходимое для установки приложения на Android-устройство.

Полезно установить и эмулятор Android, чтобы запускать и тестировать приложения. Эмулятор поставляется в комплекте с Android Studio.

Когда все инструменты установлены, можно создать первый проект. Но сначала нужно разобраться с основными понятиями.

Android-приложение состоит из четырёх компонентов. Каждый компонент — это точка входа, через которую система или пользователь может получить доступ.

  • Активность (activity) — элементы интерактивного пользовательского интерфейса.
    Одна активность задействует другую и передаёт информацию о том, что намерен делать пользователь, через класс Intent (намерения). Активности подобны веб-страницам, а намерения — ссылкам между ними. Запуск приложения — это активность Main.
  • Сервис (service) — универсальная точка входа для поддержания работы приложения в фоновом режиме.
    Этот компонент выполняет длительные операции или работу для удалённых процессов без визуального интерфейса.
  • Широковещательный приемник (broadcast receiver) транслирует нескольким участникам намерения из приложения.
  • Поставщик содержимого (content provider) управляет общим набором данных приложения из файловой системы, базы данных SQLite, интернета или другого хранилища.

Теперь попробуем сделать своё приложение для Android.

Выбираем название приложения, домен компании, путь к проекту и название пакета. Указываем, включить ли поддержку опциональных языков программирования C++ и Kotlin.

Задаём одну или несколько целевых платформ для сборки. Для этого используется SDK и AVD, менеджер виртуальных устройств Android. Инструмент позволяет устанавливать в SDK пакеты, которые поддерживают несколько версий ОС Android и несколько уровней API (интерфейсов программирования приложений).


Справка

Чем ниже версия Android, тем больше устройств, на которых приложение запустится. Чем выше версия, тем богаче функциональность API.


Выбираем основную активность, которая будет запускаться при нажатии на иконку приложения, и даём ей имя.

После нескольких минут сборки Android Studio открывает интерфейс IDE. Здесь три основных момента.

Если выбрать в выпадающем меню вид Android, то вы увидите файлы проекта. Например, наша основная активность называется app > java > ru.skillbox.skillboxapp > FullscreenActivity. При создании проекта мы указали вместо активности Main полноэкранную активность.

Далее можно посмотреть файл app > res > layout > activity_fullscreen.xml. Это XML-файл с макетом для UI нашей основной активности.

Наконец, третий важный файл app > manifests > AndroidManifest.xml описывает фундаментальные характеристики приложения и определяет все его компоненты.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ru.skillbox.skillboxapp">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".FullscreenActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:label="@string/app_name"
            android:theme="@style/FullscreenTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Созданное нами приложение — это одна активность, которая запускается в полноэкранном режиме и не имеет графических элементов.

Запускаем на Android-устройстве или в эмуляторе.

Смартфон или планшет для этого подключаем в режиме USB-отладки, которая активируется в Настройках разработчика в меню Настройки.

Для запуска в эмуляторе нажимаем в Android Studio кнопку Run в меню Run (Shift+F10). Выбираем подходящее устройство и версию ОС, портретную или ландшафтную (альбомную) ориентацию.

Android Studio установит эмулятор и запустит его.

Пользовательский интерфейс Android-приложения создаётся через иерархию макетов (layouts, объекты ViewGroup) и виджетов (объекты View). Макеты управляют расположением дочерних виджетов на экране. Сами виджеты — это непосредственно компоненты UI: кнопки, текстовые поля на экране и т.п.

Интерфейс активностей создаётся в Android Studio в редакторе макетов (Layout Editor) и хранится по большей части в XML-файлах.

  • Открываем файл app > res > layout > activity_fullscreen.xml.
  • Добавляем на экран из палитры (Palette) виджеты перетаскиванием мышью.
  • Например, берём текстовое поле (PlainText). Это виджет EditText, куда пользователь может вводить текст.
  • Добавляем кнопки и другие нужные элементы.

Также на экран можно перетащить кнопки и другие элементы.

Предположим, мы создали активность с текстовым полем и кнопкой «Отправить». После этого нужно написать, что конкретно будет происходить при нажатии кнопки «Отправить».

  • Заходим в код app > java > FullscreenActivity.
  • Добавляем метод SendMessage() в класс FullscreenActivity, чтобы при нажатии на кнопку вызывался этот метод.
  • Создаём намерения (класс Intent) для перехода от одной активности к другой, новые активности, навигацию и всё остальное, что необходимо для приложения.

И, конечно, начинаем мечтать, как монетизировать приложение.

Учись бесплатно:
вебинары по программированию, маркетингу и дизайну.

Участвовать

Научитесь: Профессия Мобильный разработчик
Узнать больше

На каком языке в какой среде разработки писать, как выложить в Google Play и зарабатывать

https://gbcdn.mrgcdn.ru/uploads/post/2134/og_image/912aecd851b468f3531cf6927743dbca.jpg

Мобильная разработка развивается быстрыми темпами, но несмотря на более чем десятилетний путь, можно с уверенностью говорить, что разработка мобильных приложений и вся индустрия в целом находятся в самом начале своего пути. Далеко не у всех в мире есть смартфоны, далеко не все области применения и использования исследованы и раскрыты. В будущем обязательно появятся новые направления в разработке, отрасль будет расти вместе с востребованностью мобильных разработчиков.

Уже несколько лет на рынке разработки приложений под Андроид спрос превышает предложение, и такое состояние рынка сохранится в ближайшие годы. Если говорить о специфике разработки, то речь здесь идёт не только о смартфонах и планшетах. Каждый сможет найти направление себе по вкусу: носимая электроника, Android TV, Android в автоиндустрии, дополненная и виртуальная реальность, интернет вещей…

Но наиболее актуальной и востребованной сегодня является именно разработка мобильных приложений под Android. В этой статье я расскажу, как создать приложение для Андроид с нуля и какие инструменты вообще для этого понадобятся.

Разработка андроид приложений: минимальный набор знаний

На самом деле требований здесь немного, но глубина познаний в нужных областях должна постоянно расти. Вот чем очень не помешает овладеть: 

  • Языками программирования Java или Kotlin;
  • Платформой Android Studio для разработки на платформе Android;
  • Git;
  • Основными библиотеками, которые вам сильно облегчат жизнь: Retrofit (для получения данных из интернета), Glide (для загрузки изображений)
  • Архитектурными компонентами Андроид (чтобы писать чистый и надёжный код);
  • Умением писать приложение в архитектуре MVP или MVVM (для надёжности приложения, его поддержки и развития).

На чём писать приложения для Android

В принципе для разработки нужна только Android Studio, которую можно бесплатно скачать с официального сайта. Это лучшая среда разработки андроид приложений из существующих на рынке. Подойдёт любая операционная система (Mac OS, Windows, Linux). Что касается аппаратной части, желательно иметь процессор не старше пяти лет и 8 гигабайт оперативной памяти (+ 1,5 ГБ свободного места на диске). 

Если вы не знаете ничего о программировании и имеете только жгучее желание создавать, для начала нужно выучить хотя бы один язык программирования. На данный момент написать приложение для Android можно на Java или на Kotlin. Предпочтительный язык — Kotlin, но если вы планируете стать профессиональным разработчиком, то Java вам нужно хотя бы уметь «читать» (а лучше и писать на ней). Эти языки очень похожи, работают по одинаковым принципам и имеют очень похожий синтаксис. У нас на факультете Android-разработки мы начинаем изучать Java, а в середине обучения переходим на Kotlin. Так выпускник оказывается полностью подготовлен к профессии андроид-разработчика в плане языков программирования.

Чтобы с удобством изучать Java, установите среду разработки на Джаве — IntelliJ Idea Community Edition. Это бесплатная программа, лучшая на рынке. Инструкцию по установке можно найти в конце этой статьи, в дополнительных материалах.

Устанавливаем Git для хранения кода

Git — это полезный инструмент, который вам как разработчику рано или поздно понадобится. С его помощью можно хранить разные версии вашего приложения на компьютере или в облаке. Скачайте, установите его, а также прочитайте первые несколько глав из руководства. Достаточно первых трёх глав (Введение, Основы, Ветвление), чтобы освоиться с самыми полезными функциями:

После установки Git вы сможете сохранять разные версии кода вашего андроид-приложения на компьютере или в облаке:

Среда разработки андроид-приложений

Если вы уже освоились с Джавой или Котлином, можно переходить непосредственно к разработке андроид-приложений. Для этого нам понадобится Android Studio. Если у вас уже стоит Git, то к нему можно подключиться как показано на скриншоте выше.

Если вам по какой-то причине не нравится Android Studio, то можно установить Eclipse в качестве среды разработки андроид-приложений. Но Эклипс — это скорее исключение из правил. Подавляющее большинство разработчиков работают в Студии.

Также, если у вас процессор от AMD, то рекомендуется поставить в качестве эмулятора смартфона Genymotion. Если у вас процессор от Intel, то встроенного в Android Studio эмулятора будет более чем достаточно.

Разработка приложений под Android: начало

Давайте создадим наш первый проект и посмотрим, из каких компонентов он состоит. Если вы первый раз открыли Студию, то вам будет предложено выбрать какой-нибудь шаблон из набора:

Выберем Empty Activity и нажмём «Далее»:

Здесь по аналогии с IntelliJ Idea вы вводите название вашего проекта, пэкедж, выбираете язык программирования и нажимаете Finish. Перед вами откроется готовый проект, где вы и будете создавать своё приложение на Android.

Создаём эмулятор

Чтобы создать эмулятор, нажмите на AVD Manager:

В появившемся окне нажмите Create Virtual Device:

Выберите подходящий смартфон, который нужно сэмулировать:

Выберите версию операционной системы, для которой мы в первую очередь пишем приложение под Android (скорее всего, вам нужно будет её предварительно скачать, нажав Download):

Нажмите Finish:

В появившемся окне выберите созданный эмулятор и запустите его: 

Эмулятор запустится в отдельном окне и появится рядом с кнопкой старта приложения. Нажмите на эту кнопку:

На эмуляторе запустится ваш проект:

Из чего состоит Android-приложение

Теперь давайте разберём, из каких компонентов состоит любое, даже самое простое приложение под Андроид. В папке java находится непосредственно код вашего приложения — тут вы будете создавать экраны и наполнять их содержанием: 

В папке res находятся все ресурсы приложения, в том числе макеты ваших экранов и другие элементы дизайна. Тут вы будете заниматься вёрсткой экранов:

Манифест приложения содержит информацию обо всех экранах приложения:

Три основных экрана Android Studio — вот с чего начинается любое приложение под андроид. В том числе и ваше :)

Как разместить приложение в Google Play

Основной способ распространения андроид-приложений — это размещение на площадке Google Play. Кроме этого, приложения можно размещать и в Amazon AppStore, и в Yandex Store, в Shop Samsung App. Но следует помнить, что основной площадкой является Google Play. Магазин приложений Google устанавливается практически на все устройства с Android (кроме ряда «китайцев» и «индийцев»), и по умолчанию на всех этих устройствах включена опция установки приложений только с этой площадки.

Основные особенности Google Play:

  • огромная база пользователей;
  • очень много приложений: практически все существующие  Android-приложения присутствуют на этой площадке;
  • удобные инструменты для публикации;
  • быстрая форма проверки приложений (через пару часов приложение будет уже доступно).

Давайте посмотрим, как выложить своё приложение в Google Play. Перед загрузкой приложения необходимо зарегистрировать аккаунт разработчика в Google Play. Обычно советуют использовать для этого не свой личный аккаунт (если у вас почта на Gmail), а специально создать для этого ещё один аккаунт. Это связано с тем, что если робот Google Play решит заблокировать аккаунт разработчика, то ваш личный аккаунт это не затронет. Откроем страницу регистрации:

И следуем простым шагам:

Важный момент: регистрация разработчика стоит 25 долларов США. Плата берётся единовременно.

Далее, чтобы опубликовать приложение, надо зайти в аккаунт разработчика и нажать «Новое приложение». Вы попадёте в консоль разработчика:

При заполнении различных форм перед публикацией приложения можно выбрать тип и описание вашего приложения (категория, ограничения аудитории по возрасту и т.п.), языки и страны распространения, цену в каждой из стран. Также необходимо выбрать изображения с приложением, экраны этого приложения, создать подписи и сделать ряд других вещей.

После этого необходимо проверить, что все формы заполнены

Кстати, у Google есть и свой список рекомендаций по поводу того, как опубликовать своё приложение.

Для заполнения формы с версиями приложений надо подготовить релизную версию вашего приложения. то уже не debug-версия вашего приложения, которая запускалась у вас до этого момента, в эмуляторе или под отладкой на устройстве, через кнопку Run.

Как подготовить релиз-версию приложения

Вы создали приложение под Android, и теперь, чтобы его выложить, необходимо сделать следующие шаги:

  1. Подготовить подпись приложения. Приложение подписывается уникальным криптографическим ключом.
  2. Подготовить пиктограмму приложения.
  3. Подготовить скриншоты (снимки экрана) приложения. Можно отдельно подготовить скриншоты для планшетов, телевизора и прочих устройств.
  4. Проверить манифест приложения. Проверяются права, версия приложения. Проверяются версии SDK, под какие готовится приложение. Удаляется логирование приложения. Проверяются ресурсы приложения.
  5. Собрать релиз-версию проекта и подписать её уникальным ключом.
  6. Подготовить удалённые сервера, если приложение работает с такими серверами.
  7. Протестировать релиз-версии подписанного приложения.
  8. После релиза приложения в магазине желательно скачать и удостовериться, что всё прошло гладко. Помните, пользователи будут очень недовольны и начнут минусовать ваше приложение, если новая версия будет падать или что-то случится при выкладке приложения, и оно станет неработоспособно.

Пройдёмся по важным понятиям на этом этапе.

Уникальный ключ приложения (сертификат)

Чтобы загрузить приложение на площадку и установить на устройство, требуется, чтобы приложение было подписано вашим уникальным криптографическим ключом. По этому ключу всегда можно отличить подлинность приложения и обновлений. Этот ключ находится у разработчика, он называется app singing key. А Keystore — это файл, в котором хранится ключ. У ключа есть имя и пароль, хранится ключ в keystore, от которого тоже должен быть пароль. Так много паролей нужно, чтобы никто не смог украсть ваше приложение.

Когда вы пишете приложение на андроид, то Android SDK автоматически подписывает debug версию, и кладёт цифровой сертификат и keystore в папку $HOME/.android/debug.keystore. Google Play не принимает debug ключи. Необходимо подписывать приложение релиз-сертификатом. Этот сертификат должен быть один на протяжении всей жизни приложения. 

Существует два способа хранения ключа. Исходя из того, какой вы выберете, будет определяться схема подписи приложения:

Сервис Google Play

Если вы выбрали использовать Google Play App singing, вы подписываете приложение с ключом для загрузки его в Google Play (upload key), и уже сам Google Play подписывает приложение уникальным ключом, а впоследствии несёт ответственность за его хранение. Тогда при потере upload key (ключа для загрузки приложения) вы сможете верифицироваться с Google, и сгенерировать новый. Таким образом, вы сможете в любом случае загрузить обновления вашего приложения, даже если вы поменяли загрузочный ключ. 

Самостоятельное хранение

Если вы сами храните ключ, то вся ответственность в этом случае лежит на вас. При потере ключа Google Play не сможет вам помочь и обновить приложение вы уже не сможете.

Как подписать приложение в Android Studio

Подпись можно сделать вручную или настроить всё так, чтобы приложение подписывалось в процессе сборки. Вот как сгенерировать новый ключ и keystore файл.

Зайдите в Build и выберите Generate Signed APK:

Выберите тип подписи:

В окне New Key Store заполните форму:

После компиляции проекта найдите получившийся файл:

Это уже готовый файл для загрузки его в Play Google.

Кроме того, нужно учесть, что иконка вашего приложения должна соответствовать определённым требованиям. Их можно прочитать на сайте, посвящённом Material Design. 

Для публикации приложения после его загрузки обязательно нажмите кнопку «Просмотреть»:

И только после этого можно опубликовать приложение:

Перед публикацией приложения Google проверяет его, его описание, прочую информацию, и только после этого приложение появляется в Маркете. 

Где ещё можно опубликовать приложение

Кроме Google Play, существуют и другие площадки для размещения приложений — Amazon Appstore, Shop Samsung App, Yandex Store. Некоторые разработчики также добавляют свои приложения и в эти альтернативные магазины. Вот некоторые причины:

  • В альтернативных площадках условия могут оказаться выгоднее, регистрация на некоторых площадках бесплатная. В отличие от Google Play, который, как мы помним, требует единоразовый взнос в 25 долларов. Сторонние магазины могут привлекать пользователей, устраивая акции для покупателей.
  • В основной площадке Google Play очень много приложений, и очень жёсткая конкуренция. Старые и популярные приложения часто оказываются выше новых в списках поиска.
  • В Google Play существует фильтр, и если приложение не соответствует стандартам и принципам Google, то такое приложение удаляется, а аккаунт пользователя может быть заблокирован. Причём, зачастую, это «заслуга» автоматических сервисов.

Как монетизировать приложение

Если вы не крупная компания, которая распространяет свой продукт бесплатно (например какой-нибудь интернет-магазин, или банк), у вас есть несколько способов заработать на своём приложении:

  • продажа самого приложения;
  • вставка рекламы в приложения;
  • продажа платных функций в приложении;
  • продажа подписки на определённый период;
  • донаты — добровольные платежи от пользователей.

Вам, как разработчику, нужно определиться со способом монетизации, который лучше всего соответствует вашему приложению. Баланс между количеством пользователей и прибылью — вещь очень хрупкая. Вот несколько рекомендаций от разработчиков Google, как его достичь:

  • Изучайте сведения о приложениях из категории, к которой относится ваше. Узнайте, как другие разработчики получают средства за свои приложения и материалы, и определите, следует ли предложить пользователям альтернативные способы оплаты.
  • Подумайте о том, как пользователи будут работать с вашим приложением. Это поможет вам определить наиболее подходящие способы монетизации. От частоты использования приложения зависит эффективность монетизации при помощи рекламы или покупок в приложении. Вы также можете предлагать пользователям приобрести версию приложения без рекламы.
  • Используйте естественные расширения. Если функциональность можно расширить (например, добавить новые уровни в игре), рекомендуем сделать базовую часть бесплатной, а дополнительные функции продавать через приложение или на основе подписки.
  • Продумайте структуру затрат в своём приложении. Если пользователи регулярно расходуют на ваш контент определённую сумму, вы можете внедрить подписки. Чтобы привлекать новых пользователей, предлагайте им бесплатный пробный период.
  • Учитывайте особенности аудитории. Для некоторых аудиторий не всегда подходят реклама, подписки и покупки в приложении. Например, в детских играх пользователи охотнее платят за отсутствие рекламы. В таких случаях пользователям лучше предлагать версии приложений без рекламы.
  • Назначайте цены с учётом особенностей целевой страны. Формируйте цены на приложения, покупки в них, а также подписки, исходя из уровня жизни, специфики ценообразования, стоимости аналогичных приложений и иных факторов в целевой стране.

После того как вы определитесь со способом монетизации, её можно будет настроить для вашего приложения в консоли разработчика. Вот и все основные шаги, который нужно учесть для создания и публикации приложения!

Полезные материалы для чтения и самоподготовки

Head First. Программирование для Android. Хотя эта книга немного устарела, она объясняет ключевые концепции очень интересным способом. Если вам понравился стиль Head First, вам будет приятно читать эту книгу.

Филлипс Б., Стюарт К., Марсикано К.Android. Программирование для профессионалов. 3-е издание. Действительно неплохая книга, которую можно смело рекомендовать начинающим разработчикам. В ней они смогут найти множество приёмов разработки приложений для Android, самостоятельный путь к которым довольно долог. Книга начинается с «Hello, world» и через теорию, упражнения и написание небольших приложений, обучает основному стеку технологий для создания Android-приложения. Требует среднего знания Java.

Исакова С., Жемеров Д. Kotlin в действии. Книга от создателей языка. Очень хорошо написана, советую.

Нуркевич Т., Кристенсен Б. Реактивное программирование с применением RxJava. Разработка асинхронных событийно-ориентированных приложений. Книга, которая на примере RxJava поможет понять вам, что такое реактивное программирование. Требует неплохого знания Java (по крайней мере, вы должны понимать, что такое обобщённые типы и лямбда-выражения) и предполагает последовательное чтение, так как материал подаётся шаг за шагом. Внимательный читатель получит полное представление об RxJava.

Напоследок — ещё пара статей на английском для тех, кто хочет разработать приложение на Android: «10 вещей, которые узнают новые Android-разработчики» и «12 методов, который должен знать каждый начинающий Android-разработчик».

Если вам было бы интересно почитать о каких-либо конкретных аспектах разработки под андроид — пишите в комментариях.

В этой статье я дал лишь базовые, минимально необходимые сведения, чтобы начать разработку андроид приложений с нуля. Чтобы стать полноценным, квалифицированным Android-разработчиком, эффективней всего будет пройти полноценную учебную программу, например, на факультете Android-разработки GeekUniversity.

Другие полезные статьи для начинающих Android-разработчиков:

  • 9 практических советов для начинающего Android-разработчика
  • Типичные ошибки начинающего Android-разработчика

Операционная система Android установлена на большую часть мобильных устройств, используемых на территории страны. Поэтому настолько высока потребность в разработке приложений для применяющих ее планшетов и смартфонов. Как и в услугах разработчиков, умеющих решать подобную задачу. Тем более – сегодня в интернете в свободном доступе находится немало ресурсов и бесплатных сервисов, позволяющих сделать это быстро и без проблем. Рассмотрим подробнее, как создать мобильное приложение для Андроид, какие для этого используются инструменты и на начинающему программисту необходимо обратить особое внимание.

Составные элементы приложение на ОС Андроид

Как создать приложение в Android Studio

Востребованность Android-разработчиков на рынке труда

Как стать разработчиком приложений на Android?

Подготовка к разработке

Первым делом необходимо привести общую информацию, позволяющую получить более полное представление о процессе программирования приложений для Андроид. В отличие от платформы iOS, которую разработала корпорация Apple, созданием Android занимается Google. Программы преимущественно пишутся на одном из самых простых и широко распространенных языков программирования — Java. В последние пару лет Google пытается продвигать альтернативы в виде C++ и более современного Kotlin.

Но пока они не могут сравниться по популярности с Java.

Общая схема разработки мобильного приложения для ОС Android достаточно проста и предусматривает последовательную реализацию четырех основных этапов:

  1. Создание проекта в бесплатном сервисе Android Studio.
  2. Разработка интерфейса пользователя.
  3. Добавление в приложение навигации и динамических активностей.
  4. Проверка работоспособности программы с помощью тест-драйва на эмуляторе.

Хотя можно составить и намного более сложную схему разработки мобильного приложения. Пример такой представлен на скриншоте ниже. Он включает как больше отдельных этапов, так и наличие внутри каждого нескольких промежуточных стадий и задач.

Необходимые инструменты

Основным инструментом начинающих разработчиков приложений для мобильных устройств на сегодняшний день является Android Studio. Фактически он представляет собой официальную среду программирования (англоязычная аббревиатура – IDE) для этой операционной системы. Сервис работает на всех трех самых распространенных OS для ПК – Windows, macOS и Linux. Он доступен для скачивания как из Google Play, так и с официального сайта компании-разработчика.

Android Studio – далеко не единственная IDE для программирования приложений на этой операционной системе. Но ни один другой сервис не способен конкурировать с ней по популярности среди пользователей.

Вместе с основным инструментом автоматически скачивается – в случае изначального отсутствия на ПК – последняя версия вспомогательного сервиса под названием Android SDK. Он представляет собой бесплатный набор библиотек, скриптов, сопутствующей документации и исполняемых файлов, которые необходимы для разработки приложений.

Третьим полезным инструментом, который пригодится на завершающей стадии программирования, становится эмулятор Android. Он поставляется в комплекте с Android Studio, причем бесплатно, и предназначен для тестирования созданного приложения.

Составные элементы приложение на ОС Андроид

Компонентами называют точки входа, которые предоставляют пользователю или системе доступ к приложению. Наличие каждого необходимо для эффективной работы конечного продукта. Применительно к программам для Android можно выделить четыре компонента:

  1. Activity (в русскоязычном сегменте обозначается как activity). Компонент формируется из интерактивных элементов пользовательского интерфейса. Схема работы выглядит следующим образом: активность запускается пользователем через намерения и задействует другую активность. Фактически, каждая – это веб-страница, а намерения выступают перекрестными ссылками между ними.
  2. Service (сервис). Относится к универсальным точкам входа, задействование которой запускает фоновый режим работы приложения. Компонент требуется в том случае, когда программа производит продолжительные операции без активного вмешательства и визуального контроля со стороны пользователя.
  3. Broadcast Receiver (широковещательный приемник). Необходим для передачи намерений и активностей приложения другим программным продуктам или пользователям.
  4. Content Provider (поставщик контента). Содержит общий набор данных, которые требуются для эффективной работы приложения на OS Android. Речь идет о файловой системе, СУБД SQLite и других хранилищах информации, перечень которых определяется назначением и характеристиками программного продукта.

Как создать приложение в Android Studio

Процедура разработки Андроид-приложения представляет собой четко регламентированную последовательность действий. Проще и удобнее всего отобразить ее в виде поэтапной инструкции. Основным инструментом программирования по описанным выше причинам станет Android Studio.

Этап №1. Создание проекта

Первым шагом становится скачивание и открытие Android Studio. Затем необходимо создать проект, указать путь к нему и другие запрашиваемые программой сведения. Отдельного упоминания заслуживает активация поддержки других языков программирования, помимо Java. Речь идет об упомянутых выше Kotlin или C++.

Этап №2. Выбор базовых опций

Важная стадия разработки. Включает указание версий операционной системы, которые будут поддерживать разработанное приложение. Важным дополнительным моментом становится выбор уровней API (расшифровывается как «интерфейс программирования приложений»).

Зависимость качеств приложениям от версии ОС и уровня API достаточно проста. Чем выше версия операционной системы, тем на меньшем количестве мобильных устройств она запустится и будет работать без проблем. Но это оборачивается существенным преимуществом, которое заключается в намного большем объеме доступного разработчику и пользователю функционале API. Другими словами, программисту нужно выбирать, что важнее: обширная сфера практического использования или ширина спектра возможностей для реализации творческих задумок.

Этап №3. Задание основной активности

Представляет собой выбор активности, запускающей приложение. Включает присвоение ей имени.

Этап №4. Определение исходных опций приложения

После выполнения первых трех шагов Android Studio производит начальную сборку приложения на основе заданных сведений. Обычно на это уходит несколько минут. Далее требуется определиться с тремя ключевыми моментами:

  • выбор режима работы приложения (в окне или полноэкранный);

  • определение основной активности (указывается в файле activity_fullscreen.xml)

  • установка фундаментальных характеристик (посредством файла AndroidManifest.xml).

Последний шаг особенно важен. Программный код, который содержится в файле, выглядит следующим образом.

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="ru.skillbox.skillboxapp">

<application

android:allowBackup="true"

android:icon="@mipmap/ic_launcher"

android:label="@string/app_name"

android:roundIcon="@mipmap/ic_launcher_round"

android:supportsRtl="true"

android:theme="@style/AppTheme">

<activity

android:name=".FullscreenActivity"

android:configChanges="orientation|keyboardHidden|screenSize"

android:label="@string/app_name"

android:theme="@style/FullscreenTheme">

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

</application>

</manifest>

Этап №5. Запуск программы на эмуляторе или мобильном устройстве

Исходная версия приложения фактически создана. Чтобы проверить ее работоспособность, требуется запустить программу с помощью встроенного в Android Studio эмулятора или реального мобильного устройства. Во втором случае следует воспользоваться специальным режимом работы USB-отладка. Он активируется в разделе меню «Настройки» и подразделе «Настройки разработчика».

При запуске с эмулятора необходимо активировать кнопку Run, которая находится в меню, запускаемом нажатием комбинации горячих клавиш Shift+F10. После этого задается три дополнительных опции: вид мобильного устройства, версия операционной системы и ориентация экрана.

Этап №6. Создание интерфейса пользователя

Задача решается посредством иерархии макетов и виджетов. Первая включает объекты ViewGroup и layouts, а вторая – объекты View. Первая управляет размещение виджетов на экране устройства. Вторая включает основные визуальные элементы UI, в том числе: текстовые поля, кнопки и многое другое. Для создания интерфейса используется встроенный в Android Studio редактор макетов, который называется Layout Editor.

Этап №7. Добавление активностей, действий и навигации внутри приложения

Предпоследней стадией разработки приложения становится наполнение программы контентом, что предусматривает назначение каждому визуальному элементу (созданному шагом ранее) активности или намерения. Важной частью работы становится создание перекрестной навигации между ними.

Этап №8. Запуск приложения и устранение ошибок

Завершающий шаг создания программы. Приложение запускается в эмуляторе или на мобильном устройстве с целью тестирования. Обнаруженные проблемы или ошибки устраняются способами, которые определяется в зависимости от характера ошибки и специфики программного продукта.

Востребованность Android-разработчиков на рынке труда

По состоянию на декабрь 2022 года квалифицированные Андроид-программисты входят в число наиболее востребованных специалистов. Даже при сравнении с другими представителями IT-индустрии. Причем в большинстве случаев речь идет о высокооплачиваемых вакансиях. Чтобы наглядно продемонстрировать справедливость данного утверждения, достаточно привести следующий скриншот, сделанный с одного из самых популярных «кадровых» ресурсов России – hh.ru.

Изучение содержащейся на нем информации позволяет сделать несколько выводов:

  1. Количество открытых вакансий приближается к семи сотням. Причем речь идет только о Москве. По России подобных предложений намного больше.
  2. Средний уровень зарплат, которые работодатели предлагают кандидатам-новичкам, составляет примерно 150-200 тысяч рублей. Отсюда можно сделать очевидный вывод: после подтверждения квалификации специалист наверняка получит еще больше.
  3. Среди работодателей присутствуют серьезные и крупные столичные компании, что позволяет рассчитывать на длительное и взаимовыгодное сотрудничество.

Как стать разработчиком приложений на Android?

Успешная карьера Андроид-программиста не требует обязательного наличия высшего или даже среднего специального образования. В подавляющем большинстве случаев вполне достаточно, по крайней мере – на первых этапах профессиональной деятельности – пройти обучение на специализированных онлайн-курсах. Тем более их количество постоянно растет, как и престижность дистанционного образования в целом. Некоторые из самых интересных учебных программ, разработанных ведущими онлайн-школами страны, представлены ниже в наиболее удобной и наглядной табличной форме.

Наименование онлайн-курса

Название учебного центра

Цена подготовки

Длительность обучения

Особенности и ключевые преимущества учебного курса

Android-разработчик с нуля

Нетология

109 500 руб. или по 4 562 руб. в месяц в течение 24 месяцев.

14 месяцев.

Разные форматы проведения занятий – от вебинаров и видео лекций до практики.

Возможность приступить к работе по специальности уже через полгода.

Акцент на самых популярных и официальных языках Android-программирования – Kotlin и Java.

Отсутствие требований к исходной подготовке слушателей.

Оптимальное сочетание теории и практики.

Подарки и бонусы от компаний-партнеров Нетологии.

Карьерные консультации и помощь в трудоустройстве.

Рассрочка по оплате учебы на 2 года.

Разработка мобильных приложений с нуля

Нетология

Бесплатно

20 часов занятий (5 — теории и 15 –практики)

Удобный формат и график подготовки.

Включение в программу всех необходимых программисту на Андроид базовых знаний.

Возможность продолжить обучение профессии на углубленном уровне.

Итоговое онлайн-тестирование с выдачей сертификата.

Бесплатное предоставление доступа к курсу, предусматривающее обычную регистрацию на сайте учебного центра.

Разработчик приложений на Android

GeekBrains

114 012 руб. или по 3 167 руб. в месяц в течение 36 месяцев.

12 месяцев (по 12 часов еженедельно)

Акцент на выполнении практических заданий.

Несколько форматов обучения в виде вебинаров, видео лекций, практикумов и самостоятельного выполнения реальных проектов.

Несколько специализаций в рамках одного учебного курса.

Помощь в профессиональной ориентации и трудоустройстве.

Рассрочка по оплате за учебу на 3 года.

Профессия Android-разработчик

Skillbox

145 434 руб. или по 4 601 руб. в месяц в течение 31 месяца.

7,5 месяца

Бесплатный доступ к первым 4 учебным модулям.

Разбор практических кейсов.

Стажировка после 9 месяцев подготовки с возможностью трудоустройства.

Предоставление карьерных консультаций и помощь в составлении резюме-портфолио.

Подарки и бонусы от учебного центра и компаний-партнеров.

Привлечение к преподаванию курса практикующих Андроид-разработчиков.

Рассрочка по оплате обучения на 2,5 года.

Профессия Мобильный разработчик

Skillbox

181 660 руб. или по 5 860 руб. в месяц с течение 31 месяца.

7,5 месяца

Несколько направлений подготовки внутри одного курса.

Стажировка с перспективой дальнейшего трудоустройства.

Помощь в формировании портфолио/резюме и составление индивидуального карьерного плана.

Поиск вакансий в компаниях-партнерах.

Рассрочка по оплате обучения на 2,5 года.

Курс «Android-разработчик»

Яндекс. Практикум

168 000 руб. или по 8 411 руб. в месяц в течение 24 месяцев.

12 месяцев

Приглашение к преподаванию курса практикующих и опытных Андроид-разработчиков.

Разные форматы проведения учебных занятий.

Закрепление за каждым слушателем персонального наставника.

Круглосуточная работа службы поддержки.

Помощь специалистов карьерного центра Яндекса.

Рассрочка по оплате обучения на два года.

Профессия Android-разработчик

SkillFactory

145 188 руб. или по 4 033 руб. в месяц в течение 36 месяцев.

16 месяцев

Отсутствие требований к начальной подготовке слушателей.

Детально проработанная образовательная программа.

Бонусы от компаний-партнеров.

Выполнение двух дипломных проектов с последующим включением в портфолио.

Помощь Центра карьеры SkillFactory в трудоустройстве.

Несколько тарифов на выбор.

Рассрочка по оплате обучения на 3 года.

Что почитать по теме

  1. Официальный сайт службы поддержки Google.
  2. Видеоролики на YouTube №1.
  3. Видеоролик на YouTube №2.
  4. Информационный материал Skillbox Media.

FAQ

Можно ли создать приложение для Андроид самостоятельно?

Да, такая возможность существует. Причем от разработчика не требуется каких-то существенных знаний в программировании или финансовых расходов

Какие инструменты для этого используются?

Основной рабочий инструмент разработчика приложения для рассматриваемой операционной системы – бесплатный сервис Android Studio. При его скачивании устанавливаются все необходимые вспомогательные программы.

Что нужно знать для разработки приложения?

Для успешного решения задачи следует изучить основные компоненты приложений, функционал Android Studio и общую схему действий. Важное дополнительное условие – опыт реализации теоретических знаний на практике.

Какова последовательность предпринимаемых разработчиком действий?

Общая схема разработки ПО для мобильных устройств на Android достаточно проста. Сначала задаются общие параметры приложения, затем определяются основные опции программы, после чего она наполняется контентом в виде создаваемого интерфейса, визуальных элементов и привязанных к последним намерений, активностей и действий.

Подведем итоги

  1. Самостоятельная разработка приложений для Андроид вполне возможна, причем на основе базовых знаний в программировании.
  2. Для этого имеется достаточно бесплатных ресурсов, включая самый популярный – Android Studio.
  3. Он представляет собой универсальную среду программирования, эффективно работающую во всех популярных ОС для ПК – Windows, macOS и Linux.
  4. В Android Studio встроены все необходимые для создания приложения дополнительные и вспомогательные инструменты.
  5. Для эффективного использования сервиса необходимо внимательно изучить его функционал, получить базовые навыки программирования и опыт их практической реализации.

Сегодня программирование является наиболее прибыльной сферой деятельности, в которую теоретически может войти любой желающий.

Множество людей, которым не повезло устроиться на работу по основной профессии, изучают IT и занимают достойное место в обществе, зарабатывая тысячи долларов в месяц. Но чтобы состояться в этой отрасли, необходимо изначально удачно выбрать язык программирования и сферу работы.

Их очень много: бэкенд, фронтенд, создание мобильных приложений, программирование «железа» и т. д.

Перспективной является разработка приложений на смартфоны и гаджеты – статистика показывает, что все больше людей пользуются переносными устройствами в качестве основных.

Смартфон сегодня даже потеснил традиционный ПК, так как позволяет развлекаться и потреблять контент даже в более удобных формах. Поэтому отличным решением будет выбор разработки под популярную систему ОС Android, у которой уже сейчас миллиарды пользователей по всему миру.

Корпорация Google, ныне входящая в состав холдинга Alphabet, заранее подумала о том, чтобы предоставить разработчикам все условия для удобного создания приложений на свою платформу Android. Для этого еще в 2013 году была представлена среда разработки Android Studio.

Это мощный инструмент разработки (IDE), в котором собраны все необходимые возможности для быстрого создания приложений на смартфоны с операционной системой «Андроид». Если вы хотите заниматься программированием для смартфона, установка и использование данной среды будет необходимостью.

Как установить Android Studio? Все очень просто – данное средство разработки распространяется бесплатно самой компанией Google, и скачать его можно со страницы https://developer.android.com/studio.

Загрузив пакет установки, надо просто нажать на него два раза левой кнопкой мыши и запустить установку. Далее процесс стандартный – необходимо выбрать место установки рабочих файлов, дождаться окончания процесса, и можно запускать среду разработки, используя появившийся ярлык на рабочем столе.

Рабочая среда в Android Studio

Компания постаралась сделать так, чтобы ее инструмент разработки просто не имел достойных конкурентов. В Android Studio все организовано максимально удобно, аккуратно, любой проект виден во всех своих мельчайших деталях. Здесь собраны все необходимые возможности для разработки:

  • гибкая настройка системы дает возможность подстроить работу под себя;
  • встроенный эмулятор приложений позволяет запускать создаваемые программы и тестировать прямо на ПК;
  • унифицированное рабочее пространство дает возможность легко подгонять проект под любые смартфоны и задавать перечень версий Android, которые должны поддерживаться
    приложением;
  • можно вносить изменения в проект уже с запущенным эмулятором, не перезапуская его заново, что очень удобно и облегчает работу;
  • в программу встроена масса полезных функций, таких как поддержка Google Cloud Platform, интеграция с GitHub и другое.

Работа над проектом контролируется прямо в интерфейсе программы, и она здесь реализована максимально удобно. Разрабатываемый проект отображается в левом верхнем углу во всей своей подробной структуре: отдельно выделены базовые файлы, раздел программирования кода java, переменные, меню, разметка страниц приложения, скрипты.

Создаем первые проекты

После того, как вы скачали установочный файл Android Studio, который занимает около 1 Гб, установили его стандартным путем, остается только начать работать. Для новичка все кажется сложным, но первые простые проекты для старта можно смело делать. Рассмотрим наиболее типичный пример – создадим приложение Hello World!

Чтобы начать, запустите программу и создайте свой первый проект, нажав в появившемся окне на строчку «New Project». Далее необходимо задать такие параметры проекта, как название, имя компании-разработчика (пишем что угодно), локализация проекта – путь размещения рабочих файлов.

В следующем окне разработчику предлагается выбрать, для каких версий Android создается его программа, на какие устройства: смартфоны и планшеты, смарт-часы, ТВ и прочее. В следующем окне выбирается шаблон пользовательского интерфейса, который максимально подходит для будущей программы. Для «HelloWorld!» подойдет базовый вариант Empty Activity. Далее после ввода основной информации о проекте касательно его имени и тайтла остается лишь нажать на кнопку «Finish» и начать работать.

Чтобы создать надпись «HelloWorld!» на экране приложения, используем инструмент TextView. Также давайте добавим Button с надписью «Click Me». Если открыть текстовый редактор кода, то приложение должно выглядеть так:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
    <TextView
        android:id="@+id/textView"
        android:text="HelloWorld!"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="24dp"
        android:gravity="center"
        android:textSize="25sp"/>
    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="24dp"
        android:text="Click Me"/>
</LinearLayout>

Каждая строчка задает параметры элемента на экране: надпись, размеры, величину букв и т. п. Можно поиграться с параметрами, добиваясь желаемого эффекта.

Далее откроем класс MainActivity и добавим для обработки нажатие и после-нажатие изменяем текст. Пример кода:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    val textView = findViewById<TextView>(R.id.textView)
    val button = findViewById<Button>(R.id.button)
    button.setOnClickListener {
        textView.text = "You clicked button"
    }
}

Приложение готово! Надо его лишь запустить и протестировать. Для этого необходимо предварительно настроить работу эмулятора Android Studio и нажать на кнопку Run в главном окне интерфейса. В зависимости от мощности компьютера разработчика, с определенной скоростью запустится эмулятор, и в нем отобразится ваше творение – приложение, в котором по центру экрана красуется надпись «HelloWorld» и кнопка. После нажатия кнопки надпись меняется на «You clicked button»

На чем сфокусироваться новичку

Начиная программировать в Android Studio, не стоит сразу браться за сложные проекты.

Необходимо потратить время на примитивные приложения и проекты типа рассмотренного выше и понять базовые вещи: особенности интерфейса среды разработки, структуру проектов и управление ею, обращение с основными элементами интерфейса, редактирование шаблонных элементов.

Все моменты программы осваиваются быстро и относительно просто, но не стоит забывать, что Android Studio – это все же создание приложения, и оно требует от человека знания языка программирования, и лучше всего, чтобы это был Kotlin или Java.

В качестве заключения отметим, что Android Studio – мощная среда разработки, которую стоит использовать каждому человеку, желающему начать писать программы под Android.

За последний год 53% интернет-трафика пришло с мобильных устройств, а приложения для Android используются значительно чаще прочих – до 71% смартфонов и планшетов работают под управлением самой популярной ОС в мире.

Знание Kotlin очень востребовано у работодателей. Диаграмма показывает соотношение вызовов на интервью владеющих разными языками программирования специалистов:

<i>Источник: <a href="https://hired.com/state-of-software-engineers" target="_blank" rel="noopener noreferrer nofollow">Hired</a>.</i>

Источник: Hired.

В то же время Kotlin – не самый популярный язык среди программистов, следовательно конкуренция среди владеющих им специалистов значительно меньше:

<i>Источник: <a href="https://hired.com/state-of-software-engineers" target="_blank" rel="noopener noreferrer nofollow">Hired</a>.</i>

Источник: Hired.

С какого языка программирования начать

Несмотря на более высокую востребованность Kotlin, если вы совсем новичок в программировании, начинать стоит с изучения Java. Тому есть несколько причин:

  • У Java огромное комьюнити, и вам будет проще получить от экспертов ответы на возникшие вопросы. По Java больше туториалов, курсов и других бесплатных материалов.
  • Для вас откроется большее количество вакансий. В случае, если вы передумаете заниматься мобильной разработкой, перейти на другое направление будет проще.
  • Kotlin стал официальным языком для приложений на Android только в 2017 году. Все более ранние разработки написаны на Java, а с ними так или иначе придется взаимодействовать. Не говоря уже об огромном количестве библиотек и инструментов для Java, который существует с 1999 года.
  • Высокотехнологичные программы (машинное обучение и вот это все) лучше писать на Java.
  • Kotlin очень легко выучить, если вы знаете Java.

Тем не менее, в 2019 году Google объявил Kotlin как предпочтительный язык для разработки мобильных приложений на Android.

Вывод:

С Java хорошо начинать, но Kotlin тоже придется освоить. Он был создан, чтобы усовершенствовать множество особенностей Java. Это типобезопасный, более выразительный и менее шаблонный язык. Если в Java для решения некоторых задач нужно написать 50 строчек кода, в Kotlin может потребоваться всего одна – это сокращает рабочее время. К тому же Kotlin способен взаимодействовать с любыми фреймворками, а также с кусочками кода на Java и даже на JavaScript.

Приложение для Андроида состоит из четырех основных блоков, каждый из которых живет своей жизнью (имеет независимый жизненный цикл) – это означает, что создается и удаляется каждый компонент по-разному.

Компонентов одного вида может быть несколько, и они тоже работают независимо друг от друга.

1. Активности (activities) – это части приложения, которые видит (есть интерфейс) и с которыми взаимодействует пользователь. Например, в мессенджере отображаются непрочитанные сообщения, и пользователь что-то с ними делает.

2. Службы (services) – этот блок осуществляет свои действия на фоне работы с активностями или с другими приложениями. Можно выделить два типа: начатые, которые работают пока не завершат определенное действие (музыкальный проигрыватель, синхронизация), а также обязанные сервисы (bound services) – они запускаются по указанию системы или другого приложения.

3. Широковещательные приемники (Broadcast receivers) – это компоненты, которые постоянно сканируют указанную область (систему, другие приложение, ваше приложение) и доставляют в приложение сообщения об отслеживаемых изменениях.

Эти блоки могут запускаться системой (уведомление о низком заряде батареи), а также другими приложениями. Они, например, уведомляют другие приложения, что определенный файл был скачан и теперь доступен для использования.

4. Контент-провайдеры управляют данными приложения. Другие приложения могут запрашивать или изменять какие-то данные в хранилищах контент-провайдеров с их разрешения. Например, контент-провайдер системы Android по запросам от других приложений предоставляет им информацию о списке контактов пользователя.

Этот компонент также может использоваться для чтения и записи приватных данных, которые не предназначены для передачи другому приложению.

В системе каждое приложение работает в отдельном процессе, поэтому чтобы активировать какой-то из компонентов, используются такие объекты как намерения (intents). Они активируют сервисы, активности и широковещательные приемники.

Ресурсы – некодовые компоненты, вроде картинок, звуков, макетов и т.д. Они хранятся в отдельных файлах.

Базовые инструменты для начала

1. Android Studio – интегрированная среда разработки (IDE) для создания андроид-приложений. В ней вы найдете все необходимое: редактор кода, быстрый и многофункциональный эмулятор, образцы кода, интеграцию с GitHub, фреймворки и инструменты для тестирования, встроенную поддержку для облачной платформы Google и т.д.

Чтобы IDE работала быстро, рекомендуется запускать ее на: Windows 7, 8, или 10 (32-bit или 64-bit), Mac OS X от 10.10 (Yosemite) до 10.14 (Mojave), Linux (Ubuntu 14.04 LTS), Chrome OS.

2. Java Development Kit – это набор инструментов, которые помогают писать и запускать код на Java. Туда входят, например, компилятор и дебаггер.

3. Android-устройство – не обязательно телефон. Это может быть планшет, смарт-часы, телевизор, холодильник или какие-то другие умные вещи.

Если под рукой нет нужного устройства, для запуска приложений можно использовать виртуальный эмулятор. Он представляет собой программу, которая запускается на компьютере, но выглядит и ведет себя как физическое устройство.

Есть разные программы, представляющие собой виртуальный девайс. Как вариант, можно использовать эмулятор из Android Studio или Genymotion. Второй – быстрее и с большим количеством опций, но бесплатная версия доступна только для личного использования (Как загрузить Google-приложение в Genymotion).

Создаем приложение в Android Studio

Инсталлируем среду разработки в Windows

1. Для более быстрой установки и работы рекомендуется иметь систему с 8 GB RAM, 4 GB свободной памяти на жестком диске и минимальным разрешением экрана 1280 x 800.

2. Скачиваем Android Studio.

3. Когда студия запускается, просто нажимаем несколько раз «next», там все нужное уже отмечено.

4. Когда у вас появляется окошко «Import Android Studio Settings», выбираем «do not import settings».

5. В «Install type» выбираем «Standard».

6. Выбираем светлую или темную тему.

7. Нажимаем «Finish».

8. Когда появилось окошко для начала нового проекта, нажимаем «Configure», а потом «Settings».

9. В открывшемся окне слева выбираем «System settings», а потом «Andoid SDK». Тут рекомендуется выбрать среды для всех версий Android, так как они пригодятся, когда вы будете создавать приложения под разные устройства. Если у вас не хватает памяти, можно не скачивать – для первого раза они не понадобятся.

Структура проекта в Android Studio

Каждый проект делится на модули, которые имеют отдельные файлы, настройки, функциональность. В проекте может быть один модуль или множество. Они по отдельности разрабатываются, тестируются и очищаются от неполадок.

Когда вы впервые создаете приложение, в новом проекте сразу появятся модули: «Android app module» и «Gradle».

<i>Источник: <a href="https://developer.android.com/studio/projects" target="_blank" rel="noopener noreferrer nofollow">Developer. Android</a></i>

Источник: Developer. Android

«Android app module» состоит из следующих элементов:

  • Манифесты – содержит файлы AndroidManifest.xml.
  • Java – содержит файлы с кодом.
  • Ресурсы (res) – (о них мы говорили выше) содержит все некодовые файлы.

«Gradle» – это система сборки приложения. Она настраивается отдельно для каждого приложения.

Можно добавить следующие модули:

  • «Feature module» – позволяет настроить, какие функции появляются вследствии наступления определенного условия или скачиваются пользователем в ваше приложение.
  • «Library module» – состоит из тех же элементов, что и «Android app module». Представляет собой что-то вроде архива для повторно используемого кода.
  • «Google Cloud module» – контейнер для бэкенд-кода в Google cloud.

Как добавить новые модули: File —> New —> New Module.

Как запустить простое приложение с «Hello world»

1. Открываем Android Studio.

2. В первом же окне вам нужно нажать «Start a new Android Studio project».

3. Далее необходимо выбрать тип устройства (телефон, часы, телевизор, автомобиль, интернет вещей). В каждом есть различные шаблоны. Для начала выбираем «Empty Activity» и нажимаем «next».

4. Теперь появляется окошко, где выбирается название проекта, язык и место на диске, куда сохранится проект.

Остальное пока менять не нужно, но уже в реальном приложении в «package name» вы сможете вписать свое доменное имя вместо «com.example».

Что касается «minimum API level», то приложения разработанные на более старой версии будут доступны для большего количества устройств, а на более новых легче работать.

5. Терпеливо ждем, пока подгрузятся все файлы нового проекта. Следующие будут открываться быстрее.

Запускаем на эмуляторе

Без виртуального устройства приложение не запустится. Поэтому создаем его в Android Studio:

  • находим на верхней панели «AVD Manager», нажимаем.
  • в открывшемся окне нажимаем «Create virtual device» и выбираем вид устройства и модель.
  • далее потребуется скачать любую версию Android. Когда все скачалось, нажимаем «finish».
  • теперь вы можете запустить первый проект, нажав «Run».
  • приготовьтесь ждать.

📱 Разработка приложений на Android с нуля: установка среды разработки

Запускаем на реальном устройстве

1. В настройках устройства нужно найти «Параметры разработчика —> Отладка USB».

2. Убедитесь, что на на вашем компьютере установлен «USB Driver».

3. Подключите андроид-устройство через порт USB.

4. В Android Studio в панели инструментов выберите ваше устройство.

📱 Разработка приложений на Android с нуля: установка среды разработки

5. Нажмите «Run». Приложение загрузится и запустится.

***

Хочу освоить алгоритмы и структуры данных, но сложно разобраться самостоятельно. Что делать?

Алгоритмы и структуры данных действительно непростая тема для самостоятельного изучения: не у кого спросить и что-то уточнить. Поэтому мы запустили курс «Алгоритмы и структуры данных», на котором в формате еженедельных вебинаров вы:

  • изучите сленг, на котором говорят все разработчики независимо от языка программирования: язык алгоритмов и структур данных;
  • научитесь применять алгоритмы и структуры данных при разработке программ;
  • подготовитесь к техническому собеседованию и продвинутой разработке.

Курс подходит как junior, так и middle-разработчикам.

Разработка мобильных приложений — перспективное направление. По данным Statcounter, за 2021 год доля Android среди операционных систем в мире — 39,49%, а iOS — 17,42%.

Растет и спрос на Android-разработчиков. На «Хабре» в январе 2022 года — около 2500 вакансий. Во многих указана обязанность — работа в Android Studio. Как работать в этой среде разработки — в нашей инструкции.

Каким компаниям нужно свое мобильное приложение

Приложения разрабатывают компании, у которых большая часть клиентов используют не компьютер, а телефон, чтобы заказать товары или услуги. Например, для доставки продуктов или готовых блюд, покупки одежды, товаров для дома.

Приложения нужны и образовательным организациям, чтобы студенты просматривали лекции и выполняли домашние задания с телефона.

С чего начать разработку приложения

✔️ Определите задачи. Распишите проблемы и решения для целевой аудитории. Например, клиентам в вашей сфере удобнее заказывать товары не дома у компьютера, а в пробке или во время обеда с мобильного телефона. Задача — привлечь таких людей.

✔️ Проанализируйте конкурентов. Протестируйте самые популярные продукты. Отметьте, каких опций не хватает, что можно улучшить, о чём пишут в отзывах.

✔️ Сформируйте функции. Напишите, какие опции будут полезны. Например, для приложения сетевой пекарни подойдут:

  • список акций и каталог товаров;
  • заказ с самовывозом или доставкой;
  • активация промокода;
  • регистрация с указанием номера телефона и адреса.

Из функций соберите основной сценарий — путь клиента от установки до использования каждой опции. В примере с пекарней это:

  • приветствие и краткий обзор возможностей;
  • ввод данных пользователем;
  • согласие на обработку данных;
  • просмотр акций и каталога;
  • заказ свежего хлеба самовывозом.

Сценарии удобно собирать в сервисах Figma или Miro. В первом создают черновики экранов с прописанными функциями. Во втором рисуют схему взаимодействия клиента и приложения. В результате вы поймете, сколько нужно экранов, где лучше использовать иллюстрации и хватает ли функций.

Интерфейс Figma

Интерфейс Figma

Чтобы улучшить сценарий приложения:

Дайте инструкцию. Объясните новым клиентам, куда они попали и как пользоваться приложением.

Добавьте ответ на каждый клик. Пусть кнопка меняет цвет при нажатии, появляется значок загрузки или подсказка — так человек увидит, что всё работает.

Используйте меньше рекламы и уведомлений. Результаты опроса Criteo в 2020 году: 21% пользователей удаляет приложение из-за навязчивой рекламы, 9% — из-за пуш-уведомлений.

✔️ Продумайте дизайн. Следуйте принципам минимализма и логике пользователей. Человек должен понять суть приложения сразу после его установки. Пусть этому не мешают иконки, детали, кнопки. Чем проще и понятнее интерфейс, тем больше шансов на коммерческий успех.

Чтобы подобрать гармоничные цвета, используйте сервис Adobe Color. Там же смотрите тенденции и примеры. Макеты и баннеры создавайте в Figma и Adobe XD, если вы делаете приложение вручную.

Поиск в Adobe Color

Поиск по цветам, настроениям и ключевым словам в Adobe Color

📌 Конструкторы no-code. Это сервисы с готовым набором функций и дизайнерскими шаблонами. Есть платные и бесплатные конструкторы. Когда будете выбирать, учитывайте, можно ли публиковать приложение в Google Play и других магазинах.

Преимущество: не нужно быть программистом и дизайнером — адаптируете типовые функции под себя и быстро получаете результат.

Недостаток: в бесплатных тарифах — минимум функций. Не подходит для крупных проектов, например интернет-магазинов с большим каталогом.

Четыре многофункциональных сервиса no-code:

1️⃣ Mobincube

Бесплатный конструктор с дополнительными платными функциями. В бесплатной версии соберете неограниченное количество интерактивных и информативных приложений и подключите аналитику. Но не сможете монетизировать проект. Для этого есть платные тарифы, которые начинаются от 2,99 € в месяц. Или годовые подписки — от 35,88 €.

2️⃣ Appy Pie

Платный конструктор с семидневной пробной версией. Она доступна после регистрации. В пробной версии можно разработать многофункциональное приложение с неограниченным редактированием, использовать «Google Аналитику», удалять рекламу Appy Pie, пользоваться круглосуточной поддержкой. Подходит, чтобы создать сложные приложения с большим количеством функций. Стоимость платной версии — от 999 ₽ до 2999 ₽ в месяц.

3️⃣ Kalipso Studio

Конструктор с бесплатной пробной версией. Подходит, чтобы создать многофункциональные онлайн- и офлайн-приложения. Дает доступ к базам данных компании, распознаёт речь, считывает штрихкод. Цену на платную версию сообщает отдел продаж: она зависит от проекта.

4️⃣ Bravo Studio

Сервис превращает готовые макеты из Figma и Adobe XD в нативные приложения. На бесплатном тарифе можно загружать макеты три раза в неделю, но на всех продуктах будет логотип конструктора. Платная версия без ограничений и логотипа стоит 49 € в месяц.

📌 Языки программирования. Нужно знать Java или Kotlin. У этих языков схожие принципы, они популярны у программистов и востребованы у работодателей.

Преимущество: подойдут для сложных проектов и масштабных задач, многофункциональных приложений с индивидуальным дизайном.

Недостаток: будете разрабатывать проект несколько месяцев, даже если хорошо разбираетесь в языках.

Онлайн-университет Skypro помогает научиться программировать на Java с нуля. Преподаватели — практикующие разработчики, у которых есть опыт найма и наставничества. В программе пять этапов на 11 месяцев: от введения до защиты дипломного проекта. Например, на первом вы погрузитесь в основы языка, освоите базовые функции и напишете свой первый код. На втором — научитесь пользоваться библиотеками, создавать дженерик-классы, работать со стримами. Будете тестировать код. Все материалы останутся у вас после обучения.

Как создать мобильное приложение в Android Studio

Установите инструменты. Вам понадобится среда разработки Android Studio. Она бесплатная и работает на разных операционных системах. Если на компьютере процессор AMD, установите эмулятор Genymotion.

Разработайте приложение. На первом экране нажмите New project и выберите шаблон проекта.

Как создать мобильное приложение в Android Studio

Затем заполните данные о проекте и выберите язык программирования. Заполните все поля и кликните Finish. После этого появится окно для работы с кодом.

Как выбрать язык программирования в Android Studio

Далее создайте эмулятор — виртуальный аналог будущего приложения. Для этого нажмите на значок смартфона AVD справа на панели инструментов. В следующем окне задайте устройство и выберите его параметры. Нажмите Next.

Как создать эмулятор в Android Studio

Загрузите версию Android, для которой разрабатываете проект, ⟶ Finish ⟶ Next.

Как выбрать версию андроида в Android Studio

В следующем окне выберите версию эмулятора, нажмите Finish и запустите его. Он откроется в отдельном окне.

Версия эмулятора в Android Studio

После запуска эмулятора пишите код.

В левой части экрана вы увидите три папки. В java — код приложения. Здесь создают и заполняют экраны. В разделе res хранятся макеты и все дизайнерские компоненты. В этой папке разработчик верстает проект. Manifest содержит данные о каждом экране.

Код от эмулятора

Проведите тест. Перед запуском убедитесь, что нет ошибок. Для этого подключите смартфон к компьютеру или включите эмулятор мобильного устройства на мониторе.

Проверьте:

  • корректно ли работают функции и отображается информация;
  • как тип устройства влияет на функции;
  • есть ли пробелы в безопасности;
  • как подключения к вайфаю или мобильному интернету влияет на работу;
  • удобно ли регистрироваться и пользоваться навигацией;
  • быстро ли загружается.

Подготовьте релиз-версию. На этом этапе соберите окончательную версию проекта для запуска. Создайте уникальный криптографический ключ для подписи — сертификат подлинности программы. Он хранится в запароленном файле keystore в Google Play или у владельца приложения.

Чтобы собрать ключ, зайдите в Build на панели управления и откройте Generate Signed Bundle or APK:

Generate Signed Bundle or APK

Выберите тип сертификата, нажмите «Далее» и заполните форму:

Тип сертификата в Android Studio

Затем сделайте пиктограмму и скриншоты экранов для разных устройств. Проверьте права и финальную версию.

Запустите релиз. Это лучше сделать в Google Play — самой популярной площадке для приложений. У магазина огромная база пользователей, удобные инструменты для загрузки, быстрая проверка. Единоразовый платеж при регистрации — $25.

Создайте новый аккаунт Google и зарегистрируйтесь на странице консоли. Личный аккаунт не используйте, потому что робот Google Play может заблокировать разработчика. Тогда вы потеряете доступ. Затем нажмите кнопку «Новое приложение» и заполните все формы.

Альтернативы Google Play:

  • Amazon Appstore. Удобен, чтобы интегрироваться с онлайн-магазином Amazon. Так как приложений в несколько раз меньше, чем в Google Play, больше шансов на то, что ваше приложение скачают.
  • Samsung Galaxy Store. Команда магазина приложений сама проведет тесты на устройствах Samsung и укажет на ошибки. Так вы сэкономите на проверках.
  • Aptoide. Он бесплатный, поэтому охваты очень большие. В нем есть программы, которых не найти в Google Play, потому что правила размещения не такие жесткие.

Как заработать на приложении

Есть четыре варианта:

1️⃣ Внедрить платные функции. Например, если у вас программа по обработке видео, сделайте возможным добавлять музыку только за деньги.

2️⃣ Продавать подписки на определенный период. Например, месяц бесплатного тестирования, далее тарифы по месяцам или на год со скидкой.

3️⃣ Собирать взносы. Приложение будет бесплатно, но пользователям выскочит форма для добровольных пожертвований.

4️⃣ Размещать рекламу. Это могут быть баннеры в определенной части или на всю область экрана при запуске.

Как выбрать наиболее подходящий вариант:

  • Изучите аналогичные разработки и проанализируйте, как создатели зарабатывают на них.
  • Подумайте, как будет действовать целевая аудитория. Например, если пользователи используют такие приложения каждый день, подойдет способ с рекламой.
  • Оцените, возможно ли дополнить приложение. Если да — добавляйте новые платные инструменты.
  • Учитывайте характеристики целевой аудитории. Одни охотно доплатят за отсутствие рекламы, другим удобнее покупать конкретные функции.
  • Формируйте цены с учетом проживания пользователей и стоимости продуктов конкурентов.

Что нужно знать о создании приложений

📱 До разработки приложения определите целевую аудиторию, задачи проекта, сформулируйте, какими должны быть функции и сценарии пути пользователя. Продумайте минималистичный дизайн.

📱 Выберите способы монетизации и заложите в план расходы на продвижение.

📱 Создайте приложение самостоятельно или в конструкторе no-code. Последний вариант проще, он подойдет для простых приложений, но часть функций платная.

📱 Перед запуском протестируйте версию, чтобы найти и вовремя исправить ошибки.

📱 Самый популярный магазин приложений для Android — Google Play. Альтернативы с меньшей конкуренцией: Amazon Appstore, Samsung Galaxy Store, Aptoide.

Понравилась статья? Поделить с друзьями:
  • Как пишут сопроводительное письмо к резюме пример
  • Как пишут прийти или придти
  • Как пишут сокращенно санкт петербург
  • Как пишут приглашение на свадьбу
  • Как пишут сокращенно подполковник