I have noticed one thing to point out (I used B4A but certainly it is the same).
I have declared an array of strings without its size in Globals ( Private mArr() )
I was able to resize the array inside a routine using Dim but also Private.
This means that you can not have two arrays with the same name, one global and one local.
In addition, if a function return as a result an array of the same type, it can automatically resize the array.
mArr = ReturnsAnArrayOfString
Sub ReturnsAnArrayOfString As String()
End Sub