LINUX.ORG.RU

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


1

2

Я вот тут недавно запарился тем, что программирование для мобильных устройств - это интересно и перспективно. Так как не обладаю сведениями, что там в мире мобильников и как, первый вопрос, который вырос у меня в голове: 1) Что перспективнее - Java под Android или Objective-C для iPhone.

Немного гуглил, и наткнулся на фразу, что большинство игр для Android пишут на С/С++. Посему второй вопрос: 2) Это так?

И думаю, логично, что следующий вопрос: 3) А можно ли использовать только С/С++ для создания приложений/игр для iPhone?

что большинство игр для Android пишут на С/С++

Только низкоуровневую часть и только для относительно новых версий (старые NDK не поддерживают). Оболочку по-любому на жабе писать придётся.

На иПхоне же только Objective-C, вроде как есть какие-то костыли для конвертации кода из плюсов, но лучше с ними не трахаться, если только не абсолютно пофиг на производительность и стабильность и нет никакого желания изучать эту вариацию языка. И нормальная среда разработки (с полноценным эмулятором) есть только на МакОсь (можно юзать Хакинтош, разумеется, если получится установить:)).

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

bodqhrohro
()

1. Java/ObjC/C++. Зависит от задач.
2. NativeActivity
3. ObjC позволяет использовать код на С++. Т.е. движок пишется на С++, а потом вся обвязка к конкретной платформе - на языке оригинала (Java/ObjC/NativeActivity)

P.S. Даже M$ (ЕМНИП) добавили возможность писать на С++ для последней WP, но кого это интересует?

trex6 ★★★★★
()
Последнее исправление: trex6 (всего исправлений: 1)
Ответ на: комментарий от bodqhrohro

Вы бы постеснялись бред то сюда постить.

trex6 ★★★★★
()

2) Это так?

через NDK можно написать игру почти целиком на C/C++. только интеграцию с системой на жабе (или дергать функции/классы через JNI). на готовом тулките типа SDL вообще жаба не понадобится.

3) А можно ли использовать только С/С++ для создания приложений/игр для iPhone?

аналогично ведроиду.

waker ★★★★★
()
Ответ на: комментарий от trex6

P.S. Даже M$ (ЕМНИП) добавили возможность писать на С++ для последней WP, но кого это интересует?

о, это интересно кстати. где можно об этом почитать?

waker ★★★★★
()
Ответ на: комментарий от waker

В каком-нибудь MSDN, вестимо.
Я особенно не углублялся, возможно это вообще бред.

trex6 ★★★★★
()

Если хочешь кроссплатформенности(android, iPhone, ОффтопикPhone), то, только С/С++, только хардкор.

Ну и потом придется все-равно делать обвязочки на Java/Objective-C.

Еще теоретически C++ + Qt позволит писать полностью кроссплатформенно. Еще более теоретически это позволяет делать Mono.

anonymous
()
Ответ на: комментарий от bodqhrohro

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

Нормально там все с плюсами.

mono ★★★★★
()
Ответ на: комментарий от waker

я джва года это ждал! теперь, возможно, мой следующий мобильник будет винфон.

Не, ну это ни в какие ворота... Досоветовались, блин!

anonymous
()

Когда ты свою игру доделаешь, в телефонах будут цпу не слабее кор2дуба. Пиши на жабе. На ипхон её можно скомпилировать через monotouch.

PolarFox ★★★★★
()

для начала... 1) существует Java2ObjectiveC конвертер от Google - для того чтобы писать игры и ПО сразу под обе платформы 2) существует масса готовых фреймворков для работы сразу на всех мобильных ОС - на Android, ios и win phone 8 - я бы ориентировался на нечто подобное

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

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от trex6

я все равно бы узнал об этом рано или поздно. не вини себя :D в ближайшее время опробую эту штуку на работе. честно говоря, без этой фичи я уж совсем M$ в лузеров записал, а оказалось они просто тянули резину. после андроида это просто спасение.

waker ★★★★★
()
Ответ на: комментарий от waker

пока что андроид, уже джейлбрейкнутый

Нет, ты не понял, речь не о получении прав root'а, чтобы творить с системой всё что вздумается, а о банальной возможности управлять файлами и устанавливать сторонние приложения.

И если в случае с iOS это можно оправдать неплохим магазином(я об iTunes) и большим количеством приложений, то полупустой Marketplace с его crap'ом такой урезанности оправдать не может.

Хотя сами трубки по тех. характеристикам лучше андроидофонов за те же деньги, это да.

Lighting ★★★★★
()

erlang. для мультиплеера самое оно!

nanoolinux ★★★★
()
Ответ на: комментарий от Lighting

возможности управлять файлами и устанавливать сторонние приложения.

чем отличаются сторонние приложения от несторонних, и что там не так с управлением файлами?

Хотя сами трубки по тех. характеристикам лучше андроидофонов за те же деньги, это да.

ну вот, а теперь и по девелоперским фичам тоже лучше. значит и приложения будут.

waker ★★★★★
()
Ответ на: комментарий от waker

чем отличаются сторонние приложения от несторонних

«Сторонние» - которые не из Marketplace. В Android это делается стандартными средствами.

и что там не так с управлением файлами?

