Пишем на iPad'е под iPad

    Недавно в App Store появились первые игры написанные прямо на iPad, что лично меня очень радует. Можно сказать, что планшет становится не только средством потребления контента, но и его производства.

    image
    Под катом я расскажу, как и где это сделано, покажу простенький Hello World.


    За все, описанное выше, отвечает компания Two Lives Left, создавшая мобильную среду разработки Codea. Codea является приложением под айпад, которое содержит в себе удобный редактор кода и симулятор. Всю эту радость можно получить за 10$ в app store. Не мало, но это приложение стоит своих денег.

    Итак, начнем по порядку разбираться, что это и с чем его едят.



    Lua

    Codea использует язык программирования Lua.

    Lua (Wikipedia):
    По возможностям, идеологии и реализации язык ближе всего к JavaScript, однако Lua отличается более мощными и гораздо более гибкими конструкциями. Хотя Lua не содержит понятия класса и объекта в явном виде, механизмы объектно-ориентированного программирования с поддержкой прототипов (включая множественное наследование) легко реализуются с использованием метатаблиц, которые также делают возможной перегрузку операций и т. п. Реализуемая модель ООП (как и в JavaScript) — прототипная.


    Среда разработки

    Codea содержит в себе симпатичный редактор кода (возможно купить дополнительные оформления). Есть удобная надстройка над клавиатурой, которая позволит открыть базу знаний и расставить необходимые знаки. Доступен довольно большой набор спрайтов, которые уже успели адаптировать под ретина экран нового iPad.





    Симулятор

    Имеется довольно удобный встроенный симулятор, который может дать фору многим симуляторам других ОС на ПК. Есть место под указание параметров, что крайне удобно при оптимизации геймплея, возможность записать видео, либо сделать скриншот.

    Hello world

    Итак, после моего довольно долгого вступления, перейдем к делу. Я попробую показать насколько просто сделать маленький Hello World прямо на вашем iPad.

    Задача: сделать отображение разноцветных кругов под пальцами пользователя (своеобразный мультитач тест)

    Пожалуй, начнем. Первым делом направляемся в функцию, которая вызывается при запуске приложения и добавляем туда создание массива touches.

    function setup()
        touches = {}
    end
    


    Далее перемещаемся в функцию, которая отвечает за касания экрана (вызывается при появлении нового касания, который в Codea именуется просто touch). Во время прикосновения к экрану мы добавляем касание в массив, а во время его прекращения — убираем. Все крайне просто.

    function touched(touch)
        if touch.state == ENDED then
            touches[touch.id] = nil
        else
            touches[touch.id] = touch
        end
    end
    


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

    Для этого нам нужно перейти в функцию draw, которая вызывается во время отрисовки фрейма.

    function draw()
        -- цвет фона
        background(0, 0, 0, 255)
        
       -- изображаем для каждого касания из массива
        for k,touch in pairs(touches) do
            -- Указываем id касания (число) для инициализации генератора случайных чисел
            math.randomseed(touch.id)
            -- Это позволит нам иметь разный цвет для каждого касания
            fill(math.random(255),math.random(255),math.random(255))
            -- Изображаем элипс (в нашем случае круг) в с центром в точке касания
            ellipse(touch.x, touch.y, 100, 100)
        end
    end
    


    Все, дело сделано.

    Результат:


    Эпилог

    Codea — это не инструмент для разработки чего-то ультрасложного и большого, но это идеальное подспорье для инди разработчиков, которые начинают открывать для себя рынок яблочной техники. Благо, что с недавнего времени появилась возможность публиковать свои Codea-приложения в магазине App Store, но, правда, не без помощи мака.

    И еще, хотелось бы сказать, что меня очень радует тенденция, которая появилась в последнее время. Появление новых языков на которых можно писать под iOS не может не радовать.

    Спасибо за внимание.

    Частично использован исходный код примера под названием «Multi Touch».
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 39
    • +11
      Спасибо, но где Hello World?
      • +1
        Это формальности :)
        • +1
          Кстати, на сегодняшний день, какия яп официально подерживает апплстор?
          • +6
            Ограничения по языкам нету, просто не для всех есть нужные средства разработки.

            Через xcode можно написать на Obj-C и, при желании, на C++. Еще недавно вышел компилятор Ruby, ну и сегодняшний герой — язык Lua.
            • +4
              Я последнее время пишу на Lua игры под iOS и Android с помощью Corona SDK, Cocos2D забыл как страшный сон, кода стало раз в 10 меньше.
              • 0
                И производительность не пострадала?
                • 0
                  ни капли, у них ведь дижок нативный на С++/OpenGl, lua только как скрипты.
                • НЛО прилетело и опубликовало эту надпись здесь
                  • 0
                    Да, Корона не идеальный движок, много ограничений, поэтому и переходим потихоньку на Unity3d
                • 0
                  Плюс ещё можно писать с помощью C#/MonoTouch.
                • 0
                  Кроме того в Objective-C можно встроить интерпретатор какого-нибудь языка и всунуть внутрь программу уже на нём.

                  Или скомпилить что-нибудь в Objective-C. Не знаю как с этим, но вот компилеры из ObjC в JS уже видел :)
            • +2
              А для того чтобы Хабраюзеры понимали на что способна Codea я бы привел пример офигительной игры разработанной с её помощью: Cargo-Bot itunes.apple.com/ru/app/cargo-bot/id519690804?ls=1&mt=8
              Кстати, игра бесплатная.
              • +1
                Вы в нее играли? Что в ней офигительного?
                К тому же насколько я знаю это единственная игра, сделанная с помощью Codea, если вообще не единственное приложение.
                В общем — время создавать на iPad еще не пришло.
                • +1
                  Возможность публиковать приложения из Codea появилась относительно недавно, как и сама среда разработки.
                  • +1
                    На счет единственная — я не спорю, возможно. А чем Вам игра то не понравилась? На мой взгляд очень хорошая головоломка, да ещё и с программистским уклоном.
                • 0
                  IMHO, для разработки бы больше подошёл один из Asus Transformer'ов.
                • +2
                  Не думаю, что имеет большой смысл разрабатывать что-то на продажу в этом. А вот быстренько сделать утилитку для себя — самое то!
                  • +3
                    [троллейбус]Но зачем?![/троллейбус]
                    • 0
                      Проект явно вдохновлен AIDE, к тому же там разработка на полноценной java. На трансформер prime вполне себе разработка
                      • 0
                        Пишу на python в textastic очень даже удобно. Нюансы есть, но для правки самое то.
                        • 0
                          Кто у кого позаимствовал — не факт, ещё на Palm были нативные IDE, в которых можно было писать код (С) с подсветкой синтаксиса, рисовать ресурсы (и редактировать существущие), был дизайнер форм, дизассемблер и сам компилер, который собирал всё в готовый к запуску пакет. Куда всё делось :'(
                          • 0
                            там был редактор ресурсов, с помощью которого можно было перевести на русский любую программу. в том числе, и его самого.
                            • 0
                              Именно, любил с этим играться. Ну или крякнуть.
                          • +2
                            Может я что то не понял, но ведь печатать на планшете такие массивы текста, да ещё так, чтобы это было читабельно — гемморой же
                            • 0
                              тоже так считаю
                              • НЛО прилетело и опубликовало эту надпись здесь
                                • +1
                                  но как я понимаю, никакие keyboard shortcuts не работают — типа убить слова слева, убить строку, скопировать, вставить. Если это так — седым станешь пока 1 страницу кода набьешь.
                                  • 0
                                    Вы ошибаетесь.
                                    • 0
                                      Я был немногословен. Шоткарты работают, выделение слева от курсора, выделение строки справа от курсора, вырезать, вставить, скопировать. Все работает.
                                      • 0
                                        спасибо за ответ! А на слово вправо и на слово влево тоже можно курсором прыгать? А расширить выделение на слово вправо, или влево?
                                        • 0
                                          Вроде бы можно, я не помню, дам точный ответ спустя 10 часов, когда до iPad доберусь.
                                          • 0
                                            Вот нашел iPad Keyboard Shortcuts gigaom.com/apple/ipad-keyboard-shortcuts/
                                            • –1
                                              спасибо за ссылку! Так что по словам прыгать и выделять не получится. Нахрен это уродство (клава с блютузом) тогда нужна, тем более за 50 баксов.

                                              Примечательно, что по ссылке ч-к тоже не нашел никакой доки от эпла, и ему пришлось пробовать все комбинации чтобы их отыскать. Блин, не мог что ли эпл это все в документ какой вынести?

                                              Этот эпловский подход к нечайникам как к говну дико бесит…
                                              • 0
                                                Статья двухгодичной давности. Есть дока по клаве подключенной к маку www.apple.com/itunes/how-to/shortcuts.html
                                                Я также в интернете нашел информацию, что на ipad работают все шорткарты, что и на маке. А на маке точно можно прыгать на слово вперед и назад. Проверю вечером.
                                                • 0
                                                  ой, не та ссылка, вот та support.apple.com/kb/HT1343
                                  • 0
                                    Можно рассматривать Codea не как среду для разработки игр, а как среду для инди-исследователей. Сидишь себе в удобной позе и визуализируешь какой-нибудь алгоритм или нейронку. И публиковать в аппстор не надо — просто велосипед для мозгов. Только надо добавить математических библиотек.

                                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.