5

Mam zamiar rozpocząć nowy projekt Titanium. Do tej pory napisałem to, co jest teraz uważane za "Klasyczny projekt" (pisałem aplikacje Titanium od czasów wcześniejszych niż Alloy).Appcelerator Titanium - Alloy vs Classic

Zastanawiam się, czy warto przejść na Alloy dla mojego nowego projektu. Wiem, że zasadniczo Alloy kompiluje się do "klasycznego" kodu Titanium przed skompilowaniem do projektu java lub project-c. Wiem także o dużej przewadze w tym procesie "wstępnej kompilacji", który ma oznaczać w kodzie stopu, który jest odpowiedni tylko dla Androida lub iPhone'a, a nie z tym drugim w skompilowanym kodzie "Classic".

Moją główną troską jest elastyczność - tak jak w przypadku "Classic" Czuję, że mam większą kontrolę nad kodem i tym, co się dzieje.

Po drugie, mam kontrole (np. Otwarte menu przesuwne), które nie są napisane dla stopu - w jaki sposób będę mógł je mieć w ramach mojego projektu?

Zacząłem zadawać sobie pytanie, czy użyć Stopu, czy nie, po znalezieniu (wprowadzonego w TiConf 2014) TI UX (https://github.com/jaraen/Ti.UX.Templates), który jest napisany dla Alloy.

kilka innych pytań:

  1. jak mogę mieć stary kod UI prowadzony wewnątrz stopu?
  2. Czy mogę mieć kontrolki napisane dla Alloy run w projekcie "Classic"?
  3. Czy projekt "Classic" może również mapować kod spoza systemu iOS/Android?
  4. Czy istnieje różnica w wydajności między projektami Alloy i Classic? co z innymi kwestiami związanymi z elastycznością?

Dzięki

Odpowiedz

0

I poczułem, że przejście na Titanium Alloy z klasyki było odpowiednie dla mnie. Czułem, że klasyczny rozwój Titanium nie był wystarczająco rozbudowany, ani nie dostarczył mi wystarczających wskazówek na temat dobrego sposobu na uporządkowanie mojej aplikacji. Alloy dostarcza strukturę MVC do twojego kodu, ale klasyczne nie uniemożliwiło ci całkowitego rozwijania własnych lub używania jednej z bibliotek społecznościowych z możliwościami MVC. Pod tym względem wydaje mi się, że bardziej elastycznie byłoby używać klasyki niż Alloy, ponieważ można wybrać sposób wykonania swojej struktury, zamiast dopasowywać się do struktury stopu tytanu. Mimo to nigdy nie czułem się ograniczony przez Alloy.

Jak rozwijasz się w Titanium, to twoje preferencje. Nie ma właściwej odpowiedzi na używanie Alloy lub używanie klasyki. Jeśli ktoś pracuje lepiej dla ciebie, użyj go. Uważam, że ustrukturyzowane podejście do rozdziału Alloy od wyświetlania i logiki biznesowej zapewnia mi strukturę, która ma sens dla mnie przy opracowywaniu aplikacji.

Nie stwierdziłem, że stop jest mniej elastyczny niż klasyczny. Ponieważ możesz używać klasycznego kodu w swoim projekcie Alloy, możesz zrobić wszystko w Alloy, co możesz zrobić w wersji klasycznej.Jestem pewien, że są to pewne przypadki skrajne, na które nie natknąłem się, gdzie jeden może być łatwiejszy niż inny przy kodowaniu określonego typu aplikacji. Być może klasyczny jest mniej elastyczny, ponieważ nie sądzę, że możesz używać Alloy w swojej klasycznej aplikacji. Nie wierzę, że kompilator wiedziałby, jak to zbudować.

Ilekroć oceniam, czy zamierzam użyć konkretnej technologii, wykonuję serię eksperymentalnych mini-programów, aby upewnić się, że wszystkie możliwości są obecne w moich aplikacjach. Jeśli czuję, że nie pasuje lub jest zbyt trudno osiągnąć te wymagania, nie korzystam z tej technologii. Na przykład, kiedy przełączyłem się na Alloy, upewniłem się, że biblioteka Ti.Paint nadal będzie działać. Gdyby tak nie było, nadal korzystałbym z klasyki.

Podobnie jak klasyczny, istnieją elementy sterujące stopu. Istnieje już całkiem sprytny moduł przesuwny z menu Alloy. Używam biblioteki Ti.Paint, która istniała przed Alloy i nie jest modułem specyficznym dla Alloy.

http://gitt.io/ to przyzwoity punkt wyjścia do wyszukiwania modułów/widżetów Alloy.

index.xml

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

1) W pliku index.js, trzeba użyć następujących klasyczny kodowanie manipulować widok na stopie.

index.js

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

2) Nie sądzę, można użyć kodu Alloy w swojej klasycznej projektu. Jak wspomniałeś wcześniej, musi wykonać tłumaczenie kodu, a klasyczny projekt prawdopodobnie pominie ten krok w procesie.

3) Czy pytasz, czy możesz dołączyć lub usunąć części kodu w zależności od tego, czy jest to system Android czy iOS? Prawdopodobnie możesz to zrobić za pomocą instrukcji include/require, strategicznie umieszczonych pomiędzy instrukcjami if (Ti.Platform.osname == "android"), które wymagają w kodzie, którego chcesz. Jeśli kod jest dla Androida, wymagaj tego, jeśli dotyczy on IOS, wymagaj w tym.

4) Nigdy nie próbowano sprawdzać wydajności między klasycznymi i opartymi na stopach projektami. Myślę, że odkąd zmieniłem i nigdy nie zauważyłem problemu, który nurtuje mnie lub moich klientów, nigdy nie zastanawiałem się nad tym. Jest całkowicie możliwe, że Alloy automatycznie generuje kod, który jest w niektórych przypadkach wolniejszy. Nigdy tego nie zauważyłem.

Uważam, że wydajność, jaką uzyskuję przy użyciu stopu, znacznie przewyższa to, co jest bezpośrednim zmartwieniem. Dodatkowo, gdybym poczuł, że nie podoba mi się sposób, w jaki konkretna kontrola została stworzona za pomocą Alloy, mógłbym użyć klasycznego kodu i zdefiniować tę kontrolę, sam mając kontrolę nad definicją z klasycznego projektu.

Powiązane problemy