Ты не можешь скопировать в память архивы, не можешь сохранить MP3-файл и всё в таком духе. Считай, что нету файлов.

ну вот, а теперь и по девелоперским фичам тоже лучше

Ну как же.

значит и приложения будут

Платформе третий год пошёл, а даже нормального браузера нет.

Lighting ★★★★★
()
Ответ на: комментарий от ados

Это победа над быдло-ООП!

Наконец-то!

iZEN ★★★★★
()
Ответ на: комментарий от Lighting

«Сторонние» - которые не из Marketplace. В Android это делается стандартными средствами.

мне в андроиде ни разу данная функция не понадобилась.

Ты не можешь скопировать в память архивы, не можешь сохранить MP3-файл и всё в таком духе. Считай, что нету файлов.

хм. а как музыку слушать? что, и книжки тоже нельзя читать?

Платформе третий год пошёл, а даже нормального браузера нет.

ну вот теперь будет — нативщину же добавили, как без нее было браузер делать?

waker ★★★★★
()

И думаю, логично, что следующий вопрос: 3) А можно ли использовать только С/С++ для создания приложений/игр для iPhone?

Можно, но лучше выбрать что-нибудь по высокоуровневее: например Scheme (Gambit-C) или CL (mocl — еще не зарелизился, но можно попросить preview).

gensym ★★
()
Ответ на: комментарий от waker

мне в андроиде ни разу данная функция не понадобилась.

Это ведь ничего не значит. Такая возможность есть, это главное.

хм. а как музыку слушать? что, и книжки тоже нельзя читать?

Синхронизировать через Zune, конечно. А книги можно читать онлайн, например, но какой-нибудь FB2, ЕМНИП, не скопировать.

ну вот теперь будет — нативщину же добавили, как без нее было браузер делать?

Ключевое слово - «нормальный». Браузеры есть, но самый приличный из них - UC.

Lighting ★★★★★
()
Ответ на: комментарий от Lighting

Синхронизировать через Zune, конечно. А книги можно читать онлайн, например, но какой-нибудь FB2, ЕМНИП, не скопировать.

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

waker ★★★★★
()
Ответ на: комментарий от waker

Ну так я, вроде, сразу сказал, что там доступа к файловой системе нет, как съёмный диск не подключишь.

Только iTunes-like.

Lighting ★★★★★
()
Ответ на: комментарий от Lighting

я не сразу поверил что до такого дерьма кто-то мог додуматься :) ну кроме ябблов, но они вообще think different.

waker ★★★★★
()
Ответ на: комментарий от waker

Эта схема у MS уже на Zune откатана, там тоже загрузка музыки только через фирменный софт.

Lighting ★★★★★
()

Перспективнее Unity, на C# или даже javascript.

note173 ★★★★★
()

Движок hedgewars вообще на фрипаскале, и ничего - портирован и на иос, и на андроид.

unC0Rr ★★★★★
()

Обрати внимание лучше на Android. Порог вхождения ниже чем для айфона, макинтош не нужен. К тому же 75% процентов рынка смартов в мире. Прибыльность play маркета тоже постоянно растет. Не удивлюсь если к концу будущего года у андроида будет все 90% рынка.

mio ★★
()
Ответ на: комментарий от waker

ЕМНИП, там ещё и просто так использовать свою трубку для тестинга своих приложений нельзя. Нужно регистрироваться как разработчику и платить $.

Norgat ★★★★★
()
Ответ на: комментарий от trex6

ObjC позволяет использовать код на С++

Obj-C++, ObjC ничего про С++ не знает

потом вся обвязка к конкретной платформе - на языке оригинала (Java/ObjC/NativeActivity)

угу

Boy_from_Jungle ★★★★
()

Немного гуглил, и наткнулся на фразу, что большинство игр для Android пишут на С/С++. Посему второй вопрос: 2) Это так?

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

И думаю, логично, что следующий вопрос: 3) А можно ли использовать только С/С++ для создания приложений/игр для iPhone?

Можно, но ObjC все равно понадобится на низком уровне (инициализация, обработка сенсоров, статистика, ресурсы).

andreyu ★★★★★
()
Ответ на: комментарий от Norgat

ЕМНИП, там ещё и просто так использовать свою трубку для тестинга своих приложений нельзя. Нужно регистрироваться как разработчику и платить $.

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

waker ★★★★★
()
Ответ на: комментарий от waker

Учитывая стоимость лицензии разработчика в $100, можно прикупить себе нормальный эмулятор из китая. Хардварный.

P.S. Собираетесь издавать свои проекты сами?

trex6 ★★★★★
()
Ответ на: комментарий от trex6

Учитывая стоимость лицензии разработчика в $100, можно прикупить себе нормальный эмулятор из китая. Хардварный.

где можно купить эмуляторы нескольких десятков популярных комбинаций «android_version X resolution» за $100?

waker ★★★★★
()
Ответ на: комментарий от waker

Реально популярных версий андроид всего 2 или 3. Остальные делаются по принципу: если есть багрепорты - правим, если нет - это никому не нужно, так зачем вообще что-то делать.
С разрешениями мне проще, т.к. все делаю через GLES и тестирую на PC (просто растягиваю рамку окна туда-сюда и смотрю на результат).

trex6 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.