5

Я собираюсь начать новый проект Titanium. До сих пор то, что я написал, теперь рассматривается как «Классический проект» (я писал приложения Titanium до Alloy).Appcelerator Titanium - Alloy vs Classic

Мне было интересно, стоит ли переключиться на сплав для моего нового проекта. Я знаю, что в основном, сплав компилируется в «Классический» титановый код перед компиляцией в проект java или проект цели-c. Я также знаю о большом преимуществе в этом процессе «предварительной компиляции», который должен маркироваться в коде сплава, который имеет отношение только к Android или iPhone и не относится к другому в скомпилированном «классическом» коде.

Мои главные проблемы - гибкость - как и в случае с «Классикой». Я чувствую, что у меня больше контроля над кодом и что происходит.

Вторая проблема: у меня есть элементы управления (например, открытое скользящее меню), которые не написаны для сплава - как я смогу иметь их как часть моего проекта?

Я начал спрашивать себя скорее, чтобы использовать сплав или нет после обнаружения (введенного в TiConf 2014) TI UX (https://github.com/jaraen/Ti.UX.Templates), который написан для сплава.

несколько других вопросов:

  1. как могу я старый код UI работать внутри сплава?
  2. Могу ли я иметь элементы управления, написанные для запуска сплава в «классическом» проекте?
  3. Может ли «классический» проект также отобразить код, не принадлежащий iOS/Android?
  4. есть ли разница в производительности между проектами сплава и классическими проектами? как насчет других проблем с гибкостью?

Благодаря

ответ

2

Только в случае, если кто-то видит этот вопрос и требует ответа:

Я также отвечал на этот вопрос в Appcelerator Q & А где я получил ответы на некоторые вопросы здесь: http://developer.appcelerator.com/question/177739/appcelerator-titanium---alloy-vs-classic

Ответ, который мне дал, является частичным, и более подробную информацию можно найти по следующим вопросам: http://developer.appcelerator.com/question/177542/classic-vs-alloy

0

I почувствовал, что переход на титановый сплав от классики был для меня прав. Я чувствовал, что классическая разработка Titanium не была достаточно структурирована и не давала мне достаточного руководства для хорошего способа структурирования моего приложения. Сплав обеспечивает структуру MVC для вашего кода, но классика не полностью препятствует тому, чтобы вы откатились от своей собственной или использовали одну из библиотек сообщества с возможностями MVC. В этом отношении, я думаю, я бы сказал, что более гибко использовать классику над сплавом, потому что вы можете выбрать, как выполнить свою структуру, а не встраивать в структуру титанового сплава. Сказанное, я никогда не чувствовал себя ограниченным Сплавом.

Как вы развиваетесь в титане, это ваши предпочтения. Нет правильного ответа на использование сплава или использование классики. Если кто-то работает лучше для вас, используйте его. Я чувствую, что структурированный подход к разделению дисплея и бизнес-логики Alloy предоставляет мне структуру, которая имеет смысл для меня при разработке приложения.

Я не нашел, что сплав менее гибкий, чем классический. Так как вы можете использовать классический код в своем проекте Alloy, вы можете в значительной степени сделать все в сплаве, что вы можете в классическом.Я уверен, что это некоторые случаи с краями, с которыми я не сталкивался, когда один может быть проще другого при кодировании определенного типа приложения. Может быть, классика менее гибкая, потому что я не думаю, что вы можете использовать Alloy в своем классическом приложении. Я не верю, что компилятор будет знать, как это сделать.

Всякий раз, когда я оцениваю, буду ли я использовать конкретную технологию, я делаю серию экспериментальных мини-программ, чтобы убедиться, что все возможности присутствуют в моих приложениях. Если я чувствую, что это не подходит или слишком сложно достичь этих требований, я не использую эту технологию. Например, когда я переключился на Alloy, я убедился, что библиотека Ti.Paint все равно будет работать. Если бы я этого не сделал, я бы все равно использовал классику.

Как и у классики, есть элементы управления для сплава. Там уже есть довольно гладкий сплайс-меню для раздвижного меню. Я использую библиотеку Ti.Paint, существовавшую до сплава и не являющуюся специальным модулем сплава.

http://gitt.io/ - достойная отправная точка для поиска модулей или виджетов Сплав.

index.xml

<Alloy> 
    <Window id="win"> 
     <View id="content" /> 
    </Window> 
</Alloy> 

1) В вашем index.js файла, вы бы следующим использовать классическое кодирование для манипулирования вида сплава.

index.js

var myview = Ti.UI.createView({ 
    backgroundColor: 'green' 
}); 
$.content.add(myview); 

2) Я не думаю, что вы можете использовать сплав код в классическом проекте. Как вы уже упоминали ранее, он должен выполнять перевод кода, и классический проект, скорее всего, пропустит этот шаг в этом процессе.

3) Вы спрашиваете, можете ли вы включить или удалить части кода на основе, если это Android или IOS? Вероятно, вы могли бы сделать это с помощью операторов include/require, стратегически размещенных между операторами if (Ti.Platform.osname == "android"), которые потребуют или не требуют кода. Если код предназначен для Android, для этого требуется, если он нужен для IOS, в этом случае.

4) Никогда не пытались проверить производительность между классическими и сплавными проектами. Я думаю, так как я переключился и никогда не замечал проблемы, которая беспокоила меня или моих клиентов, я никогда не задумывался над этим. Вполне возможно, что Alloy автоматически генерирует код, который в некоторых случаях медленнее. Я этого никогда не замечал.

Я чувствую, что эффективность, которую я получаю от использования сплава, намного превосходит это как непосредственную проблему. Плюс, если бы я чувствовал, что мне не нравится, как особый контроль был создан через Alloy, я мог бы использовать классический код и определить, что сам контроль, который контролирует определение из классического проекта.

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