Отчет по практике


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

Введение


Место прохождения производственной практики - ООО «Инрэко ЛАН». Основная деятельность ООО «Инрэко ЛАН» - разработка программного обеспечения на заказ.

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

изучение платформы для разработки

изучение среды для разработки

проектирование

написание программного кода

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

На выполнение данных задач выделено 8 недель с 14 марта по 8 мая 2011.



Исследование организации ООО «Инрэко ЛАН»


Группа компаний «Инрэко ЛАН» объединяет более 60 специалистов - опытных программистов, менеджеров, аналитиков, тестировщиков и дизайнеров. Менеджеры группы компаний «Инрэко ЛАН» имеют большой опыт ведения проектов разной степени сложности. Это позволяет успешно работать над любыми проектами, от создания относительно простых прототипов до реализации полного цикла разработки, начинающегося с НИР и заканчивающегося выпуском промышленных образцов сложных программных систем.

Главным приоритетом в деятельности группы компаний «Инрэко ЛАН» является максимально точное и эффективное удовлетворение нужд клиентов. Этому способствует использование самых современных инструментов и сертифицированных технологий, а также сквозной контроль качества продукции.

«Инрэко ЛАН» существует с 1989 года, а в 2008 году была образована одноимённая группа компаний. Её работники имеют многолетний опыт успешной реализации крупных ИТ-проектов, в первую очередь - в области разработки и внедрения программных систем.

Высокотехнологичная разработка программных продуктов и внедрение автоматизированных систем - основные сферы деятельности «Инрэко ЛАН». Группа компаний выполняет заказы на создание программных систем и ведет собственные разработки для перспективных направлений современной ИТ-индустрии.

В «Инрэко ЛАН» работают около 60 опытных программистов, менеджеров, аналитиков, тестировщиков и дизайнеров. Все они - выпускники профильных факультетов российских университетов. В штате группы компаний несколько аспирантов, 4 кандидата наук и один доктор наук.

Менеджеры «Инрэко ЛАН» имеют большой опыт ведения проектов разной степени сложности. Это позволяет успешно работать над любыми проектами, от создания относительно простых прототипов до реализации полного цикла производства, начинающегося с НИР и заканчивающегося выпуском промышленных образцов сложных программных систем.

Главным приоритетом в деятельности группы компаний «Инрэко ЛАН» является наиболее точное и эффективное удовлетворение нужд клиентов. Этому способствует использование самых современных инструментов и сертифицированных технологий, а также сквозной контроль качества продукции.



2. Разработка приложения


.1 Android

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


















Рис 1 - Стандартный домашний экран Android 2.0


Благодаря специальным библиотека, разработанными компанией Google, операционная система Android позволяет сторонним программистам создавать приложения для нее на языке Java. Кроме этого у программистов также есть возможность разрабатывать программное обеспечение для Android на языке C, и некоторых других языках программирования, при помощи специального комплекса Android Native Development Kit.

Изначально операционная система Android разрабатывалась компанией Android Inc, которую позже купила компания Google. В данный момент разработкой и развитием системы занимается бизнес-альянс Open Handset Alliance, который был основан компанией Google 5-го ноября 2007 года, и насчитывает 47 членов, включая многих производителей электроники, разработчиков программного обеспечения, сотовых операторов и производителей микрочипов.

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


.1.1 Android MarketMarket - это онлайн магазин-хранилище (др. словами - онлайн-сервис) от Google, позволяющий владельцам мобильных телефонов с операционной системой Android скачивать и покупать различные приложения. Аккаунт разработчика, который дает возможность публиковать приложения, стоит 25$. Платные приложения могут публиковать разработчики не из всех стран.

В данный момент ОС Android развивается все больше и больше, и с ее развитием рынок Android Market становится все более и более перспективным.


.2 Java


В качестве языка разработки используется объектно-ориентированный язык программирования Java.- объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems. Приложения Java обычно компилируются в специальный байт-код, поэтому они могут работать на любой виртуальной Java-машине (JVM) независимо от компьютерной архитектуры. Дата официального выпуска - 23 мая 1995 года.

Достоинство подобного способа выполнения программ - в полной независимости байт-кода от операционной системы и оборудования, что позволяет выполнять Java-приложения на любом устройстве, для которого существует соответствующая виртуальная машина. Другой важной особенностью технологии Java является гибкая система безопасности благодаря тому, что исполнение программы полностью контролируется виртуальной машиной. Любые операции, которые превышают установленные полномочия программы (например, попытка несанкционированного доступа к данным или соединения с другим компьютером) вызывают немедленное прерывание.

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

применение технологии трансляции байт-кода в машинный код непосредственно во время работы программы (JIT-технология) с возможностью сохранения версий класса в машинном коде,

широкое использование платформенно-ориентированного кода (native-код) в стандартных библиотеках,

аппаратные средства, обеспечивающие ускоренную обработку байт-кода (например, технология Jazelle, поддерживаемая некоторыми процессорами фирмы ARM).

По данным сайта shootout.alioth.debian.org, для семи разных задач время выполнения на Java составляет в среднем в полтора-два раза больше, чем для C/C++, в некоторых случаях Java быстрее, а в отдельных случаях в 7 раз медленнее. С другой стороны, для большинства из них потребление памяти Java-машиной было в 10-30 раз больше, чем программой на C/C++. Также примечательно исследование, проведённое компанией Google, согласно которому отмечается существенно более низкая производительность и большее потребление памяти в тестовых примерах на Java в сравнении с аналогичными программами на C.

