UNPKG

73.3 kBMarkdownView Raw
1## [1.17.3](https://github.com/tidev/alloy/compare/1.17.2...1.17.3) (2022-01-10)
2
3
4### Bug Fixes
5
6* pin colors version to avoid dos issue ([5f10891](https://github.com/tidev/alloy/commit/5f10891ef6a9f6357a41ef782390a8d6a9d2d1de))
7
8## [1.17.2](https://github.com/tidev/alloy/compare/1.17.1...1.17.2) (2022-01-04)
9
10
11### Bug Fixes
12
13* **deps:** bump xmldom to 0.8.0 ([#1270](https://github.com/tidev/alloy/issues/1270)) ([d0a4299](https://github.com/tidev/alloy/commit/d0a42991a02b1535d2e5d933365d67e9a3e81b63))
14
15## [1.17.1](https://github.com/tidev/alloy/compare/1.17.0...1.17.1) (2021-11-17)
16
17
18### Bug Fixes
19
20* **compile/hook:** error if unable to find the alloy cli ([166dc3b](https://github.com/tidev/alloy/commit/166dc3b61c2dba6fbeecf1d4d00a742dea15be99))
21
22# [1.17.0](https://github.com/tidev/alloy/compare/1.16.4...1.17.0) (2021-11-02)
23
24
25### Bug Fixes
26
27* **compile/sourcemap:** use path.join rather than manually constructing a path ([537107d](https://github.com/tidev/alloy/commit/537107debd06930ed3ea932395e2654e4996db48))
28
29
30### Features
31
32* **all:** set default backbone version ([fb845f7](https://github.com/tidev/alloy/commit/fb845f735be4ff6999807f14b740c37357145977))
33
34## [1.16.4](https://github.com/tidev/alloy/compare/1.16.3...1.16.4) (2021-09-17)
35
36
37### Bug Fixes
38
39* **compile:** provide filename to babel transform to allow using config files ([#1218](https://github.com/tidev/alloy/issues/1218)) ([ba0068e](https://github.com/tidev/alloy/commit/ba0068ed094906a474c3d6552e27b4e809414a2f))
40
41## [1.16.3](https://github.com/tidev/alloy/compare/1.16.2...1.16.3) (2021-06-29)
42
43
44### Bug Fixes
45
46* **generate:** mark name as optional as it is not required for jmk ([bc0e06f](https://github.com/tidev/alloy/commit/bc0e06f9169cc7a5e34c0f1e757f29af3a6ffc7b))
47* **new:** mark dir as optional as it is not required ([d151848](https://github.com/tidev/alloy/commit/d151848ad1ba7a8494b5005d016725645173ba4d))
48
49## [1.16.2](https://github.com/tidev/alloy/compare/1.16.1...1.16.2) (2021-06-15)
50
51
52### Bug Fixes
53
54* **compile:** don't create widget sourcemaps if sourcemaps are disabled ([b1259b1](https://github.com/tidev/alloy/commit/b1259b1feff867bdab8ebb29ce9ceae2f739290e))
55
56## [1.16.1](https://github.com/tidev/alloy/compare/1.16.0...1.16.1) (2021-06-08)
57
58
59### Bug Fixes
60
61* **compile:** generate source maps for lib files in widgets ([ba8d4c2](https://github.com/tidev/alloy/commit/ba8d4c22872c78927b8b231cc0f5e2cb0384525c))
62
63# [1.16.0](https://github.com/tidev/alloy/compare/1.15.4...1.16.0) (2021-03-03)
64
65
66### Features
67
68* support using OptionBar ([93c2df1](https://github.com/tidev/alloy/commit/93c2df14e190bb281ac191b9c85e529fc2b11dc6))
69
70## [1.15.4](https://github.com/tidev/alloy/compare/1.15.3...1.15.4) (2021-01-04)
71
72
73### Bug Fixes
74
75* **compile:** allow TabGroup as child of a NavigationWindow ([#1067](https://github.com/tidev/alloy/issues/1067)) ([d837e76](https://github.com/tidev/alloy/commit/d837e76f1e304a8704232020b56e03c0f806953b))
76
77## [1.15.3](https://github.com/tidev/alloy/compare/1.15.2...1.15.3) (2020-11-23)
78
79
80### Bug Fixes
81
82* improve check around whether widget is only tag in the view ([#1035](https://github.com/tidev/alloy/issues/1035)) ([7e4c3d6](https://github.com/tidev/alloy/commit/7e4c3d6e6ba7f3fbf3b9b4889ac1ec79e2b30192))
83
84# Alloy Release Notes
85
86### Release 1.15.2
87
88### Bug Fixes
89
90* [ALOY-1737](https://jira.appcelerator.org/browse/ALOY-1737) - Set items directly in ListView [#966](https://github.com/tidev/alloy/pull/966)
91* [ALOY-1738](https://jira.appcelerator.org/browse/ALOY-1738) - Fix handling of Require tags [#967](https://github.com/tidev/alloy/pull/967)
92
93### Release 1.15.1
94
95## Improvements
96
97* [ALOY-1735](https://jira.appcelerator.org/browse/ALOY-1735) - Create VS Code settings.json file on project creation [#965](https://github.com/tidev/alloy/pull/965)
98
99### Bug Fixes
100
101* [ALOY-1736](https://jira.appcelerator.org/browse/ALOY-1736) - Ensure package.json has correct fields [#965](https://github.com/tidev/alloy/pull/965)
102
103### Release 1.15.0
104
105### New Features
106
107* [ALOY-1732](https://jira.appcelerator.org/browse/ALOY-1732) - Add ability to run in the background without UI [#959](https://github.com/tidev/alloy/pull/959)
108* [ALOY-1733](https://jira.appcelerator.org/browse/ALOY-1733) - Add template for Alloy + webpack usage [#963](https://github.com/tidev/alloy/pull/963)
109
110### Improvements
111
112* [ALOY-1256](https://jira.appcelerator.org/browse/ALOY-1256) - Allow using a Widget as a primary control in an XML View [#949](https://github.com/tidev/alloy/pull/949)
113* [ALOY-1253](https://jira.appcelerator.org/browse/ALOY-1253) - Support WPATH in widget XML view attribute values [#948](https://github.com/tidev/alloy/pull/948)
114
115### Bug Fixes
116
117* [ALOY-1720](https://jira.appcelerator.org/browse/ALOY-1720) - Version string comparison will break for SDK 10.0.0 [#960](https://github.com/tidev/alloy/pull/960)
118* [ALOY-1734](https://jira.appcelerator.org/browse/ALOY-1734) - Declare Alloy globals before execution of app.js/alloy.js [#964](https://github.com/tidev/alloy/pull/964)
119
120### Release 1.14.6
121
122* [ALOY-1721](https://jira.appcelerator.org/browse/ALOY-1721) - Alloy global can no longer be accessed in styles [#955](https://github.com/tidev/alloy/issues/955)
123
124### Release 1.14.5
125
126* Update node.extend
127
128### Release 1.14.4
129
130* Correctly get node name in alloy global transform
131
132### Release 1.14.3
133
134* [ALOY-1710](https://jira.appcelerator.org/browse/ALOY-1710) - Fix undeclared variable error [#947](https://github.com/tidev/alloy/pull/947)
135
136### Release 1.14.2
137
138* [ALOY-1598](https://jira.appcelerator.org/browse/ALOY-1598) - Fix error with binding_no_persistence sample [#882](https://github.com/tidev/alloy/pull/882)
139* [ALOY-1693](https://jira.appcelerator.org/browse/ALOY-1693) - Maintain db connection during sql sync [#933](https://github.com/tidev/alloy/pull/933)
140* [ALOY-1633](https://jira.appcelerator.org/browse/ALOY-1633) - Inject _, Alloy, and Backbone variables into files when used rather than make available as globals [#911](https://github.com/tidev/alloy/pull/911)
141* [ALOY-1701](https://jira.appcelerator.org/browse/ALOY-1701) - XML: Unable to use platform namespace restriction on event handlers [#940](https://github.com/tidev/alloy/pull/940)
142* [ALOY-1705](https://jira.appcelerator.org/browse/ALOY-1705) - Fix to allow return outside of function [#939](https://github.com/tidev/alloy/pull/939)
143* [ALOY-1706](https://jira.appcelerator.org/browse/ALOY-1706) - Compile error if Alloy view filename contains hyphen [#938](https://github.com/tidev/alloy/pull/938)
144
145### Release 1.14.1
146
147#### Improvements
148
149* [ALOY-1697](https://jira.appcelerator.org/browse/ALOY-1697) - Add WebView "onlink" callback support
150
151#### Bug Fixes
152
153* [ALOY-1698](https://jira.appcelerator.org/browse/ALOY-1698) - Compile: Errors thrown during sourcemap step are not visible to a user
154
155### Release 1.14.0
156
157#### New Features
158
159* [ALOY-1632](https://jira.appcelerator.org/browse/ALOY-1632) Allow passing custom template directories to the `alloy new` command [#912](https://github.com/tidev/alloy/pull/912)
160* [ALOY-1646](https://jira.appcelerator.org/browse/ALOY-1646) Allow platform xml namespaces to be used with xml attributes in Alloy [#922](https://github.com/tidev/alloy/pull/922)
161 * XML attributes can now be prefixed with a platform to have the property be platform specific. For example `<Label android:text="Hello Android!" ios:text="Hello iOS!" windows:text="Hello Windows!" />`
162* [ALOY-1363](https://jira.appcelerator.org/browse/ALOY-1363) Add support to set object properties via XML [#765](https://github.com/tidev/alloy/pull/765)
163 * Properties that are objects (like `font`) can now be set in XML as well as TSS files. For example to set the `font.fontFamily` property use `<Label font.fontFamily="Roboto">Hello</Label>`
164* [ALOY-1316](https://jira.appcelerator.org/browse/ALOY-1316) Support use of $.args.* in any XML attribute or TSS property [#885](https://github.com/tidev/alloy/pull/885)
165
166#### Improvements
167
168* [ALOY-1629](https://jira.appcelerator.org/browse/ALOY-1629) Upgrade to babel 7 packages [#905](https://github.com/tidev/alloy/pull/905)
169* [ALOY-1652](https://jira.appcelerator.org/browse/ALOY-1652) Improve handling of missing directories and files in `alloy new` [#925](https://github.com/tidev/alloy/pull/925)
170* [ALOY-1682](https://jira.appcelerator.org/browse/ALOY-1682) Update to moment to 2.24.0 and update moment locales. [#928](https://github.com/tidev/alloy/pull/928)
171 * Previous version was 2.21.0
172 * New locales are ar-dz, ar-kw, ar-ly, bm, de-ch, dv, en-SG, en-ie, en-il, en-nz, es-do, es-us, fr-ch, ga, gd, gom-latn, gu, it-ch, kk, kn, ku, ky, lo, mi, mn, mt, nl-be, pa-in, sd, se, ss, sw, te, tet, tg, tlh, ug-cn, ur, uz-latn, x-pseudo, yo, zh-hk,
173* [ALOY-1683](https://jira.appcelerator.org/browse/ALOY-1683) Update to Underscore.js 1.9.1 [#929](https://github.com/tidev/alloy/pull/929)
174 * Previous version was 1.8.3
175* [ALOY-1648](https://jira.appcelerator.org/browse/ALOY-1648) Include Backbone.js 1.4.0 [#929](https://github.com/tidev/alloy/pull/929)
176 * Includes 42 new locales
177* [ALOY-1505](https://jira.appcelerator.org/browse/ALOY-1505) Add ability to set cancel and destructive properties on OptionDialog options [#879](https://github.com/tidev/alloy/pull/879)
178* [ALOY-1612](https://jira.appcelerator.org/browse/ALOY-1612) CLI: Be able to use Alloy source-maps in Safari Debugger / Chrome Dev-Tools [#893](https://github.com/tidev/alloy/pull/893)
179
180#### Fixes
181
182* [ALOY-1535](https://jira.appcelerator.org/browse/ALOY-1535) Only warn when using an AlertDialog with child views not restricted to Android [#810](https://github.com/tidev/alloy/pull/810)
183* [ALOY-1653](https://jira.appcelerator.org/browse/ALOY-1653) Runtime error on Android when using optiondialog and not declaring destructive or cancel properties [#926](https://github.com/tidev/alloy/pull/926)
184* [ALOY-1684](https://jira.appcelerator.org/browse/ALOY-1684) Calling sort for a collection does not call the dataFunction as of backbone 1.1.2 and above [#929](https://github.com/tidev/alloy/pull/929)
185* [ALOY-1690](https://jira.appcelerator.org/browse/ALOY-1690) sourcemaps not being generated for files under lib [#893](https://github.com/tidev/alloy/pull/893)
186* [ALOY-1691](https://jira.appcelerator.org/browse/ALOY-1691) Source maps report incorrect "file" value [#893](https://github.com/tidev/alloy/pull/893)
187
188
189### Release 1.13.10
190
191#### Fixes
192
193[ALOY-1686](https://jira.appcelerator.org/browse/ALOY-1686) Alloy: App crashes due to context used when accessing Ti.Database API
194
195### Release 1.13.9
196
197#### Fixes
198
199[ALOY-1650](https://jira.appcelerator.org/browse/ALOY-1650) Debugger does not hit breakpoints when running Android on Windows
200
201### Release 1.13.8
202
203#### Fixes
204
205[ALOY-1644](https://jira.appcelerator.org/browse/ALOY-1644) Selective compilation does not regenerate platform app.js on Windows
206
207### Release 1.13.7
208
209#### Fixes
210
211[ALOY-1641](https://jira.appcelerator.org/browse/ALOY-1641) iOS: TabbedBar usage on lower than SDK 8 is broken
212
213### Release 1.13.6
214
215#### Improvements
216
217[ALOY-1640](https://jira.appcelerator.org/browse/ALOY-1640) Update TabbedBar to use the Ti.UI namespace
218
219#### Fixes
220
221[ALOY-1637](https://jira.appcelerator.org/browse/ALOY-1637) ES6 code frame fails when using duplicate variable declarations
222[ALOY-1639](https://jira.appcelerator.org/browse/ALOY-1639) Update animation library to use `createMatrix3D/createMatrix2D` in place of the deprecated `create3DMatrix/create2DMatrix`
223
224### Release 1.13.5
225
226[ALOY-1638](https://jira.appcelerator.org/browse/ALOY-1638) Theme is "null" when a theme is defined in config.json
227
228### Release 1.13.1
229
230#### Fixed
231
232[ALOY-1622](https://jira.appcelerator.org/browse/ALOY-1622) Error on sql migration due to undeclared variable
233
234### Release 1.13.0
235
236#### Added
237
238[TIMOB-24817](https://jira.appcelerator.org/browse/TIMOB-24817) Support defining Alloy widgets in ListView templates
239
240### Release 1.12.0
241
242#### Improvements
243
244* [ALOY-1603](https://jira.appcelerator.org/browse/ALOY-1603): Update momentjs to 2.21.0
245 - View the momentjs release notes [here](https://github.com/moment/moment/blob/d0a45f0390c108cc18d71a3d3f38d040392483c5/CHANGELOG.md), previous version was 2.16.0
246
247#### Fixed
248
249 * [ALOY-1606](https://jira.appcelerator.org/browse/ALOY-1606): Android: Debugger not hitting breakpoints on Windows
250 * [ALOY-1602](https://jira.appcelerator.org/browse/ALOY-1602): Avoid some global variables to be only available in parent controller
251 - Thanks to @clementblanco for this contribution!
252 * [ALOY-1607](https://jira.appcelerator.org/browse/ALOY-1607): Fix BaseController.removeListener
253 - Thanks to @jormagar for this contribution!
254 * [ALOY-1609](https://jira.appcelerator.org/browse/ALOY-1609): Add plugins/ti.alloy to gitignore
255 * [ALOY-1599](https://jira.appcelerator.org/browse/ALOY-1599): Model Data binding problem with the first upper case in the model src
256 - Thanks to @darknos for this contribution!
257 * [ALOY-1595](https://jira.appcelerator.org/browse/ALOY-1595): alloy compile broken on node 9.3.0
258 * [PR-878](https://github.com/tidev/alloy/pull/878): Fix links in README
259 - Thanks to @dfrankow for this contribution!
260
261---
262### Release 1.11.0
263 * No changes, just a version bump
264
265---
266### Release 1.10.12
267
268#### Fixes and Improvements
269 * [ALOY-1597](https://jira.appcelerator.org/browse/ALOY-1597): Improve compile error messages to include a code frame that point to source locations
270 * [ALOY-1596](https://jira.appcelerator.org/browse/ALOY-1596): Do not copy Mobileweb assets on alloy new
271 * [ALOY-1592](https://jira.appcelerator.org/browse/ALOY-1592): Builtins: Reimplement measurement by convertUnits
272 * [ALOY-1534](https://jira.appcelerator.org/browse/ALOY-1534): Add support for Backbone 1.3.3 and Underscore 1.8.3
273 * [ALOY-1528](https://jira.appcelerator.org/browse/ALOY-1528): Checks the theme’s config.json for dependencies when
274 returning widget directories
275
276---
277### Release 1.10.11
278
279#### Fixed
280 * [ALOY-1168](https://jira.appcelerator.org/browse/ALOY-1168): Replace Underscore with Lodash for Alloy compile
281
282---
283### Release 1.10.10
284
285#### Fixed
286 * [ALOY-1593](https://jira.appcelerator.org/browse/ALOY-1593): Android Debugger: Some breakpoints not hit if "Resume"
287 is done anytime during debug
288
289---
290### Release 1.10.9
291
292#### Fixed
293 * [ALOY-1590](https://jira.appcelerator.org/browse/ALOY-1590): OS_IOS assigned to a variable causes a crash
294
295---
296### Release 1.10.8
297
298#### Fixed
299 * [CLI-1272](https://jira.appcelerator.org/browse/CLI-1272): Removed mobileweb and blackberry from studio config.json
300 template
301 * [ALOY-1584](https://jira.appcelerator.org/browse/ALOY-1584): Android: Ti.UI.Toolbar has no click event
302
303---
304### Release 1.10.7
305
306#### Fixed
307 * [ALOY-1318](https://jira.appcelerator.org/browse/ALOY-1318): DefaultIcon(-platform).png should be theme-able
308
309---
310### Release 1.10.6
311
312#### Fixed
313 * [CLI-1272](https://jira.appcelerator.org/browse/CLI-1272): Remove "mobileweb" from config template
314 * [CLI-1273](https://jira.appcelerator.org/browse/CLI-1273): Fallback if empty ResultSet is returned
315
316---
317### Release 1.10.5
318
319#### Fixed
320 * [ALOY-1582](https://jira.appcelerator.org/browse/ALOY-1582): Fix Ti.Platform.osname on Windows
321
322---
323### Release 1.10.4
324
325#### Fixed
326 * [ALOY-1574](https://jira.appcelerator.org/browse/ALOY-1574): Unable to use ES6 import/exports in alloy controllers
327 * [TIMOB-25269](https://jira.appcelerator.org/browse/TIMOB-25269): iOS: Add iPhone X screenshots
328 * [ALOY-1579](https://jira.appcelerator.org/browse/ALOY-1579): Support Titanium.UI.Android.DrawerLayout
329 * [ALOY-1578](https://jira.appcelerator.org/browse/ALOY-1578): Move Ti.UI.iOS.Toolbar to Ti.UI.Toolbar
330 * [ALOY-1572](https://jira.appcelerator.org/browse/ALOY-1572): Alloy doesn't compile external app.js
331 * [ALOY-1564](https://jira.appcelerator.org/browse/ALOY-1564): Broken Require data-binding event translation
332 * [ALOY-1524](https://jira.appcelerator.org/browse/ALOY-1524): Replace wrench with fs-extra
333
334---
335### Release 1.10.3
336
337#### Fixed
338 * [ALOY-1570](https://jira.appcelerator.org/browse/ALOY-1570): exports.baseController does not work since 1.10.0
339
340---
341### Release 1.10.2
342
343#### Fixed
344 * [ALOY-1567](https://jira.appcelerator.org/browse/ALOY-1567): Minification produces invalid code
345 * Remove the minification process from Alloy and handle it from the SDK instead.
346
347---
348### Release 1.10.1
349
350#### Fixed
351 * [ALOY-1565](https://jira.appcelerator.org/browse/ALOY-1565): KitchenSink v2 errors out on iOS
352 * Fix to use only 3 of babili's plugins to 'optimize' code and avoid modifying code in a way our old TiCore on iOS chokes on.
353
354---
355### Release 1.10.0
356
357#### Added
358 * [ALOY-1312](https://jira.appcelerator.org/browse/ALOY-1312): Upgrade Alloy to support ES6
359 * Migrates from using uglifyjs to parse and transform user and library code to using babel and babili
360
361---
362### Release 1.8.0
363
364#### Fixed
365 * [ALOY-1365](https://jira.appcelerator.org/browse/ALOY-1365): Added support
366 for Alloy-specific i18n and platform folders for both the whole Alloy app
367 and overridable at the theme level. Improved widget i18n support.
368
369---
370### Release 1.7.6 - (08/26/2015)
371
372#### Fixed
373 * [CLI-768](https://jira.appcelerator.org/browse/CLI-768): Alloy app fails to build on Windows with
374 error "Alloy compiler failed"
375
376---
377### Release 1.7.5 - (08/21/2015)
378
379#### Fixed
380 * [ALOY-1300](https://jira.appcelerator.org/browse/ALOY-1300): iOS Assets Catalog inconsistency between
381 Alloy and Classic
382
383---
384### Release 1.7.4 - (08/18/2015)
385
386#### Changed
387 * [ALOY-1239](https://jira.appcelerator.org/browse/ALOY-1239): Set Node 0.10 as minimum supported version
388
389#### Fixed
390 * [ALOY-1299](https://jira.appcelerator.org/browse/ALOY-1299): Cannot build a new project for iOS
391 due to missing appicons
392 * [ALOY-1226](https://jira.appcelerator.org/browse/ALOY-1226): To Do sample app - validate() fails
393 to prevent invalid (empty) items from being added
394
395---
396### Release 1.7.2 - (07/29/2015)
397
398#### Fixed
399 * [ALOY-1288](https://jira.appcelerator.org/browse/ALOY-1288): Windows: Label not visible when using default app.tss
400 * [ALOY-1287](https://jira.appcelerator.org/browse/ALOY-1287): Alloy styles compilation does not produce the
401 same results across successive compilations
402
403---
404### Release 1.7.1 - (07/21/2015)
405
406#### Added
407 * [ALOY-1280](https://jira.appcelerator.org/browse/ALOY-1280): Support CommandBar in XML markup on Windows
408
409#### Fixed
410 * [ALOY-1214](https://jira.appcelerator.org/browse/ALOY-1214): Button in Inheritance sample app difficult to click on iOS
411
412---
413### Release 1.6.2 - (06/11/2015)
414
415Alloy 1.6.2 is a patch release addressing high-priority issues from previous releases.
416
417#### Fixed Issues
418
419 * [ALOY-1272](https://jira.appcelerator.org/browse/ALOY-1272): Building an Alloy project with
420 the Titanium CLI on Windows fails
421
422---
423### Release 1.6.0 - (05/21/2015)
424
425[Full list of Issues that were addressed in Release 1.6.0](https://jira.appcelerator.org/issues/?filter=16721)
426
427#### Behavior Changes
428
429To prepare for forthcoming Windows Phone support, Alloy and the Titaium SDK now support the
430`windows` subfolder to include assets only for Windows Phone applications. If have existing
431`windows` subfolders, you will need to rename them and update any paths.
432
433#### New Features
434
435##### Backbone 1.1.2 Support
436
437Alloy 1.6.0 introduces support for Backbone 1.1.2. Due to breaking changes from
438Backbone 0.9.2 to 1.1.2, Alloy still uses Backbone 0.9.2 as its default
439Model and Collection implementation. You will need to update the configuration file to use the
440newer Backbone library, then update your application to fix the breaking behavior changes and take
441advantage of the new Backbone features.
442
443In the future, Backbone 1.1.2 will become the default and 0.9.2 support will be deprecated and
444eventually removed.
445
446For details, see the
447[Alloy Backbone Migration guide](http://docs.appcelerator.com/platform/latest/#!/guide/Alloy_Backbone_Migration).
448
449
450##### CLI extract-i18n command
451
452The Alloy CLI extract-i18n command now extracts localized strings from the XML files, in addition to
453the JavaScript and TSS files, to populate the `strings.xml` file.
454
455
456##### Underscore 1.6.0 Upgrade
457
458The underscore.js library was upgraded from version 1.4.4 to version 1.6.0.
459
460##### Windows Phone Support
461
462To prepare for forthcoming Windows Phone support, Alloy added several conditionals to support logic,
463UI elements and assets to only be included with Windows Phone applications.
464
465 * In controllers, use the `OS_WINDOWS` constant.
466 * In XML and TSS files, assign the `platform` attribute of UI elements a `windows` value.
467 * Under the component folders in the `app` folder, add `windows` subfolders to include assets only for Windows Phone.
468
469##### XML Markup Enhancements
470
471 * Support &lt;ActionView/&gt; as a child tag of the &lt;MenuItem&gt; object to set the `actionView` property
472 of `Titanium.Android.MenuItem`. Only supports the Android platform.
473
474
475---
476### Release 1.5.1 (10/2/2014)
477
478Below are the fixes included in this release.
479
480* [ALOY-1149](https://jira.appcelerator.org/browse/ALOY-1149). iOS: Gradient array properties are converted into objects
481
482---
483### Release 1.5.0 (09/29/2014)
484
485[Full list of Issues that were addressed in Release 1.5.0](https://jira.appcelerator.org/issues/?filter=16426)
486
487#### Deprecations and Removals
488
489##### Sample Widgets
490
491The sample widgets included in the Alloy repository have been removed.
492
493To find replacements for these widgets, or to find other widgets,
494we recommend you visit [http://gitt.io](http://gitt.io).
495
496
497##### localStorage Sync Adapter
498
499As of this Release, the `localStorage` sync adapter is deprecated and will be removed in a future
500release.
501
502Use the `properties` sync adapter instead.
503
504#### New Features
505
506##### Built-in Update
507
508The moment built-in now uses version 2.7.0 of the moment.js library.
509
510##### Data Binding Enhancements
511
512 * Support data binding for a Picker. Add data binding attributes to the PickerColumn and map model
513 attributes to the PickerRow properties.
514
515 * Support mixture of text and data binding notation when binding model attributes to XML
516 attributes, for example, `<Label text="first name: {model.first_name}"/>`.
517
518 * Support mapping multiple model attributes to a single XML attribute, for example,
519 `<Label text="{model.title} by {model.author}">`.
520
521For more details, see [Alloy Data Binding](http://docs.appcelerator.com/platform/latest/#!/guide/Alloy_Data_Binding).
522
523##### XML Markup/TSS Enhancements
524
525 * Support setting ActionBar properties in XML and TSS using the `ActionBar` element. For XML
526 markup, add the `<ActionBar/>` tag as a child of either a `<TabGroup/>` or `<Window/>`.
527 Before this Release, you defined ActionBar properties in the `Menu` element. Do not set the same
528 ActionBar properties in both the `ActionBar` and `Menu` elements.
529 For more details, see the "Android ActionBar" section in
530 [Alloy XML Markup](http://docs.appcelerator.com/platform/latest/#!/guide/Alloy_XML_Markup).
531
532 * Support `<KeyboardToolbar/>` as a child tag of the `<TextArea/>` object to set the `keyboardToolbar`
533 property of `Titanium.UI.TextArea`. Only supports the iOS platform.
534
535 * Support `<AndroidView/>` or `<View/>` as a child tag of the `<AlertDialog/>` and
536 `<OptionDialog/>` objects to set the `androidView` property. Only supports the Android platform.
537
538 * Support the localization function `L()` with the Label's `text` property or as node text, for
539 example, `<Label text="L('foo')"/>` or `<Label>L('foo')</Label>`.
540
541 * Support spaces with the comma-separated values in the `platform` attribute, for example,
542 `<Label platform="ios, android"/>`. Prior to this Release, placing spaces in the platform
543 attribute would throw an error.
544
545---
546### Release 1.4.1 (07/28/2014)
547
548Below are the fixes included in this release.
549
550* [ALOY-1091](https://jira.appcelerator.org/browse/ALOY-1091). id property of <Picker> other than 'picker' is treated as a variable
551* [ALOY-1094](https://jira.appcelerator.org/browse/ALOY-1094). Date or time pickers: cannot use Ti.UI.* type constants, must use Titanium.UI.* abbreviations
552
553---
554### Release 1.4.0 (07/17/2014)
555
556[Full list of Issues that were addressed in Release 1.4.0](https://jira.appcelerator.org/issues/?filter=16137)
557
558#### Deprecations
559
560##### Sample Widgets
561
562The sample widgets included in the Alloy repository are deprecated and will be removed from the repo
563in a future version. There are known issues with some of the widgets, which will not be addressed.
564
565If you would like to take over maintenance and support for any of these widgets, please contact Tim
566Poulsen at [tpoulsen@appcelerator.com](mailto:tpoulsen@appcelerator.com).
567
568To find replacements for these widgets, or to find other widgets,
569we recommend you visit [http://gitt.io](http://gitt.io).
570
571#### New Features
572
573##### Compiler Directives for Distribution Targets
574
575This release introduces two new compiler directives used to distinguish distribution targets:
576
577 * `DIST_ADHOC` : true if the current compiler target is built for iOS Ad Hoc distribution,
578 for example, if you set the `-T dist-adhoc` option when building with the Titanium CLI.
579 * `DIST_STORE` : true if the current compiler target is built for deployment to the
580 Google Play Store or iTunes App Store, for example, if you set the `-T dist-store` option when
581 building with the Titanium CLI.
582
583Use these compiler directives in your controller code or initializer file (`alloy.js`).
584
585Note that the `ENV_PRODUCTION` constant will be true too since these deployments are only for production builds.
586
587
588##### Controller-less Views
589
590As of this Release, Alloy provides a new way to create controller-less views. Each component in
591the controller-less view needs to be assigned an `id` attribute. Using the `Require` or `Widget`
592elements to include external views in the controller-less view does not work using this procedure,
593that is, you can include the external views, but the styles cannot be updated with the `updateViews`
594method.
595
596 1. Use the `Alloy.createController()` method to create a controller from the controller-less view.
597 2. Use the [updateViews()](http://docs.appcelerator.com/platform/latest/#!/api/Alloy.Controller-method-updateViews)
598 method with the controller instance to update the styles of the view components.
599 Pass a style dictionary as the only argument to the method. The style dictionary contains key-value pairs,
600 where the key is the id of the view component and the value is another dictionary containing
601 key-value pairs of attributes you want to set for the view component.
602 3. Use the `getView()` method with the controller instance to retrieve the view of the
603 controller, which can be added to another view.
604
605See also:
606
607 * [Alloy Guides: Views without Controllers](http://docs.appcelerator.com/platform/latest/#!/guide/Views_without_Controllers)
608 * [Controller-less View test app](https://github.com/tidev/alloy/tree/1_4_X/test/apps/testing/ALOY-362)
609
610
611#### Custom Query Styles
612
613This release introduces the ability to use a custom query to determine if a style should be
614applied or not. For example, the application can query if the device is running iOS 7 or later,
615then apply a style to compensate for view components appearing behind the status bar.
616
617To use a custom query:
618
619 1. Define a conditional statement, which returns a boolean value, and assign it to a property in
620 the `Alloy.Globals` namespace.
621 2. Assign the `if` attribute to an element in the XML file or in the conditional block of the TSS file to
622 the defined query with the `Alloy.Globals` namespace.
623
624See also:
625
626 * [Alloy Styles and Themes: Custom Query Styles](http://docs.appcelerator.com/platform/latest/#!/guide/Alloy_Styles_and_Themes-section-35621526_AlloyStylesandThemes-CustomQueryStyles)
627 * [Custom TSS queries test app](https://github.com/tidev/alloy/tree/1_4_X/test/apps/advanced/custom_tss_queries)
628
629##### Map Module Integration
630
631This release introduces better integration with the [ti.map module](http://docs.appcelerator.com/platform/latest/#!/api/Modules.Map),
632which includes the ability to define `Annotation` objects in XML markup and support for data-view binding.
633
634To add `Annotation` objects in the XML markup, use the `<Module>` tag to load the map module
635and create a map view. Add `<Annotation>` tags as children of the `<Module>` tag.
636
637To support data-view binding, set the `dataCollection` attribute to the name of the collection in
638the `<Module>` tag. Map attributes to bind in the `<Annotation>` tag. The `<Module>` tag also
639supports the `dataFilter` and `dataTransform` attributes.
640
641 <Alloy>
642 <Collection src="places"/>
643 <Window>
644 <Module id="mapview" module="ti.map" method="createView" dataCollection="places">
645 <Annotation latitude="{latitude}" longitude="{longitude}" title="{title}" />
646 </Module>
647 </Window>
648 </Alloy>
649
650See also:
651
652 * Alloy Example in [ti.map module](http://docs.appcelerator.com/platform/latest/#!/api/Modules.Map)
653 * [Map Module test app](https://github.com/tidev/alloy/tree/1_4_X/test/apps/testing/ALOY-800)
654 * [Map Module with Data Binding test app](http://github.com/tidev/alloy/tree/1_4_X/test/apps/testing/ALOY-503)
655
656
657##### Widget Component Generation
658
659The Alloy CLI can now generate controller, view and style components for widgets.
660Add the `--widgetname <WIDGET_NAME>` option to the `alloy generate` command
661to create components for the specified widget.
662
663##### Widget Themes
664
665This release supports themes for widgets. Widget themes work the same as project themes except for
666the placement of the files.
667
668Inside your theme folder (`app/themes/<THEME_NAME>`), create `widgets/<WIDGET_NAME>` folders,
669where `<THEME_NAME>` is the name of the theme and `<WIDGET_NAME>` is the name of the widget.
670
671Create two folders, `assets` and `styles`, to place your custom images and styles for your widget,
672respectively. The `assets` and `styles` folders need to be placed in the folder that is named after
673the widget.
674
675If the theme is enabled, the files in the widget theme folder will replace the default ones
676used by the widget.
677
678See also:
679
680 * "Themes" section in [Alloy Widgets](http://docs.appcelerator.com/platform/latest/#!/guide/Alloy_Widgets)
681 * [Widget Themes test app](https://github.com/tidev/alloy/tree/1_4_X/test/apps/testing/ALOY-378)
682
683
684##### XML Markup/TSS Enhancements
685
686 * Support the Android Action Bar in XML and TSS using the `Menu` element. To define an action bar in XML markup,
687 add the `<Menu>` tag as a child of either a `<Window>` or `<TabGroup>`. To add action items in XML markup, add
688 `<MenuItem>` tags as children of `<Menu>`. The `ActionBar` attributes may be defined in the XML
689 markup or TSS file. For details, see the "Android ActionBar" section in
690 [Alloy XML Markup](http://docs.appcelerator.com/platform/latest/#!/guide/Alloy_XML_Markup).
691
692 * Support `Button` attributes in `<LeftNavButton>` and `<RightNavButton>`. Instead of
693 creating a `Button` object for the `LeftNavButton` or `RightNavButton` elements, add the
694 `Button` attributes to either `LeftNavButton` or `RightNavButton` in either the XML markup
695 or the TSS file. For details, see the "iOS Navigation Button Shorthand" section in
696 [Alloy XML Markup](http://docs.appcelerator.com/platform/latest/#!/guide/Alloy_XML_Markup).
697
698 * Support Date Picker attributes. The
699 [maxDate](http://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.Picker-property-maxDate)
700 [minDate](http://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.Picker-property-minDate),
701 and [value](http://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.Picker-property-value)
702 attributes now accept date strings. For Alloy XML and TSS files, use a date string that can
703 be parsed by the [moment.js constructor](http://momentjs.com/docs/#/parsing/string/), which includes
704 ISO-8601 and RFC2822 dates.
705
706 * Support the localization function, `L()`, as node text for the `OptionDialog`'s `<Option>` tag.
707
708 * Support [Titanium.UI.RefreshControl](http://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.RefreshControl)
709 in XML markup. Add the `<RefreshControl>` tag as a child of either `<ListView>` or `<TableView>`.
710
711 * Add shorthand notation for `TextField` keyboard attributes. When specifying either the `keyboardType` or
712 `returnKeyType` attributes, you do not need to use `Titanium.UI.KEYBOARD_` or `Titanium.UI.RETURNKEYTYPE_`
713 as part of the constant name. For details, see the "TextField Keyboard Shorthands" section in
714 [Alloy XML Markup](http://docs.appcelerator.com/platform/latest/#!/guide/Alloy_XML_Markup).
715
716 * Support `undefined` as a settable value in the TSS files. Assign `undefined` to an attribute
717 to unset it. Do not encase `undefined` in quotes.
718
719See also:
720
721 * [Action Bar test app](https://github.com/tidev/alloy/tree/1_4_X/test/apps/testing/ALOY-784)
722 * [Button Shorthand test app](https://github.com/tidev/alloy/tree/1_4_X/test/apps/testing/ALOY-714)
723 * [Date Picker test app](https://github.com/tidev/alloy/tree/1_4_X/test/apps/testing/ALOY-263)
724 * [Options Dialog with Localization Function test app](https://github.com/tidev/alloy/tree/1_4_X/test/apps/testing/ALOY-1009)
725 * [Refresh Control test app](https://github.com/tidev/alloy/tree/master/test/apps/testing/ALOY-910)
726 * [Text Field Keyboard Shorthand test app](https://github.com/tidev/alloy/tree/1_4_X/test/apps/testing/ALOY-927)
727
728
729#### Known Issues
730
731##### Alloy Plugin
732
733Alloy 1.4.0 includes changes to the Alloy plugin, which is used by Studio to compile and launch your
734project. These changes will be applied automatically the first time you build a project after
735updating to 1.4.0. However, because the first build uses the old plugin, there is a small chance
736that it will fail. Retrying the build should resolve the issue, or you can manually update the
737plugin with the following command:
738
739 alloy install plugin [path_to_project]
740
741If you enter this command while in your project's folder, omit the path.
742
743CLI users are not affected by this change.
744
745
746#### New APIs
747
748The following APIs are new in Release 1.4.0.
749
750|API|Type|Note|
751|---|----|----|
752|`Alloy.Controller.updateViews`|method|Applies a dictionary of properties to the components of a view in the controller.|
753
754---
755### Release 1.3.1 (02/10/2014)
756
757Below are the new key features and fixes in this release. Also see the
758[full list of changes](https://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=15666).
759
760* [ALOY-905](https://jira.appcelerator.org/browse/ALOY-905). Alloy now supports TiSDK 3.0.0+ again!
761* [ALOY-907](https://jira.appcelerator.org/browse/ALOY-907). Fixed unhandled exception errors in invalid JS.
762* [ALOY-912](https://jira.appcelerator.org/browse/ALOY-912). Better handling of runtime conditionals on TableView proxy properties.
763* [ALOY-914](https://jira.appcelerator.org/browse/ALOY-914). Show Alloy appicon instead of Titanium default.
764* [ALOY-916](https://jira.appcelerator.org/browse/ALOY-916). Copy theme assets to platform-specific folders.
765* [ALOY-920](https://jira.appcelerator.org/browse/ALOY-920). Fixes compile time error when using should.js.
766* [ALOY-922](https://jira.appcelerator.org/browse/ALOY-922). Fixes error when using proxy properties on a TextField in an ItemTemplate.
767* [ALOY-937](https://jira.appcelerator.org/browse/ALOY-937). Fixes copying of platform-specific widget assets.
768
769---
770### Release 1.3.0 (12/20/2013)
771
772[Full list of Issues that were address in Release 1.3.0](https://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=15575).
773
774#### Breaking Changes
775
776##### Titanium SDK Support
777
778Due changes in the application build process for both Alloy and the Titanium SDK,
779Alloy 1.3.0 only supports Titanium SDK 3.2.0 and later. You can find details on this in the following tickets:
780
781* [TIMOB-14884](https://jira.appcelerator.org/browse/TIMOB-14884)
782* [ALOY-760](https://jira.appcelerator.org/browse/ALOY-760)
783
784#### New Features
785
786##### XML Markup Enhancements
787
788 * Support children elements for Widget and Require elements. View objects created using the Widget
789 and Require elements can contain child view elements, which are added as children views of the
790 parent Widget or Require view object. Example: [require_children](https://github.com/tidev/alloy/tree/master/test/apps/advanced/require_children)
791
792 * Support `<HeaderView>`, `<FooterView>` and `<PullView>` as children tags of the `<ListView>` object to
793 specify the `headerView`, `footerView` and `pullView` properties of `Titanium.UI.ListView`.
794
795 * Support `<SearchBar>` and `<SearchView platform="android>` as children tags of the `<ListView>` object to
796 specify the `searchView` property of `Titanium.UI.ListView`.
797
798 * Support `<HeaderView>` and `<FooterView>` as children tags of the `<ListSection>` object to
799 specify the `headerView` and `footerView` properties of `Titanium.UI.ListSection`.
800
801 * Support `<LeftButton>`, `<RightButton>` and `<KeyboardToolbar>` as children tags of the `<TextField>` object to
802 specify the `leftButton`, `rightButton` and `keyboardToolbar` properties of `Titanium.UI.TextField`.
803 These properties are only supported on the iOS platform.
804
805 * Support shorthand method for declaring iOS system buttons. When specifying the `system`
806 attribute for a Button object, you do not need to use the `Ti.UI` namespace. For example, the
807 following markup creates the iOS camera button:
808
809 <Button systemButton="CAMERA"/>
810
811##### TSS Enhancements
812
813 * Support for bitwise operators, which includes bit shifting ('>>', '<<', and '>>>'), bitwise AND
814 ('&'), bitwise OR ('|') and bitwise XOR ('^').
815
816##### Model Enhancements
817
818 * Support fetching a model using its ID attribute rather than an SQL query with the SQLite sync adapter.
819 For example, you can fetch a model by using the attribute:
820
821 myModel.fetch({id: 123});
822
823 rather than using an SQL query:
824
825 myModel.fetch({query: 'select * from ... where id = ' + 123 });
826
827##### New Compiler Hook
828
829This Release added a new compiler task called `pre:load` that is triggered before copying assets and
830other resources to the project's `Resources` folder. This task is executed near the beginning of
831the Alloy compiliation process, after the project is cleaned.
832
833##### Support Platform and Environment-Specific Project Configurations
834
835In the project configuration file (`config.json`), you can combine the `os` and `env` keys together
836to specify an environment and platform configuration. For example, the code below specifies
837configurations for iOS test, iOS development and iOS production:
838
839 "os:ios env:production": {
840 "foo": "os:ios env:production"
841 },
842 "os:ios env:development": {
843 "foo": "os:ios env:development"
844 },
845 "os:ios env:test": {
846 "foo": "os:ios env:test"
847 }
848
849Previously, you could not specify both a platform and environment together.
850
851##### New APIs
852
853The following APIs are new in Release 1.3.0.
854
855|API|Type|Note|
856|---|----|----|
857|`Alloy.builtins.animation.flip`|method|Transitions from one view to another using a 3D flip animation (iOS only).|
858|`Alloy.builtins.animation.flipHorizontal`|method|Transitions from one view to another using a horizontal flip animation (iOS only).|
859|`Alloy.builtins.animation.flipVertical`|method|Transitions from one view to another using a vertical flip animation (iOS only).|
860|`Alloy.builtins.animation.HORIZONTAL`|constant|Constant to specify a horizontal flip (iOS only).|
861|`Alloy.builtins.animation.VERTICAL`|constant|Constant to specify a vertical flip (iOS only).|
862
863---
864
865### Release 1.2.2 (18 September 2013)
866
867* [ALOY-813](https://jira.appcelerator.org/browse/ALOY-813). Fixed bug handling unicode characters in XML attributes.
868* [ALOY-817](https://jira.appcelerator.org/browse/ALOY-817). Fixed bug adding XML event handlers to UI components that use custom namesapces.
869* [ALOY-815](https://jira.appcelerator.org/browse/ALOY-815) & [ALOY-818](https://jira.appcelerator.org/browse/ALOY-818). Support Ti.UI.iOS.NavigationWindow API in XML
870
871---
872### Release 1.2.1 (27 August 2013)
873
874* [ALOY-789](https://jira.appcelerator.org/browse/ALOY-789). Fixed improper handling of printable escape characters in TSS.
875* [ALOY-802](https://jira.appcelerator.org/browse/ALOY-802). Fixed escape character handling issue in TSS on Windows.
876* [ALOY-803](https://jira.appcelerator.org/browse/ALOY-803). Fixed issue with controller subfolders on Windows.
877* [ALOY-804](https://jira.appcelerator.org/browse/ALOY-804). Fixed issues with `jake` on Windows.
878
879---
880### Release 1.2.0 (15 August 2013)
881
882* [Full list of Issues that were addressed in Release 1.2.0](https://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=15334)
883* Fixes for a [handlful of Windows issues](https://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=15445) are available in the latest 1.2.1 release candidate. You can install it like this: `[sudo] npm install -g alloy@1.2.1-cr2`.
884
885#### New Features
886
887##### Dynamic Styling
888
889As of this Release, Alloy supports changing styles dynamically during runtime. There are two methods
890to support dynamic styling in Alloy. You can either generate a dynamic style dictionary that can be
891passed to `applyProperties` or a create method, or modify TSS class styles to an existing component on
892the fly.
893
894For more information, see:
895* [Dynamic Styles guide](http://docs.appcelerator.com/platform/latest/#!/guide/Dynamic_Styles)
896* [dynamic_styling Sample](https://github.com/tidev/alloy/tree/master/test/apps/advanced/dynamic_styling)
897* Refer to the "New APIs" section below.
898
899##### ListView in Markup
900
901ListView objects can now be created in markup and with collection-view binding enabled.
902
903For more information, see:
904* [listview Sample](https://github.com/tidev/alloy/tree/master/test/apps/ui/listview)
905* [binding_listview Sample](https://github.com/tidev/alloy/tree/master/test/apps/models/binding_listview)
906* [ListView API Reference](http://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.ListView)
907* [Alloy Data Binding guide](https://github.com/tidev/alloy/tree/master/test/apps/models/binding_listview)
908
909##### Module Markup Element
910
911Use the new `Module` XML element to include a view from a native module.
912
913For more information, see:
914* "Module XML Element" section in the [Alloy XML Markup guide](http://docs.appcelerator.com/platform/latest/#!/guide/Alloy_XML_Markup)
915* [native_modules Sample](https://github.com/tidev/alloy/tree/master/test/apps/advanced/native_modules)
916
917##### CLI Command to Generate Styles
918
919Style files can be generated using the Alloy CLI. The Alloy CLI extracts the IDs and classes from
920the markup file to create a skeleton style file.
921
922For more information, see the "Generating a Style" section in the
923[Alloy Tasks guide](http://docs.appcelerator.com/platform/latest/#!/guide/Alloy_Tasks).
924
925#### New APIs
926
927The following APIs are new in Release 1.2.0.
928
929|API|Type|Note|
930|---|----|----|
931|`Alloy.Controller.addClass`|method|Adds a TSS class to the specified view object.|
932|`Alloy.Controller.createStyle`|method|Creates a dictionary of properties based on the specified styles.|
933|`Alloy.Controller.removeClass`|method|Removes a TSS class from the specified view object.|
934|`Alloy.Controller.resetClass`|method|Applies TSS classes to the specified view object and removes any applied classes that are not specified.|
935|`Alloy.Controller.UI.create`|method|Creates a Titanium UI object with the specified styles.|
936
937---
938### Release 1.1.3 (17 June 2013)
939
940#### New Features
941
942* [ALOY-661](https://jira.appcelerator.org/browse/ALOY-661). Code Processor: Get Alloy to recompile before an analysis
943
944---
945### Release 1.1.2 (2 May 2013)
946
947#### New Features
948
949* [ALOY-424](https://jira.appcelerator.org/browse/ALOY-424). Blackberry support
950
951#### Bug Fixes
952
953* [ALOY-628](https://jira.appcelerator.org/browse/ALOY-628). Error loading platform-specific theme-based styles
954* [ALOY-632](https://jira.appcelerator.org/browse/ALOY-632). Builtins being copied into Resources directory more than once causing runtime errors
955* [ALOY-633](https://jira.appcelerator.org/browse/ALOY-633). Compiler directives (OS_IOS) undefined when referenced inside a widget
956* [ALOY-635](https://jira.appcelerator.org/browse/ALOY-635). Styles not being sorted properly among global, controller, platform-specific, and theme
957
958---
959### Release 1.1.1 (19 April 2013)
960
961Just 2 quick fixes to reduce the size of the Alloy distribution and fix one regression.
962
963* [ALOY-625](https://jira.appcelerator.org/browse/ALOY-625). app.tss not being applied to views that don't have view-specific styles.
964* [ALOY-626](https://jira.appcelerator.org/browse/ALOY-626). Remove unneeded resources from samples/mapping.
965
966---
967### Release 1.1.0 (April 2013)
968
969 * [Full list of Issues that were addressed in Release 1.1.0](https://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=15057)
970
971#### Breaking Changes
972
973#### Alloy Run Command
974
975The Alloy run command is obsoleted by the Titanium CLI build command.
976
977If you are only using command-line tools to build your Alloy project, after using the
978`alloy compile` command to convert the Alloy files to Titanium files, use the `titanium build`
979command to build and run the Titanium code.
980
981
982### New Features
983
984#### Debugging in Studio
985
986As of Titanium Studio 3.1.0, breakpoints added in Alloy Controllers and the `alloy.js` file are
987recognized by the Studio Debugger. These breakpoints map to the code in the generated Titanium
988files located in the `Resources` directory.
989
990CommonJS modules and Alloy Models will support this feature in a future release of Titanium
991Studio and Alloy. You still need to add breakpoints for these files in the generated Titanium
992files located in the `Resources` directory.
993
994Refer to [Alloy Debugging](http://docs.appcelerator.com/platform/latest/#!/guide/Alloy_Debugging_and_Troubleshooting)
995for more information.
996
997
998#### Content Assistance in Studio
999
1000As of Titanium Studio 3.1.0, content assistance is supported in Alloy Views (XML markup and TSS
1001files) and Alloy Controllers.
1002
1003For XML markup, start typing the XML element, attribute or `on` attribute (for events)
1004to receive content assistance.
1005
1006For TSS files, type the name of the element, class (element prefixed with `.`) or ID name
1007(element prefixed with `#`) to receive content assistance.
1008You need to type the entire name of the element, class or ID name to receive assistance, and
1009the class and ID name must exist in the associated XML markup file.
1010
1011For controller code, type the ID name (element prefixed by `$.`) or start typing a namespace
1012(Alloy, Titanium, etc.) to receive content assistance. You need to type the entire name of the ID
1013in order to receive assistance and it must exist in the associated XML markup file.
1014
1015Some of the Alloy-specific attributes, such as `platform`, `formFactor` and the data binding
1016attributes, will be supported in a future release of Titanium Studio.
1017
1018Refer to the "Using Content Assistance" section in
1019[Alloy Tasks](http://docs.appcelerator.com/platform/latest/#!/guide/Alloy_Tasks) for more information.
1020
1021
1022#### Expanded Support for Collection-View Binding
1023
1024ScrollableView, CoverFlowView, ButtonBar, ToolBar and TabbedBar objects support collection-view
1025binding.
1026
1027For ButtonBar, ToolBar and TabbedBar, refer to the
1028[binding_bars example](https://github.com/tidev/alloy/tree/1_1_X/test/apps/models/binding_bars).
1029
1030For CoverFlowView, refer to the
1031[binding_coverflow example](https://github.com/tidev/alloy/tree/1_1_X/test/apps/models/binding_coverflow).
1032
1033For ScrollableView, refer to the
1034[binding_scrollableview example](https://github.com/tidev/alloy/tree/1_1_X/test/apps/models/binding_scrollableview).
1035
1036Refer to [Alloy Data Binding](http://docs.appcelerator.com/platform/latest/#!/guide/Alloy_Data_Binding)
1037for more information.
1038
1039
1040#### Widget Enhancements
1041
1042Various enhancements to widgets:
1043
1044 * Widgets have their own create methods. Use `Widget.createController()`,
1045 `Widget.createWidget()`, `Widget.createModel()` and `Widget.createCollection()`
1046 instead of the `Alloy.create*` methods to create components relative to the
1047 widget context rather than the Alloy project. The method parameters
1048 are the same as the `Alloy.create*` methods.
1049
1050 * Widgets support their own models and collections. Use models and collections the same
1051 as with an Alloy project except use the new Widget create methods, that is, use `Widget.createModel`
1052 and `Widget.createCollection` instead of `Alloy.createModel` and `Alloy.createCollection`,
1053 respectively to create models and collections inside a widget.
1054
1055Refer to [Alloy Widgets](http://docs.appcelerator.com/platform/latest/#!/guide/Alloy_Widgets) for
1056more information.
1057
1058#### XML Markup Enhancements
1059
1060Various enhancements to XML markup:
1061
1062 * Support `<LeftNavButton>` and `<RightNavButton>` as children tags of the `<Popover>` object to
1063 specify the `leftNavButton` and `rightNavButton` properties of `Titanium.UI.iPad.Popover`.
1064
1065 * Support `<HeaderView>` as a child tag of the `<TableViewSection>` object to specify the
1066 `headerView` property of `Titanium.UI.TableViewSection`.
1067
1068 * Support the `name` attribute with the `<Widget>` and `<Require>` tags to specify a widget
1069 view-controller to use besides `widget.xml`/`widget.js`.
1070
1071Refer to [Alloy XML Markup](http://docs.appcelerator.com/platform/latest/#!/guide/Alloy_XML_Markup)
1072for more information.
1073
1074---
1075### 1.0.0 (19 February 2013)
1076
1077### ** Breaking Changes **
1078
1079The following changes alter the behavior of the Alloy Framework from previous versions and may
1080require code changes to your applications.
1081
1082#### Titanium SDK Support
1083
1084Alloy 1.0 only supports Titanium SDK 3.0 and later. Previous versions of Alloy supported Titanium
1085SDK 2.1.x and later.
1086
1087
1088#### Backbone Events API Removed from View Proxies and Controllers
1089
1090For Alloy View proxies and Controllers, that is, objects either referenced with `$.myid` or
1091created with `createController` and `getView` methods, you cannot use the Backbone Events
1092API `on`, `off` and `trigger` methods to bind and unbind event callbacks, or fire events.
1093Use the Titanium SDK API `addEventListener`, `removeEventListener` and `fireEvent` methods instead.
1094
1095Previously, Alloy View proxies and Controllers could use the Backbone Events API.
1096
1097For Alloy Collection and Model objects, use the Backbone Events API not the Titanium SDK event
1098listener API. This has not changed from previous versions of Alloy.
1099
1100
1101#### Alloy Model-View Binding
1102
1103Model-view binding with the Ti.UI.View proxy should be considered experimental. On the iOS
1104platform, the view items are not being repopulated correctly. To follow this issue, see
1105[ALOY-485](https://jira.appcelerator.org/browse/ALOY-485).
1106
1107Model-view binding with TableViews works fine and does not suffer from any known issues.
1108
1109For more information, see the [Alloy Data Binding guide](http://docs.appcelerator.com/platform/latest/#!/guide/Alloy_Data_Binding).
1110
1111
1112#### Custom Sync Adapter
1113
1114If you created a custom sync adapter, the order of the passed parameters of the
1115`module.exports.sync` method
1116has changed to match the `Backbone.sync` method.
1117
1118Prior to 1.0.0, the order was:
1119
1120 module.exports.sync(model, method, options)
1121
1122For 1.0.0 and later, the order is now:
1123
1124 module.exports.sync(method, model, options)
1125
1126To update your custom sync adapter, just switch the order of the `method` and `model` arguments.
1127
1128Additionally, both the `module.exports.beforeModelCreate` and `module.exports.afterModelCreate`
1129methods accept an additional passed parameter--the name of the model file.
1130
1131Prior to 1.0.0, the methods were:
1132
1133 module.exports.beforeModelCreate(config)
1134 module.exports.afterModelCreate(Model)
1135
1136For 1.0.0 and later, the methods are:
1137
1138 module.exports.beforeModelCreate(config, name)
1139 module.exports.afterModelCreate(Model, name)
1140
1141#### SQLite Sync Adapter and Migrations
1142
1143The previous `sql` sync adapter has been replaced with the `sql_new` sync adapter as mentioned in
1144release 0.3.5.
1145
1146If you have a model that uses the `sql` sync adapter from Alloy 0.3.6 and before, you need to
1147migrate
1148your data to the new table schema of the Alloy 1.0.0 SQLite sync adapter.
1149
1150First, manually remove the following files from your Alloy project:
1151
1152* Resources/alloy.js
1153* Resources/alloy/sync/sql.js
1154
1155Next, create a one-time migration file to transfer your model data to the new database schema.
1156Adapt the following code for your table schema. Replace `title`, `author` and `isbn`
1157with your own specific table schema but leave `id` and `alloy_id` alone. The order of fields does matter.
1158This migration file creates a temporary table, copies your current data to a temporary table,
1159deletes the old table from the database, creates a new table, then copies your data to the new table.
1160
1161 migration.up = function(migrator) {
1162 var db = migrator.db;
1163 var table = migrator.table;
1164 db.execute('CREATE TEMPORARY TABLE book_backup(title,author,isbn,alloy_id);')
1165 db.execute('INSERT INTO book_backup SELECT title,author,isbn,id FROM ' + table + ';');
1166 migrator.dropTable();
1167 migrator.createTable({
1168 columns: {
1169 title:"TEXT",
1170 author:"TEXT",
1171 isbn:"INTEGER"
1172 },
1173 });
1174 db.execute('INSERT INTO ' + table + ' SELECT title,author,isbn,alloy_id FROM book_backup;');
1175 db.execute('DROP TABLE book_backup;');
1176 };
1177
1178 migration.down = function(migrator) {
1179
1180 }
1181
1182Run your application once to migrate your data, then remove the migration file.
1183
1184Note the `migrator.db` object in the previous example. This object is a handle to a `Ti.Database` instance
1185to execute SQLite commands. DO NOT CLOSE THIS HANDLE OR OPEN A SECOND INSTANCE OF THE DATABASE.
1186This will cause fatal application errors.
1187
1188See the [Alloy Sync Adapters and Migrations
1189guide](http://docs.appcelerator.com/platform/latest/#!/guide/Alloy_Sync_Adapters_and_Migrations) for
1190information about the new SQLite sync adapter and the new migration features.
1191
1192#### Removed ti.physicalSizeCategory Module
1193
1194The `ti.physicalSizeCategory` module has been replaced by a background module part of Titanium SDK 3.0.x.
1195No action is needed to migrate to the new module. However, your `tiapp.xml` file still references this module,
1196but does not affect the compilation or execution of the application. You may safely remove this reference from your
1197`tiapp.xml` file.
1198
1199Previously, this module was copied to an Alloy project as part of the `alloy new` command
1200and used to determine the size of an Android device.
1201
1202
1203#### Removed APIs
1204
1205The following deprecated APIs have been removed in this release:
1206
1207| API | Type | Notes |
1208|-----|------|-------|
1209| `Alloy.getCollection` | method | Creates a local instance of a collection. Use [Alloy.createCollection](http://docs.appcelerator.com/platform/latest/#!/api/Alloy-method-createCollection) instead. |
1210| `Alloy.getController` | method | Creates a local instance of a controller. Use [Alloy.createController](http://docs.appcelerator.com/platform/latest/#!/api/Alloy-method-createController) instead. |
1211| `Alloy.getModel` | method | Creates a local instance of a model. Use [Alloy.createModel](http://docs.appcelerator.com/platform/latest/#!/api/Alloy-method-createModel) instead. |
1212| `Alloy.getWidget` | method | Creates a local instance of a widget. Use [Alloy.createWidget](http://docs.appcelerator.com/platform/latest/#!/api/Alloy-method-createWidget) instead. |
1213| `Alloy.globals` | property | Global namespace. Use [Alloy.Globals](http://docs.appcelerator.com/platform/latest/#!/api/Alloy-property-Globals) instead. |
1214| `datatime.js` | builtin | Collection of functions for datetime formatting. Use [moment.js](http://docs.appcelerator.com/platform/latest/#!/api/Alloy.builtins.moment) instead. |
1215| `size` | XML/TSS attribute | Defines size-specific view components or styles. Use the `formFactor` attribute instead. |
1216
1217### New features
1218
1219* [ALOY-343](https://jira.appcelerator.org/browse/ALOY-343). Facilitate Alloy code completion in Studio.
1220* [ALOY-437](https://jira.appcelerator.org/browse/ALOY-437). Support Android fastdev.
1221* [ALOY-475](https://jira.appcelerator.org/browse/ALOY-475). Create test app for testing sql adapter apps with no migrations.
1222
1223
1224### Bug fixes and improvements
1225
1226* [ALOY-209](https://jira.appcelerator.org/browse/ALOY-209). Remove ti.physicalSizeCategory module for Alloy 1.0.0 (TiSDK 3.0+). Fixes [ALOY-188](https://jira.appcelerator.org/browse/ALOY-188) and [ALOY-134](https://jira.appcelerator.org/browse/ALOY-134).
1227* [ALOY-313](https://jira.appcelerator.org/browse/ALOY-313). Use applyProperties to assign properties to Ti.Android.MenuItem in parser.
1228* [ALOY-323](https://jira.appcelerator.org/browse/ALOY-323). Make Alloy support only TiSDK 3.0+.
1229* [ALOY-407](https://jira.appcelerator.org/browse/ALOY-407). Make `alloy generate model` calls uniform in format, regardless of adapter. Fixes [ALOY-375](https://jira.appcelerator.org/browse/ALOY-375) where models were not being generated correctly in Titanium Studio.
1230* [ALOY-429](https://jira.appcelerator.org/browse/ALOY-429). Convert jake app runner to use new CLI.
1231* [ALOY-454](https://jira.appcelerator.org/browse/ALOY-454). iOS is rebuilding apps every time with new CLI.
1232* [ALOY-455](https://jira.appcelerator.org/browse/ALOY-455). Remove Backbone eventing from Titanium proxies. Fixes [ALOY-460](https://jira.appcelerator.org/browse/ALOY-460) where ScrollableViews displayed noticeable lagging.
1233* [ALOY-457](https://jira.appcelerator.org/browse/ALOY-457). Make Alloy sync adapter sync() function signature match that of Backbone.
1234* [ALOY-473](https://jira.appcelerator.org/browse/ALOY-473). Abort compile process with message if trying to compile Alloy 1.0+ for anything less than Titanium 3.0.
1235* [ALOY-476](https://jira.appcelerator.org/browse/ALOY-476). Widgets within model-bound view get bound to unexisting `$model`.
1236* [ALOY-479](https://jira.appcelerator.org/browse/ALOY-479). Fix migration processing bug.
1237* [ALOY-480](https://jira.appcelerator.org/browse/ALOY-480). Replace `sql` adapter with `sql_new`.
1238* [ALOY-482](https://jira.appcelerator.org/browse/ALOY-482). View-based collection binding not properly clearing children before repopulating.
1239* [ALOY-486](https://jira.appcelerator.org/browse/ALOY-486). `sql` adapter does not update ID in client-side model when using AUTOINCREMENT.
1240
1241
1242### Deprecations
1243
1244* [ALOY-330](https://jira.appcelerator.org/browse/ALOY-330). Make `alloy run` execute `titanium build`. The `alloy run` command will be removed in version 1.1.0 in favor of only using the `titanium build` command of the Titanium CLI.
1245
1246---
1247
1248## 0.3.6 (18 January 2013)
1249
1250### Bug fixes and improvements
1251
1252* [ALOY-474](https://jira.appcelerator.org/browse/ALOY-474). Allow extra commas in TSS files.
1253
1254---
1255## 0.3.5 (18 January 2013)
1256
1257### New features
1258
1259* Tons of sql sync adapter features and fixes
1260 * **IMPORTANT**: Please read the [notes on the sql_new adapter](https://github.com/tidev/alloy/edit/master/CHANGELOG.md#additional-notes-for-035) below.
1261 * [ALOY-458](https://jira.appcelerator.org/browse/ALOY-458). The sql adapter now allows you to execute custom queries on fetch(). The [models/sql_queries](https://github.com/tidev/alloy/tree/master/test/apps/models/sql_queries) test app uses this, specifically in this [controller file](https://github.com/tidev/alloy/blob/master/test/apps/models/sql_queries/controllers/main.js).
1262 * [ALOY-447](https://jira.appcelerator.org/browse/ALOY-447). Alloy Model column definitions now support SQLite keywords, like PRIMARY KEY and AUTOINCREMENT. The [models/sql_keywords](https://github.com/tidev/alloy/tree/master/test/apps/models/sql_keywords) test app shows how to use it.
1263 * [ALOY-467](https://jira.appcelerator.org/browse/ALOY-467). idAttribute is now assignable from the model.js file's definition object. The [models/sql_keywords](https://github.com/tidev/alloy/tree/master/test/apps/models/sql_keywords) test app, specifically this [model file](https://github.com/tidev/alloy/blob/master/test/apps/models/sql_keywords/models/fighters.js) shows how to use it to identify which column in your table is the unique identifier for syncing between SQLite and Backbone.
1264 * [ALOY-453](https://jira.appcelerator.org/browse/ALOY-453). Full support for up() and down() migrations in sql adapter. [models/sql_keywords](https://github.com/tidev/alloy/tree/master/test/apps/models/sql_keywords) is also a multiple migration test app.
1265 * [ALOY-345](https://jira.appcelerator.org/browse/ALOY-345). sql adapter databases can now be preloaded from a database file. The [models/sql_preload](https://github.com/tidev/alloy/tree/master/test/apps/models/sql_preload) test app shows how.
1266 * [ALOY-456](https://jira.appcelerator.org/browse/ALOY-456). sql adapter now supports multiple SQLite databases. The [model/sql_queries](https://github.com/tidev/alloy/tree/master/test/apps/models/sql_queries) test app makes use of multiple SQLite databases.
1267 * [ALOY-468](https://jira.appcelerator.org/browse/ALOY-468). Added insertRow() and deleteRow() functions to migration object. You can see these in use for prepopulating and deleting rows in this [migration file](https://github.com/tidev/alloy/blob/master/test/apps/models/sql_queries/migrations/201301161234567_user.js) of the [models/sql_queries](https://github.com/tidev/alloy/tree/master/test/apps/models/sql_queries) test app.
1268* TSS parsing and features
1269 * [ALOY-272](https://jira.appcelerator.org/browse/ALOY-272). TSS parsing is now grammar based. Makes [code assist in TiStudio](https://jira.appcelerator.org/browse/ALOY-389) possible.
1270 * [ALOY-252](https://jira.appcelerator.org/browse/ALOY-252). Commas are now optional between top-level style objects in TSS files. Check this [style file](https://github.com/tidev/alloy/blob/master/test/apps/models/sql_queries/styles/app.tss) for an example.
1271 * [ALOY-452](https://jira.appcelerator.org/browse/ALOY-452). expr() syntax has been removed from TSS files. Here is the [cleaner and more powerful alternative](https://github.com/tidev/alloy/commit/e9fdc93c9760a1590c0abd0136662c11dc678066#commitcomment-2401085) for using runtime values in TSS files.
1272* [ALOY-284](https://jira.appcelerator.org/browse/ALOY-284). Titanium constants can now be used as XML attributes in markup. Check this [view xml file](https://github.com/tidev/alloy/blob/master/test/apps/testing/grammar/views/index.xml) for an example.
1273
1274### Bug fixes and improvements
1275
1276* [ALOY-191](https://jira.appcelerator.org/browse/ALOY-191). The [models/todo](https://github.com/tidev/alloy/tree/master/test/apps/models/todo) test app now works with all supported sync adapters \(sql, properties, localStorage\).
1277* [ALOY-336](https://jira.appcelerator.org/browse/ALOY-336). Mobileweb logs not showing up in console \(related to [TISTUD-2525](https://jira.appcelerator.org/browse/TISTUD-2525)\).
1278* [ALOY-449](https://jira.appcelerator.org/browse/ALOY-449). Parsing state not cleaned properly when processing multiple top-level UI elements.
1279* [ALOY-446](https://jira.appcelerator.org/browse/ALOY-446). sql adapter should open/close between all operations (best practices).
1280
1281### Additional Notes for 0.3.5
1282
1283Due to the massive amount of changes in the sql adapter, it is being introduced as ["sql_new"](https://github.com/tidev/alloy/blob/master/Alloy/lib/alloy/sync/sql_new.js). This is the "type" you would use in your model definitions, as seen in this [model from the models/sql_queries](https://github.com/tidev/alloy/blob/master/test/apps/models/sql_queries/models/user.js) test app. The unchanged "sql" adapter still exists temporarily for compatibility.
1284
1285All freshly built apps will work with the **sql_new** adapter, including all the sql ones in the [test/apps/models folder](https://github.com/tidev/alloy/tree/master/test/apps/models) in the repo. There _may_ be conflicts, though, if you attempt to just drop the **sql_new** adapter on an app that has been previously using the old **sql** adapter. This is because **sql_new** uses a different, smarter, less invasive means of identifying the unique id of your sql records, adding an "alloy_id" column only if absolutely necessary. If you can delete your existing sql storage and just rebuild it, then all you need to do is delete and then you can start using the **sql_new** adapter. If not, we'll have a migration guide soon.
1286
1287**One final important note** is that the old **sql** adapter will be replaced with **sql_new** when Alloy 1.0.0 is released, tentatively scheduled for mid-February. This'll give you a month to try it out and migrate data if necessary. Any questions or concerns, hit me up at the [google group](https://groups.google.com/forum/?fromgroups#!forum/appc-ti-alloy).
1288
1289---
1290## 0.3.4 (20 December 2012)
1291
1292### Important Note for Model/Collection Binding Feature
1293
1294* [ALOY-432](https://jira.appcelerator.org/browse/ALOY-432). Added $.destroy() function to all controllers. When using model/collection binding in a controller, you **MUST** call this when closing a controller to prevent potential memory leaks. This is especially true if your binding makes references to global models/collections. More detailed documentation on this point will be added to the [Alloy Data Binding Guide](http://docs.appcelerator.com/platform/latest/#!/guide/Alloy_Models-section-34636390_AlloyModels-DataBinding) very soon. \([TEST APP](https://github.com/tidev/alloy/tree/master/test/apps/models/binding_destroy)\)
1295
1296### New features
1297* [ALOY-394](http://jira.appcelerator.org/browse/ALOY-394). Support collection binding on Views, allowing for arbitrary component repetition. \([TEST APP](https://github.com/tidev/alloy/tree/master/test/apps/models/journal)\)
1298* [ALOY-103](http://jira.appcelerator.org/browse/ALOY-103). Support model binding of models to discrete properties on UI components. \([TEST APP](https://github.com/tidev/alloy/tree/master/test/apps/models/login)\)
1299* [ALOY-382](http://jira.appcelerator.org/browse/ALOY-382), [ALOY-383](https://jira.appcelerator.org/browse/ALOY-383). Support in markup for proxy properties, like rightNavButton, leftNavButton, titleControl, etc... \([TEST APP](https://github.com/tidev/alloy/tree/master/test/apps/ui/proxy_properties)\)
1300* [ALOY-387](http://jira.appcelerator.org/browse/ALOY-387), [ALOY-388](https://jira.appcelerator.org/browse/ALOY-388). Support view (XML) and controller (JS) code completion in Titanium Studio.
1301* [ALOY-421](http://jira.appcelerator.org/browse/ALOY-421). Add moment.js as builtin. Deprecates datetime.s builtin.
1302
1303### Bug fixes and improvements
1304* [ALOY-342](http://jira.appcelerator.org/browse/ALOY-342). Support '--platform' option with 'alloy generate' command to create platform-specific views and controllers.
1305* [ALOY-359](http://jira.appcelerator.org/browse/ALOY-359), [ALOY-423](http://jira.appcelerator.org/browse/ALOY-423). Improve buttongrid widget and fix a memory leak.
1306* [ALOY-361](http://jira.appcelerator.org/browse/ALOY-361). Fix a bug with style prioritization as it relates to the formFactor attribute.
1307* [ALOY-420](http://jira.appcelerator.org/browse/ALOY-420). Refactor TableView parser to allow model-bound tables to use proxy properties.
1308* [ALOY-430](https://jira.appcelerator.org/browse/ALOY-430). Collection binding now responds to the Backbone "reset" event.
1309* [ALOY-433](https://jira.appcelerator.org/browse/ALOY-433). Removed "unreachable code" warning in production Android builds.
1310* [ALOY-436](https://jira.appcelerator.org/browse/ALOY-436). Alloy compile failures will now abort the Titanium build process, as expected, with the Titanium 3.0+ SDK.
1311* [ALOY-438](https://jira.appcelerator.org/browse/ALOY-438). Fixed bug where the Backbone off() function on Titanium proxies created from markup was not working.
1312
1313
1314---
1315## 0.3.3 (6 December 2012)
1316
1317### New features
1318* [ALOY-104](http://jira.appcelerator.org/browse/ALOY-104). Enable Model-View binding on TableViews. For more information, see the basic [tableview_binding test app](https://github.com/tidev/alloy/tree/master/test/apps/models/tableview_binding) or the slightly more complete [todo_binding sample app](https://github.com/tidev/alloy/tree/master/test/apps/models/todo_binding) which shows how to do data filtering and transformations on bound data.
1319
1320 **NOTE:** This is brand new stuff with lots more functionality coming, so any feedback on the current state is very welcome. It's best to let us know at the [Alloy google group](https://groups.google.com/forum/?fromgroups#!forum/appc-ti-alloy).
1321* [ALOY-312](http://jira.appcelerator.org/browse/ALOY-312). Update Underscore.js to version 1.4.2 and Backbone.js to minified production 0.9.2 version.
1322* [ALOY-367](http://jira.appcelerator.org/browse/ALOY-367), [ALOY-377](http://jira.appcelerator.org/browse/ALOY-377). Support Soasta touch test.
1323* [ALOY-373](http://jira.appcelerator.org/browse/ALOY-373), [ALOY-379](http://jira.appcelerator.org/browse/ALOY-379). Add Collection tag in markup to create a singleton or instance(s) of a collection.
1324* [ALOY-390](http://jira.appcelerator.org/browse/ALOY-390), [ALOY-391](http://jira.appcelerator.org/browse/ALOY-391). Add Model tag in markup to create a singleton or instance(s) of a model.
1325* [ALOY-396](http://jira.appcelerator.org/browse/ALOY-396), [ALOY-397](http://jira.appcelerator.org/browse/ALOY-397), [ALOY-156](http://jira.appcelerator.org/browse/ALOY-156). Add completion callback to all methods in the animation.js builtin library.
1326
1327### Bug fixes and improvements
1328* [ALOY-311](http://jira.appcelerator.org/browse/ALOY-311). Improve Ti.UI.Android.MenuItem parser.
1329* [ALOY-370](http://jira.appcelerator.org/browse/ALOY-370). Fix ability to assign functions with variable assigned functions in controllers.
1330* [ALOY-376](http://jira.appcelerator.org/browse/ALOY-376). Improve handling of Ti.Android.Menu component.
1331* [ALOY-393](http://jira.appcelerator.org/browse/ALOY-393). (Re-)enable optimizer.js as part of runtime JavaScript file optimization.
1332* [ALOY-403](http://jira.appcelerator.org/browse/ALOY-403). Improve Alloy.Collection and Alloy.Model code optimization.
1333* [ALOY-417](http://jira.appcelerator.org/browse/ALOY-417). Improve properties adapter.
1334
1335### Deprecations
1336* [ALOY-401](http://jira.appcelerator.org/browse/ALOY-401). Deprecate Alloy.globals; use Alloy.Globals instead.
1337
1338---
1339## 0.3.2 (15 November 2012)
1340
1341### Bug fixes and improvements
1342* [ALOY-353](http://jira.appcelerator.org/browse/ALOY-353). Support all Backbone eventing in Titanium proxies, on(), off(), trigger(). Fixed multiple event firing bug with on().
1343* [ALOY-355](http://jira.appcelerator.org/browse/ALOY-355). Improve path handling in compiler plugin for OS X.
1344* [ALOY-356](http://jira.appcelerator.org/browse/ALOY-356). Remove string builtin dependency to shorten compilation time.
1345* [ALOY-365](http://jira.appcelerator.org/browse/ALOY-365). Add Alloy.globals namespace for global context.
1346* [ALOY-380](http://jira.appcelerator.org/browse/ALOY-380). Create app/alloy.js file automatically for all new projects.
1347
1348---
1349## 0.3.1 (2 November 2012)
1350
1351### New features
1352* [ALOY-192](http://jira.appcelerator.org/browse/ALOY-192). Add to-do sample application. Code is available on [github](https://github.com/tidev/alloy/tree/master/test/apps/models/todo).
1353* [ALOY-337](http://jira.appcelerator.org/browse/ALOY-337). Support themes to change the appearance of the entire GUI by customizing styles and assets. For more information, see:
1354 * [Alloy Styles and Themes](http://docs.appcelerator.com/titanium/3.0/#!/guide/Alloy_Styles_and_Themes)
1355 * [Themes sample application on github](https://github.com/tidev/alloy/tree/master/test/apps/advanced/themes)
1356
1357### Bug fixes and improvements
1358* [ALOY-306](http://jira.appcelerator.org/browse/ALOY-306). Support platform, formFactor, and inline event attributes with abstract types in markup.
1359* [ALOY-340](http://jira.appcelerator.org/browse/ALOY-340). Fix Android "too deep recursion while parsing" error with Rhino runtime.
1360* [ALOY-341](http://jira.appcelerator.org/browse/ALOY-341). Improve adapter-backbone processing.
1361* [ALOY-352](http://jira.appcelerator.org/browse/ALOY-352). Fix SQL adapter to work if no migrations are present.
1362* [ALOY-354](http://jira.appcelerator.org/browse/ALOY-354). Fix "alloy generate jmk" command.
1363
1364---
13650.3.0 (beta)
1366------------
1367* Removed node-appc dependency.
1368* Added Alloy splash screens and icons
1369* Updated widgets, added new button-grid widget.
1370
1371---
13720.2.42
1373--------
1374* Ti.UI.OptionDialog markup parser added. Check out this link for a test app and usage: [https://github.com/tidev/alloy/tree/master/test/apps/ui/optiondialog](https://github.com/tidev/alloy/tree/master/test/apps/ui/optiondialog)
1375* You can get the Alloy version at runtime now with `Alloy.version`
1376* Tightened up XML ID restrictions. As an enforced best practice, no reserved JS words as IDs. If you try to, you'll get a compile time error message.
1377* Revamp of code processing, better organized, more efficient. It's all under the hood, you shouldn't notice, other than compiles might be faster.
1378* Quick fix to error output in compiler plugin.py
1379* Some minor cleanup in the test apps