Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 31, средняя оценка - 4.71
frostyfull
32 / 32 / 8
Регистрация: 13.06.2014
Сообщений: 508
#1

Подскажите на каком языке лучше писать - Android

15.07.2014, 09:50. Просмотров 4316. Ответов 22
Метки нет (Все метки)

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

Пока еще окончательно не решено, хотелось бы начать делать основу, и мне интересно где лучше его писать, чтобы и на все операционки можно было скомпилировать и с переводом на код 1с желательно, чтоб не было проблем, хотя последнее думаю не так важно.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.07.2014, 09:50     Подскажите на каком языке лучше писать
Посмотрите здесь:

Android В какой среде и на каком языке вы пишите под андройд?
на каком языке написано ядро Андроида? Android
Android на каком языке программирования пишутся приложения?
Android Подскажите, как лучше сделать (справочник организаций)
На чём лучше писать 2D игры? Android
Android Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать?
Android Учусь писать под Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
2064 / 1806 / 562
Регистрация: 12.05.2014
Сообщений: 6,432
Завершенные тесты: 1
15.07.2014, 09:55     Подскажите на каком языке лучше писать #2
Постановка задачи, достойная любой девочки из HR.
Мы что-то задумали, не факт что это будет, я что-то хочу, как это сделать и на чем?
frostyfull
32 / 32 / 8
Регистрация: 13.06.2014
Сообщений: 508
15.07.2014, 10:00  [ТС]     Подскажите на каком языке лучше писать #3
Паблито, ну не я же задачу ставлю, она стоит в перспективе и от нашего начальства не дождешься вразумительного ответа
я как-то давненько читал статейку там про какой-то SDK особенный, с которого можно одним нажатием скомпилировать код для любой мобильной платформы.

Просто, опять же возвращаясь к нашему доблестному управлению, которое хочет связать его с базой 1с и чтоб оно было написано на 1с, в таком варианте оно будет жестко тупить и без доступа к интернету им будет невозможно пользоваться, поэтому смысла в этом варианте я не вижу никакого
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
15.07.2014, 11:02     Подскажите на каком языке лучше писать #4
Цитата Сообщение от frostyfull Посмотреть сообщение
читал статейку там про какой-то SDK особенный
Ладно, новичок, слушай:
Основной язык андроида - это ява! И только ява!
Иногда пишут вставки на си и си++ и оборачивают в яву. Это для скорости и взломоустойчивости.

