На сегодняшний день на просторах интернета можно найти массу статей о том, как начать программировать, разрабатывать приложения, игры и т.д. Как правило такие статьи пишутся профессиональными программистами, они грамотно и подробно описывают все этапы подготовки и разработки продукта, и, казалось бы, все замечательно, но есть одно но, в таких публикациях описаны технические моменты и не хватает базовых понятий на простом человеческом языке, который поймет человек, не написавший ни одного “Hello World”.
Если ты решил освоить разработку приложений на Android, то первым делом тебе советуют изучить Java. Это правильно. Ты, наполненный энтузиазмом, полный перспективных идей и верой в то что твое будущее приложение наверняка изменит мир, бежишь в книжный магазин, покупаешь самую толстую книжку по Java, несешься домой, включаешь компьютер, потирая руки и приготовившись творить, открываешь книгу и начинается… Полиморфизм, инкапсуляция, наследование, абстрактность, классы, объекты… Через полчаса желание творить пропадает, книга по Джава отправляется на дальнюю полку, а ты, разочарованный в программировании, продолжаешь жить прежней жизнью с несбывшимися мечтами.
Хватит это терпеть! Я объясню вам базовые принципы программирования для Android за 2 минуты, зная которые вы без проблем начнете писать свое первое приложение на могучем языке Джава.
Погнали. К разработке приложения мы будем относиться как к постройке многоэтажного дома. Что нам нужно чтобы построить дом? Для начала мы запланируем и распишем все по шагам – нужно начертить план, пригнать технику, вырыть котлован, заложить фундамент, построить коробку, подвести коммуникации. В программировании также, без плана и видения конечного результата начинать нельзя.
Итак, план готов, что дальше. Постройка дома состоит из двух основных моментов – это постройка самого корпуса и проведение коммуникаций. Корпус – это внешний вид, это то что видит и чувствует жилец, то с чем он взаимодействует, а коммуникации, это то что делает возможным его проживание в доме, но при этом сама их работа скрыта от глаз. Т.е. нажимая на выключатель света, мы видим результат – загорается лампочка, но за счет чего она загорелась мы не видим и вполне возможно что и не понимаем, а нам и не надо это понимать. Так же и с приложением – есть пользовательская часть, которую мы видим на экране, кнопочки, переключатели и т.д. Мы нажимаем и получаем результат, а что происходит “за экраном” нас не волнует.
Так вот чтобы сделать свое приложение нужно создать внешний вид и логику. Внешний вид создать совсем не сложно, приложения для Андроид разрабатываются в специальной программе – Android Studio, в этой программе есть все необходимые инструменты для того чтобы в считанные минуты сверстать интерфейс – это самая простая часть разработки, проблемы начинаются когда дела доходит до того – как заставить работать все то что мы сверстали.
Логика для Андроид пишется на языке Java, в этом языке, как и в нашем реальном мире все является объектами. Что это значит? Представьте наш мир, все что происходит в мире — это взаимодействие объектов. От того что делаю эти объекты и с кем они взаимодействуют зависит вся наша жизнь. Тут все просто, если ты(объект) хочешь поесть пельменей, то идешь в объект-магазин, передаешь деньги объекту продавец, а продавец считает сколько денег он получил и исходя их этого передает тебе определенное количество пельменей, и ты возвращаешься домой. Все довольны.
Так же и в программировании, чтобы получить какой то результат нужно взять какой то объект и попросить его обратиться к другому. Все просто. Но есть одно но, каждый объект выполняет свои функции, нельзя продавца пельменей попросить помыть машину, для этого нужно поехать на мойку и обратить в объекту – мойщику автомобилей, у каждого объекта есть свой тип – продавец, автомойщик, собака, пельмени (да – да, пельмени это тоже объект).
Вернемся к строительству дома, мы не будем строить дом, сами, нам нужно позвать подходящие объекты и попросить их сделать то что они умеют. Будем ли мы звать продавца пельменей? Вряд ли он нам поможет, лучше мы позовем инженера, прораба, чернорабочих, каменщиков, водителей экскаваторов и других рабочих. Каждый тип рабочих как мы уже поняли выполняет только свою функцию, больше не умеет ничего делать. Наша задача – создать из этих товарищей организованную группу, объяснить каждому рабочему – куда идти, что передать другому, что получить в ответ и т.д. Т.е. наладить взаимодействие объектов.
В разработке приложения все также, нам нужно создать подходящие для данного случае типы объектов, а затем создать сами объекты и попросить их выполнять заложенные в них функции.
Это может показаться сложным, но ребята из замечательной компании Google уже позаботились о нас, они создали огромное количество типов объектов и обучили их всем необходимым функциям. Все что нам нужно это в нужное время и в нужном месте создать объект нужного типа и попросить его выполнить свою работу, как он это сделает нас мало волнует.
Но что делать если мы хотим чтобы объект-чернорабочий сходил и купил нам пельменей? Ведь у него нет такой функции. Для этого нам поможет его сын, наследник чернорабочего. Дело в том что сыну чернорабочего по наследству передаются все умения и навыки родителя и при этом он может помимо наследуемых качеств научиться чему то самостоятельно. В программировании это одно из самых важных понятий и оно называется наследование.
Мы можем взять один из тех классов которые создали за нас ребята из Гугл и создать его наследника, добавить туда какие угодно функции и пользоваться на здоровье. Это очень удобно и поэтому наследование используется в программировании повсеместно.
Итак, чему мы научились? Мы знаем как работает программа на Java, мы знаем что такое объекты, классы, мы знаем что программа – это взаимодействие этих объектов, мы знаем что такое наследование, мы знаем что все что там нужно для создания программы – это собрать команду объектов и попросить каждого из них выполнить свою функцию.
Есть еще несколько понятий с которыми тебе придется столкнуться – это полиморфизм, инкапсуляция и некоторые другие, но поверь мне, эти страшные слова на деле окажутся такими же простыми понятиями как те что мы уже знаем. Мы рассмотрим их на примере нашей стройки в следующей статье.
Автор: призывник