-
Notifications
You must be signed in to change notification settings - Fork 24
Expand file tree
/
Copy pathReleaseNotes.html
More file actions
1850 lines (1787 loc) · 105 KB
/
ReleaseNotes.html
File metadata and controls
1850 lines (1787 loc) · 105 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" version="XHTML+RDFa 1.0" dir="ltr" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/terms/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:og="http://ogp.me/ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:sioc="http://rdfs.org/sioc/ns#" xmlns:sioct="http://rdfs.org/sioc/types#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" class="js"><head profile="http://www.w3.org/1999/xhtml/vocab"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8" />
<meta about="/front_page" property="sioc:num_replies" content="0" datatype="xsd:integer" />
<meta content="Front Page" about="/front_page" property="dc:title" />
<meta name="Generator" content="Drupal 7 (http://drupal.org)" />
<title>Release Notes for MIT App Inventor 2 (Beta)</title>
<style>
body{
background: url("http://ai2.appinventor.mit.edu/images/squairy_light.png") repeat scroll center top;
margin-top:0;
}
#page{
width: 960px;
margin: 0 auto;
}
#branding, #menu-bar, #create-button,#region-create{
display: inline-block;
}
#branding{
width:25%;
margin:0;
}
#top_bar, #top_bar_background {
top:0;
min-height: 40px;
width:100%;
margin-bottom: 4px;
padding-right: 0px;
padding-left: 0px;
background-color: #f2f2f2;
background-image: -moz-linear-gradient(top, #f2f2f2, #f3f3f3);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#f3f3f3));
background-image: -webkit-linear-gradient(top, #f2f2f2, #f3f3f3);
background-image: -o-linear-gradient(top, #f2f2f2, #f3f3f3);
background-image: linear-gradient(to bottom, #f2f2f2, #f3f3f3);
background-repeat: repeat-x;
border: 1px solid #d4d4d4;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);
*zoom: 1;
-webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
-moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
position: relative;
}
#top_bar, #top_bar_background{
width:100%;
height: 70px;
/*position:absolute;*/
margin:0 auto;
left:0;
right:0;
top:0;
}
#header{
width:960px;
margin:0 auto;
height:50px;
position: relative;
}
/* LOGO */
#logo {
margin: 8px 4px 4px 4px;
float: left;
padding: 0 20px;
}
#logo img{
/*background: url(../images/logo_text.png) no-repeat;*/
width: auto;
height: 50px;
display: block;
}
#logo img:hover {
-webkit-filter: drop-shadow(0px 0px 3px #eee);
filter: drop-shadow(0px 0px 3px #eee);
}
button {
border-radius:0 !important;
color:#FFF;
border:none;
padding: 0.5em 1em;
}
button:hover{
color:#FFF;
border:none;
border-radius:0 !important;
}
#branding, #create-button, #region-create, #menu-bar li{
display: inline-block;
}
#menu-bar{
margin: 0;
padding-top:10px;
position: absolute;
top: 0;
}
#menu-bar li{
margin:0;
}
#menu-bar li a{
font-family: 'Roboto Light', Helvetica, sans-serif;
font-weight:300;
font-size: 22px;
text-decoration: none;
color: #3D3D3D;
background:transparent !important;
border-radius:0 !important;
display: block;
line-height: 2.5em;
padding: 0 1em;
white-space: nowrap;
}
#menu-bar li a.active{
color: #000;
}
#menu-bar li a:hover{
color: #8fc202;
}
.create-button{
float:right;
margin:8px 25px 10px 10px;
}
.create-button button:hover{
cursor: pointer;
background: #ffa033;
}
.create-button button{background: #FF8800 !important;
border: none !important;
color: #FFF;
font-weight: 300;
border-radius: 0;
font-family: 'Roboto',Helvetica,Arial,sans-serif;
font-size: 20px;
}
#content-column {
background: #F7F9F2;
border-radius: 2px;
margin-top: 0px;
padding: 15px 20px;
}
footer{
background-color: #e3e1df;
color: #010101;
padding: 20px 0;
margin-top: 25px;
}
/*################TYPOGRAPHY##################*/
/* html elements */
html {
font-size: 81.3%; /* 16px x 81.3% = 13px */
}
body {
font-family: "Helvetica Neue", Helvetica, Arial, Geneva, sans-serif;
line-height: 1.6em;
margin: 0;
padding: 0;
}
/* Sizes match proper font scaling. */
h1, h2, h3, h4, h5, h6 {
font-weight: 400;
line-height: 1em;
padding: 0;
margin: 24px 0 12px 0;
}
h1 { font-size: 2.153em; } /* 28px */
h2 { font-size: 1.692em; } /* 22px */
h3 { font-size: 1.385em; } /* 18px */
h4 { font-size: 1.231em; } /* 16px */
h5 { font-size: 1.077em; } /* 14px */
h6 { font-size: 1em; }
img,
a img {
border:none;
}
img {
max-width: 100%;
height: auto;
}
p {
margin: 0 0 1.5em;
padding: 0;
}
em,
dfn {
font-style: italic;
}
ins {
border-bottom: none;
text-decoration: none;
}
abbr, acronym {
border-bottom: 1px dotted;
cursor: help;
white-space: nowrap;
}
pre,
code,
tt,
samp,
kbd,
var {
font-size: 0.846em;
font-family: Monaco, "DejaVu Sans Mono", monospace, sans-serif; /* Safari hack */
}
blockquote,
q {
font-style:italic;
quotes:"" "";
}
blockquote,
p {
margin: 1.5em 0;
}
p:first-child,
p.first-child {
margin-top: 0;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
content:"";
}
strong,
dfn,
caption,
th {
font-weight: 700;
}
pre,
div.codeblock {
background-color: #f5f5f5;
border: solid 1px #ddd;
border-bottom-color: #ccc;
border-right-color: #ccc;
padding: 1em;
white-space: pre-wrap;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
/* Lists */
ul,
ol {
margin: 0 0 1.5em 1em;
padding:0;
}
.item-list ul,
.item-list ol {
margin: 0 0 0 1em;
padding: 0;
}
ul ul,
ul ol,
ol ol,
ol ul,
.block ul ul,
.block ul ol,
.block ol ol,
.block ol ul,
.item-list ul ul,
.item-list ul ol,
.item-list ol ol,
.item-list ol ul {
margin-bottom: 0;
}
ul {
list-style-type: disc;
}
ul ul ul {
list-style-type: square;
}
ol {
list-style-type: decimal;
}
ol ol {
list-style-type: lower-alpha;
}
ol ol ol {
list-style-type: lower-roman;
}
ul ul,
ul ul ul ul {
list-style-type: circle;
}
dl {
margin: 1em 0;
padding: 0;
}
dt {
font-size: 1.231em;
}
dd {
margin: 0 0 0.4em 0;
padding: 0 0 0 2em;
}
dd:last-child {
border-bottom: 0;
}
dl dl {
margin-left: 1em;
}
body {
font: 13px/1.5 'Roboto','Helvetica Neue', Arial, 'Liberation Sans', FreeSans, sans-serif !important;
color: #3D3D3D;
}
pre,
code {
font-family: 'DejaVu Sans Mono', Menlo, Consolas, monospace;
}
hr {
border: 0 #ccc solid;
border-top-width: 1px;
clear: both;
height: 0;
}
/* `Headings
----------------------------------------------------------------------------------------------------*/
h1 {
font-size: 20px;
line-height: 22px;
}
h2 {
font-size: 18px;
line-height: 20px;
}
h3 {
font-size: 16px;
line-height: 18px;
}
h4 {
font-size: 14px;
line-height: 16px;
}
h5 {
font-size: 12px;
line-height: 14px;
}
h6 {
font-size: 12px;
line-height: 14px;
}
/* `Spacing
----------------------------------------------------------------------------------------------------*/
ol {
list-style: decimal;
}
ul {
list-style: disc;
}
li {
margin-left: 30px;
}
p,
dl,
hr,
h1,
h2,
h3,
h4,
h5,
h6,
ol,
ul,
pre,
table,
address,
fieldset,
figure {
margin-bottom: 10px;
}
address { font-style: normal; }
</style>
</head>
<body>
<div id="page" class="container">
<header class="clearfix" role="banner">
<div id="top_bar">
<div id="branding">
<div id="logo"><a href="http://appinventor.mit.edu" title="Home page" class="active"><img src="/explore/sites/all/themes/appinventor/logo.png" alt="Explore MIT App Inventor logo"></a></div>
</div>
<div id="menu-bar" class="nav clearfix">
<nav role="navigation">
<ul>
<li><a href="http://appinventor.mit.edu">Home</a></li>
<li><a href="http://appinventor.mit.edu/explore/news-events">Blog ▾</a></li>
<li><a href="http://appinventor.mit.edu/explore/ai2/user-guide">Support ▾</a></li></ul>
</nav>
</div>
<div class="create-button">
<a href="http://ai2.appinventor.mit.edu/"><button>Create</button></a>
</div>
</div>
</header>
<div id="columns" class="no-menu-bar" style="margin-top:15px;"><div class="columns-inner clearfix">
<div id="content-column"><div class="content-inner">
<section id="main-content" role="main">
<div id="content"> <div class="region region-content">
<h2>Release Notes for MIT App Inventor 2</h2>
<p>Changes in MIT App Inventor 2 are
documented on this page. Note: Versions that
end with a letter (for example: nb117c) are
bugfix releases.</p>
<h2>Changes between nb161 and nb162 (August 23, 2017)</h2>
<p>This is a non-component release consisting
of bugfixes.</p>
<h2>Changes between nb160 and nb161 (August 11, 2017)</h2>
<p><b>Note:</b> This is not a component
release, but there is a new Companion with our
new MIT App Inventor logo.</p>
<ul>
<li>New MIT App Inventor Logo</li>
<li>Bug fixes.</li>
</ul>
<h2>Changes between nb159 and nb160 (July 7, 2017)</h2>
<ul>
<li>Remove “Beta” Tag!</li>
<li>Update Chinese Tranlations</li>
<li>Bug fixes.</li>
</ul>
<h2>Changes between nb158 and nb159 (July 3, 2017)</h2>
<p><b>Note:</b> This is a component
release. There is a new Companion, version
2.43. Updating is recommended but not required.</p>
<ul>
<li>The texting component can once again
send texts with Google Voice. We still
haven't figured out how to receive them
(or if it can even be done). This is
likely a temporary fix as using Google Voice
the way we are is not supported by Google,
and therefore may break in the future. We
are actively looking into an alternative
for non-phone devices (things like tablets
that do not have a phone number) to send
and receive messages.</li>
<li>The default service for TinyWebDB has
been updated to
http://tinywebdb.appinventor.mit.edu
instead of
http://appinvtinywebdb.appspot.com. For
now both of these URLs point to the same
physical service, so no disruption should
be seen by anyone. However this change
will permit us in the future (with notice)
to move the service from Google to another
provider, including hosting it locally at
MIT. This will save us money (it costs to
host TinyWebDB for eveyone) and permit us
to offer better service.</li>
<li>Added the Dutch (Nederland)
translation.
</ul>
<h2>Changes between nb157 and nb158 (June 14, 2017)</h2>
<p><b>Note:</b> This is a component
release. You should upgrade your copy of the
MIT AI2 Companion to version 2.42. Google
Play will auto-update your Companion if you
downloaded it from the Google Play
Store. Otherwise you can use the
“Help->Update The Companion” Menu option.
</p>
<ul>
<li>Enhance extension support</li>
<li>Add a progress bar when loading large
files to the Companion</li>
<li>Miscellaneous bug fixes</li>
</ul>
<h2>Changes between nb156c and nb157 (June 6, 2017)</h2>
<ul>
<li>Added new “TutorialURL” property to
Screen1. A URL placed in this property will
be used as a tutorial panel on the left
hand side of the screen. NOTE: Only approved
URLs can currently be used to avoid people
using this mechanism to distribute malware.
</li>
</ul>
<h2>Changes between nb156b and nb156c (May 31, 2017)</h2>
<ul>
<li>Solve problem where the Splash Screen
interfered with the Project List when a
person has a lot of projects.</li>
<li>Fix a problem that caused problems with
the Blocks Editor in versions of Firefox
older then version 53.0</li>
</ul>
<h2>Changes between nb156 and nb156b (May 29, 2017)</h2>
<ul>
<li>Bugfix to Blocks Editor: Fix bug where
sometimes you would get 20+ blocks when you
dragged a block out of the blocks
drawer.</li>
<li>Other miscellaneous bugfixes to the
blocks editor.</li>
</ul>
<h2>Changes between nb155 and nb156 (May 25, 2017)</h2>
<p>This is a non-component release, however it is a significant release because
of a major upgrade to the Blocks Editor.</p>
<ol>
<li>Added the ability to zoom the workspace in/out. Zooming gestures include:
<ol>
<li>Click the +/- buttons in the lower left corner above the trashcan.</li>
<li>Ctrl+Mouse wheel on a mouse.</li>
<li>Multi-touch trackpad users with
Chrome, zooming can also be done with
the pinch/expand gesture.</li>
</ol></li>
<li>Added the ability to pan the workspace. Panning gestures include:
<ol>
<li>Mouse wheel up/down will pan the view vertical.</li>
<li>Wheels with 2-dimensional scrolling can also pan left/right.</li>
<li>Multi-touch trackpad users can pan
in two dimensions using two-finger
scrolling.</li>
</ol></li>
<li>Added Reset to center button will set
the zoom back to 1:1 and move to the center
of the blocks workspace.</li>
<li>Added workspace grid. Right-clicking
(Ctrl+Click on Mac) on the workspace brings
up a context menu with "Enable Workspace
Grid" option. This option is a user setting
and will persist across workspaces and
across App Inventor sessions.</li>
<li>Added workspace snapping. If the grid is
enabled, another menu option "Enable Snap to
Grid" will be available. Enabling this
option will make the top-left corner of
blocks snap to the nearest grid point. This
option is a user setting and will persist
across workspaces and across App Inventor
sessions.</li>
</ol>
<h2>Changes between nb154a and nb155 (March 5, 2017)</h2>
<ul>
<li>Updates to better support newer versions of Android</li>
</ul>
<h2>Changes between nb154 and nb154a (February 15, 2017)</h2>
<p>
Note: This is a non-component release. No
new Companion is required.
</p>
<ul>
<li>
Make the Backpack persistent – If you
leave MIT App Inventor with blocks left in
your backpack, they will be there the next
time you login.
</li>
<li>
Projects load faster – We optimized how
projects are loaded. Projects,
particularly larger projects, will load
faster.
</li>
<li>
Additional minor bugfixes
</li>
</ul>
<h2>Changes between nb153 and nb154 (January 27, 2017)</h2>
<ul>
<li>Changes to better support extension
writers who need to add features to the
Android Manifest</li>
<li>Changes and bugfixes to support newer
versions of Android</li>
<li>“ShowListsAsJson” -- A new property was
added to Screen1 (which affects all
screens). When set to true,
“ShowListsAsJson” will cause all lists, when
converted to a string, to be represented in
JavaScript Object Notation (JSON) instead of
as Lisp lists.
<ul>
<li>In the future we will change the
system so that all new projects are
created with this set by default
(existing projects will not be
affected).</li>
</ul>
</li>
</ul>
<h2>Changes between nb152b and nb153 (November 23, 2016)</h2>
<ul>
<li>Speed up App Inventor client by reducing the number of server calls
during project load and general operation of the software.</li>
<li>Speed up server side processing of content by removing unneeded stats
calculations.</li>
</ul>
<h2>Changes between nb152a and nb152b (November 15, 2016)</h2>
<ul>
<li>Load the App Inventor Gallery when first accessed instead of when App
Inventor is started. This improves loading time.
</li>
</ul>
<h2>Changes between nb152 and nb152a (November 8, 2016)</h2>
<ul>
<li>Critical Bugfix to nb152 so projects without assets can be loaded into the
Companion.
</li>
</ul>
<h2>Changes between nb151a and nb152 (November 7, 2016)</h2>
<ul>
<li>Bugfixes and performance improvements<br/><br/>
In particular we fixed a bug that caused excessive network traffic
when projects with many or large assets were worked on.
</li>
</ul>
<h2>Changes between nb151 and nb151a (September 22, 2016)</h2>
<ul>
<li>Fix to a problem where renamed procedure call blocks had the wrong number of sockets.</li>
<li>Fix to extension loading that prevented the loading or updated of MIT App Inventor Extensions</li>
</ul>
<h2>Changes between nb150e and nb151 (September 13, 2016)</h2>
<p>This is a mostly bugfix release. The most significant:</p>
<ul>
<li>Fix a bug in ActivityStarter introduced
in nb150 that prevents the ActivityStarter
from working properly on older devices.
</li>
</ul>
<p>Note: This is a component release which introduces Companion version 2.39. If you
have auto-update enabled in the Google Play Store the update will happen automatically.</p>
<p>If you loaded the Companion manually, you
can update the companion by using the
Help->Update the Companion menu option
while connected.</p>
<p>Updating the Companion is not required with this release.</p>
<h2>Changes between nb150d and nb150e (August 27, 2016)</h2>
<ul>
<li>Added Documentation on our <a href="http://ai2.appinventor.mit.edu/reference/other/vr.html"
target="_blank">
Experiments with Virtual Reality</a></li>
</ul>
<h2>Changes between nb150 and nb150d (August 23, 2016)</h2>
<ul>
<li>Bugfixes and performance improvements</li>
</ul>
<h2>Changes between nb149 and nb150 (July 26, 2016)</h2>
<p>
Note: This is a component release. The new Companion is version 2.38
available directly from MIT App Inventor or via the Google Play Store.
However if you do not use the Scrollable Horizontal and Vertical
arrangements, you can continue to use the old Companion (version
2.37). If you have a Companion older than version 2.37, you will be
prompted to auto-update your Companion.
</p>
<ul>
<li>Migrate to FusionTables version 2</li>
<p>
Google has deprecated FusionTables version 1. It will stop working on
November 1, 2016. This update changes the FusionTablesControl
component to make use of the version 2 API. No changes to programs are
required. However packaged apps built with version nb149 or earlier
will stop working in November. Repackage apps with this version to use
version 2. If you distributed your Fusion Tables using applications,
either directly or through the Google Play Store, you need to
distribute a new version built with this version.
</p>
<li>Added Scrollable Horizontal and Vertical Arrangements</li>
<p>
We added two new Arrangements to provide scrolling versions of
Horizontal and Vertical arrangements.
</p>
<li>Update Alignment Dropdowns in the Designer</li>
<p>
Today we have dropdowns in the Designer for selecting alignment
values. However in the blocks you have to use numbers to represent the
different kinds of alignment. This change places those numbers in the
dropdown items as a convenience and reminder of those values.
</p>
<li>Add Comments to Block Save Images</li>
<p>
Fix a bug that causes images of blocks to not include any comments.
</p>
<li>Rewrite Extensions packaging scripts</li>
<p>
This change makes it a little easier for extension authors to build
extensions.
</p>
<li>Support upgrading of extension components</li>
<p>
You can now load a new version of an extension, provided it has the
same package name, over a previous version. Any incompatible block
changes between the old and new version will result in the blocks
being marked “bad”. The MIT App Inventor programmer then has to do
some cleanup, but this is way better then having to delete the old
component, which removes all associated blocks.
</p>
<li>Bugfixes to the MIT App Inventor Gallery</li>
<li>Update to ListView</li>
<p>
SelectionIndex() will now return the correct value even when a filter
is applied to the ListView.
</p>
<li>Update to ActivityStarter</li>
<p>
ActivityStarter will now generate an error if no intent “Action” is
provided.
</p>
<li>We now signal an error on Divide by Zero</li>
<p>
If you attempt to divide a number by zero we will generate an
error. This error can be caught by the MIT App Inventor Programmer
using the Screen.ErrorOccurred event. If it is not caught a
Notification is briefly displayed.
</p>
</ul>
<h2>Changes between nb148 and nb149 (June 15, 2016)</h2>
<ul>
<li>Update to Firebase: Add New
Blocks:</li>
<ul>
<li>AppendValue: Takes a
“tag” and a “value.” If tag points to a
list, it will append the value onto the end of the list. If two
devices attempt this at the same time, both will be added (instead
of one being lost).</li>
<li>RemoveFirst: This function
instructs Firebase to remove the first element of the list pointed
to by “tag”. It is returned in the new Event
“FirstRemoved.”</li>
<li>GetTagList: Useful when debugging.
It gets a list of the known tags in your application. The list
itself is returned as an argument to the “TagList”
Event.</li>
<li>ClearTag: This function takes a
“tag” as argument and removes it from the Firebase
system. It is analogous to TinyDB’s ClearTag
function.</li>
<li>Persist: New Designer only
property. When set to “true” Firebase will keep track
of changes when there is no internet connection, even when the App
exists. Upon next invocation, if there is an Internet connection
variable changes will be uploaded.</li>
</ul>
<p>Firebase remains an experimental
feature.</p>
<li>App Inventor
Extensions</li>
<p>This is the first public release of
MIT App Inventor that supports “extension” components
written by users in Java. Extensions are built using the App
Inventor sources and are packaged into “.aix” files.
“.aix” files can then be added to projects to add
functionality.</p>
<p>Limitations</p>
<p>Currently only non-visible
components may be added. Apps with extensions loaded may not be
uploaded to the App Inventor Gallery</p>
<li>New Components</li>
<ul>
<li>BluetoothLE</li>
<p>New BluetoothLE (Bluetooth Low Energy)
Component: This component is actually our first official release of
an MIT App Inventor supported extension. It is available for
download from the following site. <a href=
"https://www.google.com/url?q=http://appinventor.mit.edu/extensions/&sa=D&ust=1466048907926000&usg=AFQjCNEZbTm_-a94_4fddz0f-VhM12EVOg"
target="_blank">
MIT App Inventor Extensions</a>.</p>
<p>This extension supports a new protocol similar
to classic Bluetooth except that it is designed to consume less
power while maintaining comparable functionality. For this reason,
Bluetooth LE is the preferred choice of communication with IoT
(Internet of Things) devices that have limited power resources. We
are currently in the process of creating a new page on our website
that will provide documention, tutorials and other materials to
help use and understand the new possibilities that this new
component. A draft of this page can be found here:
<a href=
"https://www.google.com/url?q=https://docs.google.com/document/d/1Y2Jk90BRskLKw3ex3yvftBmaEm7kyCcVCQy8yGAmtA4/pub&sa=D&ust=1466048907927000&usg=AFQjCNFV6L-WuTOfUFOrKomBpVOO3sOjJA">
BluetoothLE Documentation and Resources</a></p>
<li>Pedometer</li>
<p>New Pedometer Component: This
component uses the accelerometer to determine the number of steps
taken while walking with a device.</p>
<li>Components to support LEGO
Mindstorms® EV3 Robots</li>
<li>Other</li>
<ul>
<li>The system is now based on Android
SDK 5.1.1: However we still support devices back to Android 2.2
(though not all features of App Inventor will work with all
versions of Android)</li>
<li>Listview Update: Font size scales
properly in “Responsive” mode.</li>
<li>Labels can now contain a limited
subset of HTML as well as text. Check the “HTMLFormat”
designer property to enable this feature.</li>
<li>Bugfixes and Documentation
fixes</li>
</ul>
</ul>
<h2>Changes between nb148 and nb148a (April 25, 2016)</h2>
<ul>
<li>Bugfix to CheckBox handling</li>
<li>Removal of temporary transition code to smooth the deployment of nb148</li>
</ul>
<h2>Changes between nb147e and nb148 (April 24, 2016)</h2>
<ul>
<li>No user visible changes. This release restructures some of the internal
functions of MIT App Inventor to facilitate future improvements.
</li>
</ul>
<h2>Changes between nb147d and nb147e (April 22, 2016)</h2>
<ul>
<li>Bugfix to Checkbox resizing. Make sure floating point values work</li>
</ul>
<h2>Changes between nb147c and nb147c/d (April 20, 2016)</h2>
<ul>
<li>Fix to a bug which prevented very old Companions from auto-updating</li>
</ul>
<h2>Changes between nb147a and nb147b (April 20, 2016)</h2>
<ul>
<li>Gallery Fixes: retry failed searches and return more consistent results</li>
<li>Fix checkbox resizing in the Designer</li>
<li>Fix the “tooltips” on the COS and TAN math blocks</li>
<li>Updated Italian Translation</li>
<li>Updated Swedish Translation</li>
</ul>
<h2>Changes between nb147 and nb147a (March 15, 2016)</h2>
<ul>
<li>Documentation updates
</li>
<li>Minor fix to Designer Color Dropdown, if there is not enough room
to show all colors below the control, the list of colors will show
up above.
</li>
</ul>
<h2>Changes between nb146k and nb147 (February 18, 2016)</h2>
<p>NOTE: This is a component release which will have a new Companion to
take advantage of new features. The older Companion should still
function, but not everything will work correctly.</p>
<ul>
<li>
UI Improvements:
<ul>
<li>Welcome to App Inventor 2 Dialog
will no longer prevent the “Start
Project” button from working.</li>
<li>Additional validation of new project
names to ensure they are valid
names.</li>
<li>Fix an issue where the project
“Start” button can be pushed multiple
times before a new project is created
(this can happen on a slow network)
which results confusion.</li>
<li>Various features that open a
documentation page from the system
will now open in a fully functional
new window or tab instead of a
pop-up.</li>
<li>The Backpack icon has been updated
to better show when it contains blocks
or is empty</li>
<li>Add a new Menu Item to the Help Menu
to facilitate downloading andinstalling the latest companion.</li>
<li>“ScalePictureToFit” property on an
image will scale it both on the device
and in the UI Designer</li>
</ul>
</li>
<li>Clock Component Update: Additional
functions for computing timeintervals and otherwise manipulating dates and times.</li>
<li>Documentation Updates</li>
<li>Updates the Portuguese (Brazilian) Translation</li>
<li>Gallery Improvements: Better search results</li>
<li>Add the new “Firebase” Component:<br/>
<p>This is an experimental prototype
release of the Firebase component. Feel
free to use it for personal apps, but be
aware that the component is under active
development, and may change in a way
that could make your apps stop
working.</p>
<p>The Firebase component provides a
mechanism similar toTinyWebDB. However
it is hosted using a Firebase database
(<a href="http://firebase.com" target="_blank">firebase.com</a>) and supports updates to
variables from different copies of an
application, when multiple copies of an
application are running on different
devices which are connected to the
network. When one device updates a
variable the other will get a
“DataChanged” event with the new
value. This permits a form of “cloud
variable.”</p>
<p>The use of Firebase normally requires
an account at firebase.com, but by
default an account sponsored by MIT is
configured (via “branding” commits which
are not public) for the MIT sponsored
service.</p>
<p>See
<a href="http://ai2.appinventor.mit.edu/reference/other/firebaseIntro.html" target="_blank">
http://ai2.appinventor.mit.edu/reference/other/firebaseIntro.html</a>
for more information.<p>
<p><b>Note: The Emulator that we distribute
does not support the Firebase Component
at this time.</b></p>
</li>
<li>Camera Component: The UseFront property
was removed, it no longer functions on
newer versions of Android. Projects that
set it in the Designer will receive a
warning the first time they are loaded
into the system and the property will be
removed. Any blocks that reference it will
be disabled and marked “bad” (they will
have a red border and will need to be
discarded).</li>
<li>Location Component: Do not fire the
“LocationChanged” event if the location is
invalid.</li>
<li>The GyroscopeSensor component was
added.</li>
<li>The “HideKeyboard” function was added
the the “Screen” component. It is still
present in the TextBox component as
well.</li>
</ul>
<h2>Changes between nb146j and nb146k (January 8, 2016)</h2>
<ul>
<li>Portuguese (Brazilian) Translation</li>
<li>Minor documentation changes</li>
</ul>
<h2>Changes between nb146i and nb146j (December 11, 2015)</h2>
<ul>
<li>Security bugfixes – Make sure a person can only “Like” an App Once</li>
<li>Server Performance improvements</li>
<li>Server fix to make sure older projects can load</li>
<li>Other Minor bugfixes</li>
<li>Minor documentation fixes</li>
</ul>
<h2>Changes between nb146h and nb146i (December 1, 2015)</h2>
<ul>
<li>Fixes to the Russian Translation</li>
<li>New document on how to
<a href="http://ai2.appinventor.mit.edu/reference/other/usingImages.html"
target="_blank">use
Images in App Inventor</a>
</li>
</ul>
<h2>Changes between nb146g and nb146h (November 19, 2015)</h2>
<ul>
<li>Gallery Update: Adds “Tutorial”
category. Changes how a user’s profile is
laid out: List of Apps now shows more than
5 apps and appears below the profile
information instead of to the right of
it.
</li>
<li>Updates to the Korean Translation</li>
<li>Addition of the Swedish Translation</li>
<li>Bugfixes. In particular errors during
initial form load of the Companion (which
happens when you make changes in the