Продолжаю изучать Android и его устройство с точки зрения программирования. Базовым понятием ОС Android является Activity (активность) – нечто среднее между формой и процессом в классическом понимании оконных ОС вроде Windows. В любом случае это – специальный класс, обеспечивающий взаимодействие пользователя и мобильного устройства с помощью графического интерфейса.
При изучении программирования мобильных приложений большое внимание уделяется событийному подходу в разработке ПО. И, разумеется, нужно понимать, что такое объектно-ориентированное программирование (получить базовое представление об этих понятиях можно из моей статьи “Эволюция абстракций” ).
Жизненный цикл

Как видно из диаграммы, активность имеет несколько состояний, переход в которые сопровождается событиями. А для реализации всей полезной функциональности приложения программист перекрывает методы-обработчики событий.
Особенностью мобильных приложений является особая забота к используемым ими ресурсам, потому как в случае запуска другой активности, текущая активность приостанавливается (Paused), а в некоторых случаях может быть и вовсе остановлена (Stopped) и даже полностью выгружена из памяти (Destroyed) операционной системой в случае нехватки этих самых ресурсов.
Двигаемся не спеша
Особенностью курсов от N.E.C.O. является низкая скорость раскрытия информации. С одной стороны это хорошо для начинающих, а с другой стороны плохо, если вы уже хоть что-то начали понимать. Но, кроме понимания концепций программирования, нужно освоить среду разработки Android Studio, и тут форсировать изучение очень сложно, так как для каждой фишки потребуется практика. И вот что я для себя отметил.
- В языке KOTLIN символом разделения операторов является перевод строки (а не точка с запятой, как Pascal). Также различаются верхний и нижний регистр при написании команд или имен объектов. Это потребует от вас большей внимательности!
- Благодаря тому, что почти все хранится в виде текста (программный код и внешний вид формы), всегда можно откатиться к более ранней версии созданного. Для этого в контекстном меню выберите пункт “Local History” – откроется список редакций с возможностью поиска и сравнения отличий!
- Если текст нужно заключить в кавычки, выделите его и нажмите SHIFT + “
- Редактор исходных текстов обладает мощным механизмом автозавершения – начните набирать нужную команду и он тут же подскажет вам, что нужно написать дальше.
- Сочетание клавиш CTRL + O отобразит список всех доступных методов класса, которые вы редактируете.
Отладка
Наверное, это правильно – сразу научить разработчика пользоваться мощнейшим инструментом отладки. Ещё и программировать не начали, а пора искать ошибки.
Log – статический класс, который позволит выводить в панель сообщений всё, что вы хотите сообщить разработчику (то есть – себе любимому) в процессе работы приложения.
Особая любезность редактора Android Studio состоит в том, что если вы используете класс, который вы ещё не добавили в раздел import (а на первых порах вы можете и не знать, в каком модуле находятся нужные вам классы), достаточно набрать его название, поставить на него курсор и нажать Alt + Enter .
Метод Log.d() позволяет выводить во вкладку Logcat текст, помеченный тегом. При этом в Android Studio имеется мощный механизм фильтрации сообщений (по типам, по тегам, по содержимому и т.д.)

Однако
Я был неприятно удивлен, когда мой компьютер с 16 Гб памяти на борту отказался тащить на себе Android Studio и эмулятор мобильного устройства до тех пор, пока я не добавил файл подкачки. Возможно, что за два года, которые прошли с покупки ПК, изменились аппетиты у всех: у браузеров, у операционной системы, у средств разработки… Но до сегодняшнего дня подобных проблем я не наблюдал. И, что самое странное, Android Studio при попытке открыть панель лога просто закрывается, ни слова не говоря о том, что ей не хватило памяти.