Глава 1. Знакомство с Delphi и первый проект
1.1. Как пользоваться книгой
Вам не терпится начать разработку великолепных приложений для смартфонов или
планшетов? Хотите удивить друзей и одноклассников, а также учителей и родителей? Тогда
можете пропустить несколько разделов и начинать чтение с раздела «мой первый проект».
Но не забудьте вернуться к изучению пропущенных разделов, как только появится
свободное время между очередными атаками на программный код. Программирование
это – не только умение вводить код и разрабатывать интерфейс. Это и понимание
принципов взаимодействия со средой разработки, и знание возможностей инструмента, и
умение ориентироваться в различных версиях и редакциях продукта. Не забудьте найти
время на проработку первых частей! Но лучше, конечно, читать последовательно,
тщательно прорабатывая изложенный материал.
Есть много способов начать свой первый проект. Некоторые начинающие
программисты делают первые шаги в увлекательный мир разработки приложений под
руководством преподавателя или опытного старшего товарища. Во многом это – один из
самых эффективных способов. Но мир программирования быстро меняется, не всегда
можно найти наставника, тонко разбирающегося в особенностях последних версий сред
разработки приложений. Даже если рядом с вами нет такого «гуру», но есть хорошая книга
и доступ к сети интернет, то можно и самостоятельно в кратчайшие сроки овладеть
техникой программирования приложений, включая мобильные. Основной целью данной
книги как раз и является наглядная демонстрация приёмов создания программ в одной из
самых популярных и доступных сред разработки Delphi/C++Builder/RAD Studio. Почему
используется такое сложное название, будет рассказано дальше.
Программирование давно считалось искусством. Отчасти это – правда, т.к.
программистам приходится проявлять изобретательность, а многие навыки для
непосвященных выглядят как элементы магии. Сами программисты с радостью
поддерживали сложившиеся мифы, используя свой сложный профессиональный язык и
принимая загадочный вид каждый раз, когда новички задают вопросы. Снято много
художественных фильмов о приключениях всемогущих хакеров, каждый раз силой своего
разума пытающихся или поработить, или спасти мир. Информационные технологии в силу
своего бурного развития, дающего человечество новые возможности и действительно
«творят чудеса». Но в их основе лежит достаточно обычный труд, больше похожий на
работу инженера. Долгое время недостаток хороших книг, отсутствие глобальной сети для
поиска информации и просто малое количество знающих людей возвели
программирование в ранг мистической деятельности. Настоящая книга поможет вам
разобраться во всем без всяких чудес, фокусов и трюков.
Программирование можно изучать разными способами. Уроки в школах и
тщательное выполнение домашних заданий формируют надежную основу для
7
самостоятельного развития. Школьные занятия преследуют цель поэтапного овладения
базовыми навыками в индивидуальном порядке. Если они у вас уже есть, а также есть
желание самостоятельно или под руководством наставника сделать резкий рывок вперёд,
обогнав не только школьную программу, но и программу обучения во многих
среднеспециальных и высших учебных заведениях, то данная книга – отличный вариант.
Предполагается, что с языком Pascal вы уже знакомы, среду разработки Delphi тоже знаете,
как и понимаете основные принципы построения приложений. В последней главе будут
приведены рекомендации по источникам информации, если в них ощущается дефицит. Но
есть принципиальное отличие настоящей работы от большинства учебных курсов и
справочных пособий. Данная книга полностью состоит из «проектов». Почему так важно
изучать программирование в процессе выполнения проектов?
Владеющие техникой создания приложений в Delphi/C++Builder/RAD Studio помнят,
что всё начинается с создания нового «проекта». В текстовом редакторе мы создаём
«документ», в видео-редакторе – «видео-ролик», в среде разработки приложений –
«проект». Проект по разработке приложения имеет начало, когда определена идея и
функциональность будущей программы, реализация которой требует определенного
количества времени. Конечным результатом является работающее приложение, а если
таковое не готово, то проект считается незавершённым. В этом и есть основное отличие от
других школьных предметов. Можно изучать историю, биологию или физику, где
положительным итогом считается некая сумма накопленных знаний. То же самое можно
сказать и про информатику. Но умение программировать означает способность создавать
работающие приложения, выполняя конкретный проект. В книге представлено восемь
таких проектов. Если вы выполните их, то можете считать себя уже весьма опытным
программистом, способным самостоятельной к разработке достаточно сложных и даже
коммерчески значимых. Никто не сможет в этом вас оспорить, т.к. в вашу пользу будут
говорить ваши работающие программы.
Реализация проектов – единственный способ создавать программы, но проектная
работа полезна и сама по себе. Она учит начинающего программиста последовательно
идти к намеченной цели путём регулярных и интенсивных занятий. Вы научитесь
определять глобальные цели и текущие задача, распределять время и усилия,
контролировать ход выполнение работ. Рассмотренные в книге проекты рассчитаны на
индивидуальное выполнение, но не исключают и групповую работу. Если проект сложный,
то на его реализацию может потребоваться значительные временные ресурсы. В течение
этого периода может пропасть энтузиазм, но дело не только в этом. Большой проект
требует участия различных специалистов, не только программистов. Дизайнер
интерфейсов, тестировщик приложений, технический писатель, специалист по внедрению,
а также «творец идей» - все они помогут не только ускорить реализацию проекта, но и
повысить качество полученного результата. Можно, конечно, совместить все эти роли в
одном человеке. Но реальной жизни создание приложений уже давно стало коллективным
трудом. Есть смысл попробовать работу в команде еще на стадии обучения.
8
Групповая работа требует прежде всего правильной организации. Лучше, если роль
лидера возьмёт на себя учитель или преподаватель, авторитет которого непререкаем.
Можно выбрать на эту должность и кого-то из учащихся, дав команде максимальную
свободу действий. В этом случае преподаватель будет выполнять функции контроля,
своевременной коррекции действий, выдачи рекомендаций и разрешения конфликтных
ситуаций. Как и в первом, так и во втором случае совсем не обязательно, чтобы лидер был
опытном программистом. Конечно, роль программиста в проекте, посвященном
разработки приложений чрезвычайно важна. В таком случае руководитель организует
остальных членов команды максимально помогать программисту, обеспечивая его
рабочими материалами: текстами, картинками, макетами дизайна, подробным описанием
требуемых функций, а также помогая в отладке и тестировании и апробации приложения
в процессе создания. Сейчас Delphi обладает возможносью интегрироваться с Subversion и
Git для совместной работы над исходным кодом.
Если проект выполняется одним человеком, то придётся все эти роли сочетать в себе.
С одной стороны, это даст возможность попробовать все основные роли. Такая постоянная
смена деятельности позволит понять, что является вашими самыми сильным сторонами.
Современная отрасль разработки программного обеспечения очень разнообразна по
спектру востребованных специальностей. Не надо огорчаться, если программирование не
является вашей самой яркой способностью. Это вполне может компенсироваться
креативностью или организаторскими способностями. Но в любом случае, уметь
программировать надо. Без этого нельзя ни правильно поставить задачу другим
программистам, ни проконтролировать их результаты. Также это важно при генерации
идей и постановке задач. Есть ли смысл придумывать что-то новое, если это нельзя будет
реализовать? Проработка материала книги очень полезна каждому, вне зависимости от его
намерений стать именно разработчиком программного обеспечения.
Книга разбита на главы, каждая из глав практически пошагово описывает реализацию
конкретного приложения, посвященного учебной тематике. По завершению каждой главы
у нас должно появиться реальное работающее приложение. Основной акцент сделан на
мобильной разработке, т.е. созданию приложений либо под смартфон, либо под планшет.
Такой подход выбран исходя из стремительно растущей популярности мобильных
устройств. Вам будет легко продемонстрировать созданное приложение одноклассникам,
друзьям и знакомым. Также просто будет начать применение приложения в обычной
жизни, т.к. практически каждый современный человек обладает каким-либо мобильным
устройством. Представленные приложения это – не просто некие учебные примеры, они
потом могут быть использованы в проектах, относящихся к другим предметам: физике,
химии, биологии, математике, литературе. Создание приложения может стать частью
другого большого исследовательского проекта.
Именно здесь и заключена самая главная идея книги. Не программирование ради
программирования, но программирование для реальной жизни. Созданное приложение
может быть использовано в биологическом проекте по наблюдению за ростом растений
или в химическом проекте по наблюдению за ростом кристаллов. Приложение для
9
построения графиков функций поможет окончательно разобраться в параболах или
гиперболах. Литературное мобильное приложение сделает так, что вы выучите длинную
поэму в считанные дни и без ущерба занятиям по другим предметами или вашему отдыху.
Программирование меняет нашу жизнь, и вы сможете это доказать личным примером!
В завершении раздела хочется чуть более подробно остановиться на роли
руководителя проекта. Не надо путать задачи лидера с желанием лучше всех
программировать или генерировать идеи. Работа над проектом должна постоянно
приближать всю группу к его успешному завершению. Каждый шаг любого из члена
команды должен быть спланирован, выполнен, проконтролирован и зафиксирован. Работа
всех участников проекта должна быть синхронизирована. Но не надо сводить свои функции
только к раздаче команд, причем в невежливой форме. Если у кого-то что-то не получается,
то руководитель должен уметь вникнуть в суть проблемы и помочь найти её решение. А
ещё лучше – уметь избегать проблем за счет подбора команды и тщательного
планирования. Оцените силы вашей рабочей группы и выберите проект, адекватный
возможностям. Восемь проектов, представленные в книге, весьма разнообразны и
позволят подобрать посильную, но интересную задачу. Соберите команду, вдохновитесь
одной из описанных идей и приступаете к работе!
1.2. Что такое Delphi/C++Builder/RAD Studio
Мы будем разрабатывать приложения. Можно взять любое одно из восьми
представленных проектов. Можно последовательно выполнять проекты один за другим,
начиная с первого. Но в любом случае вам придётся воспользоваться средой разработки. В
настоящий момент существует достаточное количество инструментов, позволяющих
создавать приложения, включая мобильные. В конкурентной среде всегда существует
несколько близких технологий, дающих приблизительно одинаковый результат. Поскольку
основной задачей данной книги является именно обучение программированию
мобильных приложений, среда должна быть максимально простой и дружественной. Не
каждый профессиональный инструмент может этим похвастаться. Если говорить об
учебных средах, то чаще всего они позволяют создавать лишь «игрушечные» приложениях
в рамках ученических проектов. Но мы не видим смысла погружаться в игровую среду ради
некой «поделки», а потом переучиваться для реальной разработки. Мы выберем такой
инструмент, который будет сочетать в себе доступность для начинающих и возможности
для профессионалов.
Безусловно лидирующим инструментом, соответствующим предъявленным
требованиям, является Delphi/C++Builder/RAD Studio. Это группа продуктов изначально
создавалась корпорацией Borland, но уже уже достаточно давно права на создания
перешли к компании Embarcadero. Но дело не только в правах, но и в фактическом вкладе
компании Embarcadero в развитие продуктов, превосходящем изначальные разработки
Borland. Сейчас именно Embarcadero является основным производителем указанных сред
разработки, хотя и сейчас можно встретить упоминание Borland, особенно в связи с Delphi
7 или Turbo Pascal.
|