2011-07-11 1 views
0

У нас есть огромный стек xml-файлов (около 5000+ файлов), возможно, около 80 МБ, если они не сжаты), все они являются конфигурациями устройств, которые используются для чтения & записывать данные & создавать пользовательские интерфейсы без любые языковые зависимости. Эти файлы XML можно портировать на любые технологии, такие как Android и Apple. Не все 5000+ загружаются с одним снимком в память, мы можем загружать 200 файлов в память на основе 1 подключенного устройства. У нас есть приложение на основе .NET/WPF, которое использует эти XML-файлы для создания пользовательского интерфейса и доступа к информации об устройстве через протоколы, такие как Modbus & Hart (не беспокоить протоколы сейчас). В любом месте нам нужна пользовательская логика, мы написали их в DLL (в .NET), и мы используем отражение IoC для загрузки этих DLL, создания объекта и доступа к ним через интерфейсы во время выполнения для завершения конфигурации XML. На рабочем столе мы строим интерфейс и загружаем конфигурациюScala или Java на основе IDE и области памяти

Теперь нам нужно разработать приложение для Android, которое также работает на телефоне и планшете. У меня 1-летний опыт работы на Java. Мы могли бы написать базовые модули, которые можно использовать как для телефона, так и для планшета и слоя пользовательского интерфейса, что просто для того, чтобы отобразить наш XML в качестве элементов пользовательского интерфейса. Мы знаем, как использовать Java Loader класса для создания экземпляра, чтобы вместо DLL мы могли собрать файл .jar в Android-мире и загрузить их (если возможно?) И получить доступ через интерфейсы. Когда мы загружаем наш XML, он будет потреблять от 80 до 100 МБ оперативной памяти (в WPF & .NET).

При взгляде на мир Android я не мог решить, стоит ли идти с Scala или Java. У нас нет эксперта по Java, который бы советовал нам. Работая над Python, я чувствую, что Scala является современным & хорошим выбором. Также я читал, что приложения Android, скомпилированные с использованием Scala, являются жирными (большими), занимают много времени, чтобы загрузиться.

Но, исходя из опыта Visual Studio, мы очень искусно развитая команда разработчиков ожидаем, что все пройдет через IDE. Также команда должна научиться Java/Scala независимо от нашего выбора с самого начала.

Если мы решили работать на Scala на Android, мы разве что эффективность памяти близка к Java? Также у нас есть достаточная поддержка IDE (Eclipse или NetBeans или IdeaJ) для Scala?

Я специально ищу работу с памятью (внутренности) и поддержкой IDE для создания приложений для Android. Нет обсуждения производительности или производительности.

ответ

1

My Scala IDE - Maven в одном окне терминала и Vim в другом. Браузер обслуживает справочную документацию. Если вы можете основывать свой процесс сборки на Maven, тогда любая IDE должна преуспеть. И поскольку вы много работаете с XML-файлами, я предлагаю вам основывать свой процесс сборки на Maven, а не на SBT.

Конечно, есть поддержка Eclipse для Scala, Intellij поддерживает ее, есть плагин Netbeans для Scala, даже расширение языка Komodo для Scala. Множество вариантов IDE для тестирования. Только разработчик знает, что для них работает.

Сделайте полдюжины идентичных виртуальных машин. Установите одну IDE на каждую из них. Попросите разработчиков (конечных пользователей IDE) протестировать их и выбрать тот, который им нужен. Выполняйте всю сборку и непрерывную интеграцию с SVN и Maven. Сделайте эту границу между личным набором инструментов разработчиков (IDE или Emacs или Vim) и поддерживаемыми инструментами разработки.

+0

У меня есть хороший опыт работы с emacs. Maven - отличная среда для сборки. Наличие IDE поможет команде. –

+0

На самом деле, если вы еще не застряли в SVN, неплохо серьезно подумать о git и mercurial. Оба являются распределенными системами управления версиями с практически идентичными возможностями. Mercurial имеет тенденцию быть легче учиться, чем git, и менее сложно работать. –

1

Если вы приехали с C#, я бы посоветовал выбрать Scala. Таким образом, вы могли бы фактически сохранить часть своей бизнес-логики, потому что хороший код на C#, возможно, немного похож на то, что делаются и в Scala. E. g. LINQ в классах коллекции C# и Scala (коллекции v.s Java).

Синтаксис немного отличается от Java/C#, но синтаксис вряд ли является реальной проблемой в наши дни.

Поддержка IDE на Java довольно хороша, но если вы исходите из Visual Studio, плагин Intellij (или Eclipse) + Scala может быть достаточно хорош для вас.

Если вы программируете тот же код в Java и Scala, потребление памяти должно быть одинаковым.

Вы должны иметь в виду, что вы должны использовать ProGuard для управления размером приложения Android.

Смежные вопросы