Идеи, заложенные в концепцию и различные реализации среды виртуальной машины Java, вдохновили множество энтузиастов на расширение перечня языков, которые могли бы быть использованы для создания программ, исполняемых на виртуальной машине. Эти идеи нашли также выражение в спецификации общеязыковой инфраструктуры CLI, заложенной в основу платформы .NET компанией Microsoft.

Последним релизом является версия 1.6, в которой было произведено улучшение системы безопасности, улучшение поддержки XML, а также добавлена поддержка скриптового языка JavaScript на основе механизма Mozilla Rhino, улучшена интеграция с рабочим столом, добавлены некоторые новые возможности в создании графических интерфейсов.


.3 Реализация проекта


.3.1 Eclipse

В качестве среды разработки был выбран бесплатный продукт Eclipse IDE. - свободная интегрированная среда разработки модульных кроссплатформенных приложений. Развивается и поддерживается Eclipse Foundation.



Рисунок 2 - Интерфейс Eclipse IDE.


Так выглядит Project Explorer, позволяющий просматривать проекты и содержащиеся в нем пакеты, а так же непосредственно править исходный код.



.3.2 Android + AndEngine + Box2D

За то, что видит пользователь на экране в Android отвечают Activities. На рисунке ниже представлена первая activity, исполняющая роль главного меню.




Рисунок 3 - Главное меню.


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

При создание приложения был использован framework AndEngine а так же физический движок Box2D.

Основой в AndEngine являются так называемые сцены (Scene).

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

Загрузка движка - инициализация камеры сцены и создание самого двигателя сцены. Пример кода:


@OverrideEngine onLoadEngine() {

/* Создание камеры */.mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);

/* Инициализация движка */new Engine(new EngineOptions(true, ScreenOrientation.LANDSCAPE, RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), this.mCamera));

}

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

@Overridevoid onLoadResources() {

/* Загрузка шрифта и текстур. */.mFontTexture = new Texture(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA);.setAssetBasePath("font/");.mFont = FontFactory.createFromAsset(this.mFontTexture, this, "Droid.ttf", 48, true, Color.WHITE);.mEngine.getTextureManager().loadTexture(this.mFontTexture);.mEngine.getFontManager().loadFont(this.mFont);

}

Загрузка сцены - в этот момент происходит создание всех объектов и задании логики поведения сцены, например - создание 3х объектов: персонажа, дерева и яблока и указание логики их взаимодействия (дерево реагирует на удары, яблоко реагирует на состояние дерева). Пример кода:

@OverrideScene onLoadScene() {

/* Измерение FPS */.mEngine.registerUpdateHandler(new FPSLogger());

/* Создание меню */.mMenuScene = this.createMenuScene();

/* Установка фона */.mMainScene = new Scene();.mMainScene.setBackground(new ColorBackground(0.09804f, 0.6274f, 0.8784f));

/* Установка меню */.mMainScene.setChildScene(this.mMenuScene, false, true, true);

return this.mMainScene; }

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


Физический движок Box2D позволяет производить огромное количество физических расчетов. В моем приложение используется стандартная земная гравитация. Персонаж движется с ускорением по законам физики. Событие Collide (столкновение) позволяет обрабатывать столкновения объектов, на чем и основано взаимодействие персонажа с деревом.



.3.3 Игровой процесс

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

Наклоняя аппарат в разные стороны, пользователь заставляет персонажа перемещаться по площадке. Движения происходят в соответствии с законами физики, т.е. с ускорением, инерцией и т.д. Главной целью пользователя являются яблоки на дереве, которое необходимо раскачивать, совершая удары по нему. Справа за областью игровой зоны расположен индикатор силы удара. Чем больше скорость персонажа, тем сильнее будет совершен удар по дереву. Сверху так же отображена сила удара. Для того, что бы яблоко упало, необходимо достигнуть определенной отметки, после чего яблоко упадет на землю и его можно будет подобрать, заработав тем самым баллы. Таймер наверху так же отображает время, потраченное на сбор яблок - чем быстрее они собраны, тем лучше. Игра будет завершена, когда пользователь соберет все яблоки.

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


Ниже представлены скриншоты отображающие игровой процесс.




Рисунок 4 - Первый удар по дереву




Рисунок 5 - Второй удар по дереву



Рисунок 6 - Третий удар по дереву - яблоко падает



Заключение


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

Открытых исходный код, что играет на руку разработчикам, т.к. они могут использовать наработки других программистов со всего мира. Открытый исходный код так же ОЧЕНЬ сильно упрощает жизнь сторонним разработчикам.

Постоянная поддержка продукта и обратная связь - можно задать вопрос напрямую разработчикам Android и получить на него ответ.

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


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

1.


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

Другие материалы:
Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем отчёт по практике самостоятельно:
! Отчет по ознакомительной практике В чем заключается данный вид прохождения практики.
! Отчет по производственной практики Специфика и особенности прохождения практики на производстве.
! Отчет по преддипломной практике Во время прохождения практики студент собирает данные для своей дипломной работы.
! Дневник по практике Вместе с отчетам сдается также дневник прохождения практики с ежедневным отчетом.
! Характеристика с места практики Иногда преподаватели требуеют от подопечных принести лист со словесной характеристикой работы студента, написанный ответственным лицом.

Особенности отчётов по практике:
по экономике Для студентов экономических специальностей.
по праву Для студентов юридических специальностей.
по педагогике и психологии Для студентов педагогических и связанных с психологией специальностей.
по строительству Для студентов специальностей связанных со строительством.
технических отчетов Для студентов технических специальностей.
по информационным технологиям Для студентов ИТ специальностей.
по медицине Для студентов медицинских специальностей.