Есть готовые "трансляторы" под разные языки. Они либо урезанные либо узкоспециализированные. В основном это игровые движки (например на с#). Но так-же поступил и новый Делфи. Он написал свой транслятор под большинство платформ и компилирует паскаль-текст в код под свой транслятор. Сам не пробовал, но на него (делфи) многие жалуются (и возвращаются на яву).

Ява по идее мультиплатформенная. И может быть запущена и под винду и под линукс и под мак. Но... ява под андроид использует гугл-андроид-апи! Это окошки, кнопочки и работа с ними. Под другие ОС подобного нет!
Насчет SDK! Он один! И действительно подходит под большинство андроидов (разные версии и качества). Есть нюансы, но если написал программу под старичка 2.3, то скорее всего (99%) он запустится и на 4.4.

1С сделала свой транслятор! 8.3 кажется. Но его тоже в руках не держал... и возможностей не знаю.
Еще слышал про "конструктор" от агент-плюс. Но тоже ничего хорошего не скажу. И он как и 1С платный и не дешевый...

Сам пишу программу связанную с 1С и скажу это было не легко (и жутко дорого, если бы продавал с исходниками). Свои протоколы обмена с 1С, синхронизации с севером, куча своих компонент, свой синхронизатор на стороне 1С в виде плагина. Кое-что можно сильно упростить на изначально внутреннем продукте (например через FTP), но все равно не на один месяц работы для новичка!

И еще совет: прежде чем задавать здесь вопросы, узнай у начальства задание в деталях! А не "непохо было бы бы... нашу 1С и на андроиде запустить в автономном режиме и на маке и к военному спутнику подключить... а теперь узнай как все это должно работать и сколько будет стоить..."
forcelain
6 / 6 / 1
Регистрация: 14.07.2014
Сообщений: 28
15.07.2014, 13:29     Подскажите на каком языке лучше писать #5
Для клиенсткой части можете посмотреть на кросс-платформенные SDK. Из наиболее популярных могу отметить PhoneGap, Appcelerator Titanium, Xmarin. Они сгодяться на более-менее простое приложение. Кстати, имейте в виду, что для сборки под ios Вам не обойтись без машины на Mac OS
Со стороны сервера наверняка эффективнее всего написать сервис, который предоставляет данные из 1с по HTTP(S), он же может и вносить изменения в базу. Таким образом у Вас будет унифицированный доступ и Вы не будете зависить от архитектуры клиента.
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
15.07.2014, 14:41     Подскажите на каком языке лучше писать #6
Цитата Сообщение от forcelain Посмотреть сообщение
для сборки под ios Вам не обойтись без машины на Mac OS
До андроида мечтал заняться ioc. Насколько слышал, можно работать или в эмуляторе, или даже на линуксе...

Цитата Сообщение от forcelain Посмотреть сообщение
всего написать сервис, который предоставляет данные из 1с по HTTP(S), он же может и вносить изменения в базу
Это как? Получится же онлайн клиент! От чего хотели избавиться... Иначе вполне можно перебросить терминал на сервер с 1С даже по слабому каналу!
forcelain
6 / 6 / 1
Регистрация: 14.07.2014
Сообщений: 28
15.07.2014, 14:50     Подскажите на каком языке лучше писать #7
Цитата Сообщение от Tester64 Посмотреть сообщение
Насколько слышал, можно работать или в эмуляторе, или даже на линуксе...
Для сборки приложения под ios нужен xcode, который ставится только на Mac OS. Для вышеприведенных кроссплатформенных SDK для сборки под ios тоже нужен xcode. Ну и до кучи, как таковых эмуляторов iPhone/iPad нет, есть симуляторы, которые тоже работают только на Mac OS
Паблито
2064 / 1806 / 562
Регистрация: 12.05.2014
Сообщений: 6,432
Завершенные тесты: 1
15.07.2014, 14:53     Подскажите на каком языке лучше писать #8
Цитата Сообщение от forcelain Посмотреть сообщение
Для сборки приложения под ios нужен xcode, который ставится только на Mac OS
...которая прекрасно работает на виртуальных машинах, на торрентах полно готовых сборок
forcelain
6 / 6 / 1
Регистрация: 14.07.2014
Сообщений: 28
15.07.2014, 14:57     Подскажите на каком языке лучше писать #9
Цитата Сообщение от Паблито Посмотреть сообщение
которая прекрасно работает на виртуальных машинах
если Вы так говорите, Вы скорее всего даже не пытались её поставить на виртуалку
Паблито
2064 / 1806 / 562
Регистрация: 12.05.2014
Сообщений: 6,432
Завершенные тесты: 1
15.07.2014, 15:01     Подскажите на каком языке лучше писать #10
Цитата Сообщение от forcelain Посмотреть сообщение
если Вы так говорите, Вы скорее всего даже не пытались её поставить на виртуалку
Не вводите людей в заблуждение! Все прекрасно работает на виртуальной машине.
frostyfull
32 / 32 / 8
Регистрация: 13.06.2014
Сообщений: 508
15.07.2014, 16:43  [ТС]     Подскажите на каком языке лучше писать #11
Цитата Сообщение от Паблито Посмотреть сообщение
Не вводите людей в заблуждение! Все прекрасно работает на виртуальной машине.
да я тоже что-то читал про виртуалки, вроде не должно проблем возникать
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
15.07.2014, 21:47     Подскажите на каком языке лучше писать #12
Под андроид что то серьезное только на Java. Да, вы можете сэкономить и написать на том же phonegap (врятли правда что то крупное), но потом с поддержкой и фиксами замотаетесь и в итоге придется переписать под каждую платформу отдельно. По поводу сборки проекта ТОЛЬКО из под мака и xcode - заблуждение (у нас написан и работает сервер автоматической сборки, который по каждому коммиту собирает android или же iOs приложение и рассылает в нужные отделы). Запустить из под эмулятора можно. Стандартные эмуляторы девайсов в iOs работают намного лучше андроидных стандартных (если конечно не запускать их на линуксе, тогда примерно одинаково). По поводу кросплатформенности Java - немного не соглашусь, apk исполняются не в JVM, а DVM так что без гемороя запустить обычное джавовское приложение не получится.
Теперь по поводу постановки задачи - постановка, мягко говоря ни к черту. Лучше всего делать между клиентом и базой какую то прослойку (не обязательно веб сервер, можно и в локальной сети), клиент не должен выполнять сложного функционала, следует по максимуму облегчить его работу, тогда в будущем будет проще его дописывать, хотя бы в том случае если поменяется структура данных от сервера.
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
15.07.2014, 22:20     Подскажите на каком языке лучше писать #13
Цитата Сообщение от NiRamz Посмотреть сообщение
По поводу кросплатформенности Java - немного не соглашусь
Я имел в виду не конечный, откомпиленый продукт, а чистые исходники... работа с текстом, базами, сокетами - перепиши под другое апи интерфейса, скомпиль и пользуйся (по идее)

Цитата Сообщение от NiRamz Посмотреть сообщение
у нас написан и работает сервер автоматической сборки, который по каждому коммиту собирает android или же iOs приложение и рассылает в нужные отделы
Если не секрет, ЗАЧЕМ? Не могу придумать применение? Фантазия забуксовала... Сборка мега-крупных проектов с сотней изменений от нескольких разработчиков? Или наоборот мега мелких - где меняется только дизайн и встроеные базы? Или это для простейших "конструкторов" приложений ("хочу блок A+B+E+H и дизайн №8"?

Цитата Сообщение от NiRamz Посмотреть сообщение
клиент не должен выполнять сложного функционала
Последние пару лет отслеживаю эту тенденцию! ПОЧЕМУ? Стереотип или некая не понятная мне логика? Да уже есть 4х ядерные устройства помощнее Пентиум 500(занизил за счет слабости APM-процессоров). А я успешно запускал 1С70 на пентиум 100. Почему клиент обязан работать в онлайне? Лично знаю десяток мест, где даже GSM не ловит... Базы - надежные, памяти хватает, дизайн можно допилить, проца для обрабоок/отчетов должно хватать, батареи тоже все долговечнее...

Цитата Сообщение от NiRamz Посмотреть сообщение
Под андроид что то серьезное только на Java.
А мега-шустрое на с/с++. Жаль что его так анти-рекламируют сами гуглы... Я его уже почти оценил! (жаль плохо еще знаю с++ для чего-то сложного)
frostyfull
32 / 32 / 8
Регистрация: 13.06.2014
Сообщений: 508
15.07.2014, 22:30  [ТС]     Подскажите на каком языке лучше писать #14
у меня еще вопрос, если к примеру между сервером и клиентом делать так называемую прослойку, если ее на разных языках писать, не должно конфликтов возникнуть?
Прослойка к примеру на 1с, а приложение на яве?
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
15.07.2014, 22:47     Подскажите на каком языке лучше писать #15
Цитата Сообщение от Tester64 Посмотреть сообщение
Я имел в виду не конечный, откомпиленый продукт, а чистые исходники... работа с текстом, базами, сокетами - перепиши под другое апи интерфейса, скомпиль и пользуйся (по идее)
В этом случаи - да.
Цитата Сообщение от Tester64 Посмотреть сообщение
Если не секрет, ЗАЧЕМ? Не могу придумать применение? Фантазия забуксовала... Сборка мега-крупных проектов с сотней изменений от нескольких разработчиков? Или наоборот мега мелких - где меняется только дизайн и встроеные базы? Или это для простейших "конструкторов" приложений ("хочу блок A+B+E+H и дизайн №8"?
очень большой проект, сборка в автоматическом режиме, рассылка по настройке тому же QA отделу актуальной версии прямо на аппарат.
Цитата Сообщение от Tester64 Посмотреть сообщение
Последние пару лет отслеживаю эту тенденцию! ПОЧЕМУ? Стереотип или некая не понятная мне логика? Да уже есть 4х ядерные устройства помощнее Пентиум 500(занизил за счет слабости APM-процессоров). А я успешно запускал 1С70 на пентиум 100. Почему клиент обязан работать в онлайне? Лично знаю десяток мест, где даже GSM не ловит... Базы - надежные, памяти хватает, дизайн можно допилить, проца для обрабоок/отчетов должно хватать, батареи тоже все долговечнее...
Потому что это андроид и под него большая гора девайсов, от слабых до мощных. Все зависит от задач, но по возможности от всех вычислений в обычном приложении лучше отказываться. сделал запрос на сервер, получил данные, распарсил, закешировал, вывел пользователю. Быстро, просто и не подвисает на девайсе чуть слабже.
Цитата Сообщение от Tester64 Посмотреть сообщение
А мега-шустрое на с/с++. Жаль что его так анти-рекламируют сами гуглы... Я его уже почти оценил! (жаль плохо еще знаю с++ для чего-то сложного)
мега шустрое, да не особо. Для постоянных вызовов не пойдет (поиграйтесь с профайлингов в ddms, посмотрите на время выполнения и сразу станет все понятно), для каких то крупных задач, как то декодинг видео - использовать натив.
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
16.07.2014, 02:23     Подскажите на каком языке лучше писать #16
Цитата Сообщение от NiRamz Посмотреть сообщение
Для постоянных вызовов не пойдет
Если можно здесь поподробнее!

Задумал некоторые сложные математические классы перевести на с++ с частым вызовом и обратной связью (например 5типальцевый мультитатч и свой формат базы данных типа dbf).
Еще задумал написать полностью свой интерфейс для сильно-графической программы - полная подмена компонент активити своими более... "сложными" аналогами (то что на яве изменить не получилось - пришлось свое писать).

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

Добавлено через 2 часа 5 минут
Цитата Сообщение от NiRamz Посмотреть сообщение
Потому что это андроид и под него большая гора девайсов, от слабых до мощных. Все зависит от задач, но по возможности от всех вычислений в обычном приложении лучше отказываться. сделал запрос на сервер, получил данные, распарсил, закешировал, вывел пользователю. Быстро, просто и не подвисает на девайсе чуть слабже.
Винда на подобное никогда не смотрела... поэтому ее программы очень долговечны... До сих пор у меня работает то что написал на тормознутом Вин95. И стимулируют ускорять проги покупкой нового харда. Уже идут акци - минапи19. А это вроде уже 4.х. А это уже не 2.3 и явно мощные! А кому нужны 2 ядра, если их можно использовать лишь для игр? Насколько я знаю ни одна звонилка пока не использовала 2е ядро... Понимаю тяжелые операции по гиганским базам (отчеты, аналитика), но ведь их-же можно сделать и на планшете! пусть дольше. Пусть думает 5 минут в фоне, вместо 5 секунд онлайн... И 4 секунды при подключении - "ускорение через облако". Но я заметил что этого пытаются избежать... и софт морально стареет уже через год-два на новых плашетах, вместо идти впереди харда! И сервера закрываются обесценивая софт. И оффлайн базы никто на устройствах предпочитает не хранить. Хотя я знаю людей, у которых в семье нет компа - только андроид планшеты.
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
16.07.2014, 09:49     Подскажите на каком языке лучше писать #17
Цитата Сообщение от Tester64 Посмотреть сообщение
Если можно здесь поподробнее!
я про повсеместное замещение Java на натив, в этом случаи выйграша не будет. При выполнении долгих вычислений должно помочь, если конечно правильно все сделать. и главное не забывать следить за памятью, это все таки не Java

По поводу второго момента - не смотрите на флагманы от того же самсунга, не у всех они есть. Про поддежку 2.3 я не говорю, но и при поддержке 3+ андроида выплывают разного рода динозавры.
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
16.07.2014, 12:02     Подскажите на каком языке лучше писать #18
Цитата Сообщение от NiRamz Посмотреть сообщение
я про повсеместное замещение Java на натив, в этом случаи выйграша не будет
Все равно не понимаю!
Согласен - на нем писать сложнее, больше контролировать (нет сборщика мусора - но это даже лучше/логичнее), тяжелее компоненты (можно упростить своими, как сделало Qt), нет удобного редактора/отладчика (наживное), двойная компиляция (натив + ява-apk).
Но... по идее... скомпилированное компактнее, инсталяция быстрее, скорость выше, совместимость относительно полная. Про взломоустойчивость - вообще молчу...

Насколько я знаю все игровые движки для ускорения ЦЕЛИКОМ делают на нативе! Я ошибаюсь? Если нет, то чем программы хуже? Если начать с написания интерфейса...

Про минусы обычно слышу только нечто невнятное... "не советую", "не стоит", "лучше не делать". От Вас первого услышал намеки на реальные замеры!
"поиграйтесь с профайлингов в ddms, посмотрите на время выполнения и сразу станет все понятно"
Для меня это еще тяжело... Я не линуксоид и на андроиде чуть больше года с нуля (как и на яве). Можете обьяснить результаты?

Пока все еще мечтаю написать на нативе свой программный движок для узкоспециализированных учетных программ. Но все не могу начать, пока не буду уверен что это будет ГАРАНТИРОВАННО не хуже чем на яве... Пока 50 на 50 - мега-круто то что вычитал и опробовал, и невнятные минусы от советников со стажем.
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
16.07.2014, 12:17     Подскажите на каком языке лучше писать #19
в нативе инициализация идет подольше объектов, дальше может работать скорее.
возьмем к примеру MediaPlayer (он нативный, если не в курсе), есть девайсы, которые виснут и выкидывают ANR просто на строке new MediaPlayer (HTC Flayer повисал в 70% случаях).

Цитата Сообщение от Tester64 Посмотреть сообщение
Для меня это еще тяжело... Я не линуксоид и на андроиде чуть больше года с нуля (как и на яве). Можете обьяснить результаты?
откройте DDMS, там есть кнопочка "Start method profiling", жмакаем на нее и начинаем выполнять какие то действия на девайсе, потом опять нажимаем и нам вываливается отчет с полным стеком вызовов по времени работы. Собственно начинаем его анализировать, очень удобная штука особенно при написании сложных списков, да и вообще при работе со вьюхами и анимацией. Можно точно отследить и оптимизировать время работы.

Добавлено через 52 секунды
а если HTC попадал в оставшиеся 30%, то повисал при вызове mp.release();
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.07.2014, 15:04     Подскажите на каком языке лучше писать
Еще ссылки по теме:

Android на каком языке писать
Подскажите план на прогу, как лучше написать и реализовать Android
Android В чем писать?
Что нужно писать в package? Android
Android На чем писать 3D редактор?!

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
16.07.2014, 15:04     Подскажите на каком языке лучше писать #20
Цитата Сообщение от NiRamz Посмотреть сообщение
в нативе инициализация идет подольше объектов, дальше может работать скорее.
Но ведь это говорит лишь о том что переход с явы на натив и назад происходит долго! А если инициализация происходит лишь при старте активити? А все остальное уже в нативе? Как в игровых движках!

Да и медиаплеер во всех средах не всегда надежен! Кривой медиа формат и получаем кучу исключений. У меня даже винамп на некоторых медиа-файлах вылетал. А некоторые gif-ы напрочь убивают ACDS.

Слышал что SQLite написан на нативе!!! И вся ОС построенна на его надежности... Unity3d тоже слышал что на нативе и его игры у меня не зависали...

Добавлено через 2 часа 24 минуты
Цитата Сообщение от frostyfull Посмотреть сообщение
у меня еще вопрос, если к примеру между сервером и клиентом делать так называемую прослойку, если ее на разных языках писать, не должно конфликтов возникнуть?
Прослойка к примеру на 1с, а приложение на яве?
Совсем забыли об авторе ветки...
Конфликт ОБЯЗАТЕЛЬНО будет! Большинство языков не совместимы! На то и нужны стандарты и собственные API. Вам нужно на разных языках лишь выбрать метод хранения промежуточных данных! Текстовый, база, xml, свой сокет-протокол, универсальны сокет протокол (например MySQL).
Выгружаете данные из 1С, выкладываете их в сеть, скачиваете из сети на андроид, разбираете полученное, выводите юзеру. Получаете от юзера данные, шифруете в некое хранилище, отправляете хранилище в сеть, закачиваете в 1С, разбираете полученное в 1С. Все что между программой юзера и 1С и называют прослойкой! И иногда она намного сложнее программы на андроиде...
Yandex
Объявления
16.07.2014, 15:04     Подскажите на каком языке лучше писать
Ответ Создать тему
Опции темы

Текущее время: 05:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru