Corona SDK — простой способ создать свое приложение

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

Итак, Corona SDK — это ни что иное как средство кроссплатформенной разработки приложений для таких операционных систем как Android и iOS. Наиболее оно подходит для разработки простых двухмерных игр, хотя при желании можно сделать и что-то иное.

Чем же эта «корона» заслуживает уделенного ей внимания? Пожалуй, основным достоинствами являются простота освоения, высокая скорость разработки, удобство тестирования промежуточных результатов, ну и конечно же кроссплатформенность, а также бесплатность до тех пор пока вы не решите публиковать свое творение в магазине приложений. Несомненными плюсами также являются наличие неплохого, на мой взгляд, справочника по функциям API, с описанием и примерами, а также наличие «сэмплов», т. е. готовых примеров, с демонстрацией реализации самых различных задач.

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

Скачать Corona SDK можно совершенно бесплатно на официальном сайте, пользоваться и компилировать apk-файлы им также можно совершенно бесплатно, ваше приложение будет полностью работоспособно на смартфонах и планшетах (приложения совместимы только с процессорами на архитектуре ARMv7 и с версией Android 2.2 и выше), но его нельзя будет добавить в Android Market, а при старте приложения будет всегда высвечиваться надпись, то что оно сделано с помощью триальной версии программы. Заплатив $199 за SDK вы избавитесь от этих проблем, но только для одной из платформ (iOS или Android), чтобы без проблем публиковать свои приложения как в Android Market так и в AppStore вам прийдется раскошелиться на $349.

Вроде бы основные формальные стороны вопроса рассмотрели, теперь попробую рассказать об основных моментах работы с этим SDK. Предположим «корона» уже скачана и установлена у вас на компьютере (установка не вызывает никаких проблем, это как игру установить), запускаем Corona Simulator и видим экран приветствия:

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

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

    New Project — думаю, без комментариев, здесь все понятно; Simulator — он вам пригодится, когда у вас уже имеется начатый проект, в нем вы можете открывать уже имеющийся проект и тестировать на компьютере, как он работает; Dashboard — эта кнопка вам на первое время не понадобится, так как ведет в личный кабинет на официальном сайте; Demo — довольно интересная интерактивная штуковина, есть всего 3 демосцены, где поэтапно пишутся строчки кода и демонстрируется, что происходит на экране телефона по мере написания программы (ниже 3 скриншота).

К слову, код программы пишется на скриптовом языке Lua, вам не придется здесь иметь дела с Java или Objective C.

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

Здесь вам необходимо задать название вашего будущего приложения (Application Name), рабочую папку (Project Folder), задать разрешение экрана и дефолтную ориентацию экрана, а также выбрать шаблон проекта (Project Template) из 5 вариантов: пустой, приложение с вкладками, игра основанная на физике, электронная книга (если не ошибаюсь, на данный момент это только для iOS устройств) и мультиоконное приложение.

Я, к примеру, выбрал второй вариант и в итоге получил созданную на диске C: папку с названием проекта, а внутри 4 файла с расширением. lua, графические файлы и файл build. settings. Lua-файлы в моем случае имеют следующие названия: main (главный файл), view1 и view2 (файлы содержащие описание содержимого вкладок) и config (здесь описывается разрешение экрана устройства, количество fps и некоторые другие настройки). Файл build. settings отвечает за системные настройки. Такой набор файлов получился лишь потому, что я выбрал готовый шаблон, если создать пустой проект, то вы будете иметь лишь папку с файлами main. lua и config. lua. Ну а раз мы создали проект по шаблону, то «корона» сама построила элементарное приложение, которое и запустилось сразу в окне симулятора:

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

Можно приступать к разработке своих приложений! Ну и в качестве примера могу бегло разобрать один из готовых сэмплов под названием «Hello Physics», найти его можно в директории, где у вас установлена «корона» в папке: Sample Code\Physics\HelloPhysics. Здесь вы можете видеть необходимую вашему приложению графику, а также lua-файлы config и main первый не трогаем, а во втором написан следующий код (для редактирования рекомендую программу Notepad++):

local physics = require( «physics» ) — создание нового объекта отвечающего за физику и загрузка в него физической модели

physics. start() — запуск физики

local sky = display. newImage( «bkg_clouds. png» ) — создание нового объекта, содержащего картинку (небо)

sky. x = 160; sky. y = 195 — задание координат полученному объекту

local ground = display. newImage( «ground. png» ) — создание еще одного объекта содержащего картинку (земля)

ground. x = 160; ground. y = 445 — задание координат и этому объекту тоже

physics. addBody( ground, «static», { friction=0.5, bounce=0.3 } ) — к физическому объекту добавляется как статический объявленный выше объект ground со своими физическими параметрами

local crate = display. newImage( «crate. png» ) — создание еще одного нового объекта содержащего в себе картинку ящика

crate. x = 180; crate. y = -50; crate. rotation = 5 — задание ему координат и начального угла поворота

physics. addBody( crate, { density=3.0, friction=0.5, bounce=0.3 } ) — добавление к физическому объекту только что созданного ящика, по умолчанию он динамический, поэтому при запуске приложения он будет отталкиваться при взаимодействии со статическими телами.

Вот и все, можете запустить и посмотреть, как работает это приложение. Возможно, мои пояснения не совсем корректны и понятны, но если посидеть и подумать, то там нет ничего сложного, зато написав 10 строк кода мы загрузили на сцену 3 объекта (небо, земля и ящик) и они при этом еще взаимодействуют друг с другом. Естественно, необходимо иметь хоть какой-то опыт программирования, понимать логику, тогда разобраться вам не составит труда, если же с этим проблему, то надо научиться хотя бы основам какого-нибудь JavaScript. Сами разработчики Corona SDK сравнивают свой продукт с ActionScript 2.0 на Flash.

Далее можно переходить к компиляции, но я не буду на этом останавливаться, так как если вы разберетесь более менее со всем вышеописанным, то и дальше у вас не возникнет особых проблем. Пункт компиляции находится в симуляторе: File — Build for — Android.

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

Вот в общем и все, что я хотел вам рассказать сегодня. Бегло, может быть местами коряво, но в целом, надеюсь, кому-то было интересно. Что скажете?

PS: официальный сайт Corona SDK — http://www. anscamobile. com/.