Files
RubyMotion/NEWS-pre
2014-10-31 15:21:48 +09:00

117 lines
6.5 KiB
Plaintext

= RubyMotion 3.4 =
* Added Hash#{store, size, length, empty?, include?, member?, hash_key?, key?,
delete}
= RubyMotion 3.3 =
* Added the `app.features' variable that can accept an Array of String
objects that will be used to generate `<uses-feature/>' elements in the
project's manifest file. The default is an empty array.
* Added the `app.services' variable that can accept an Array of String
objects that will be used to generate the `<service/>' elements under the
`<application/> element of the project's manifest file. Values can be
either class names (ex. ".MyService") or full package paths
(ex. "com.yourcompany.Hello.MyService").
* Improved the build system to let users extend classes defined in Ruby files
in Java. In order to do so, a .java file has to be created in a directory
where Ruby files reside (ex. `app'). The basename of the .java file should
be the name of the class to extend, and its content will be copied inside
the class definition. (ex. `public int foo() { return 42; }'). The basename
can also use the underscore-based notation, and the build system will then
translate it to the actual class name (ex. `my_service.rb' -> `MyService').
* Improved the compiler so that the Android R inner-classes can now be
accessed without the application package prefix.
* Added support for the translation of `foo?' to `isFoo' selector shortcut
in the method dispatcher.
* Added Array#{*, count, pop, shift, reverse, reverse!, rindex}.
* Added Kernel#raise.
* Fixed Array#{first, last} and String#to_i in order to take an argument.
* Fixed a bug in the runtime when calling ambiguous Java methods where a
`nil' argument would not be considered acceptable for a Java reference.
* Fixed a bug in the compiler where defining the `onActivityResult' method
on an activity class would cause the build to fail, because the compiler
would try to conform to a Java interface that has a wrong method type.
* Fixed a bug in the build system where the `classes.dex' file would always
be re-generated even if it was not needed.
= RubyMotion 3.2 =
* Added support for Android 5.0 (API 21).
* Added support for the latest Android NDK (r10c). The runtimes have also
been recompiled with the new NDK toolchain.
* Added support for class variables.
* Added support for the `alias' language keyword.
* Added support for the `defined?' language keyword (should work on all
expressions except global variables and messages/super).
* Added the following Module methods: alias_method, public/private/protected
(empty for now).
* Improved the build system to better detect the NDK toolchain.
* Fixed a crash in the REPL when accessing constant paths (ex. Foo::Bar).
* Fixed the runtime to properly catch Java exceptions raised by Android
APIs with the `rescue => Exception' expression.
* Fixed the `rake clean' task to delete the .bridgesupport files that have
been generated for vendored projects.
* Fixed a bug in the method dispatcher where the optional Hash syntax was
not properly recognized (ex: `foo(1, x:2, y:3, z:4)' to send
`foo(1, { :x => 2, :y => 3, :z => 4 })').
* Fixed the build system to fail with a proper error message in case the
Android SDK does not support the default API version.
* Fixed a crash in the compiler when compiling `case/when' blocks that
create local references.
* Fixed a bug in the build system where the compilation of the main activity
class would fail due to a missing import of the `java.lang.System' class.
* Fixed the build system to print a better message in case it cannot retrieve
the Android API version of the USB-connected device.
* Fixed the build system to generate better names for the init functions of
the Ruby source files.
* Fixed the runtime to properly define non-Java classes.
* Fixed a bug where defining a method with the `def' keyword on a module
would not expose the method to classes that include such module.
* Fixed the build system to compile the main app file with a proper exception
handler, in case an exception is triggered from the main scope of a Ruby
source file.
* Fixed a bug in the compiler where we would be emitting invalid constant
names for newer versions of the NDK assembler.
= RubyMotion 3.1 =
* Added the RUBYMOTION_VERSION and RUBYMOTION_ENV constants, which have the
same values as RubyMotion for iOS / OS X.
* Added support for the Android R class. Thanks to Mark Villacampa for the
patch.
* Added the `app.application_class' setting, which can be used to specify
the name of a custom Android::App::Application subclass that should be used
by the application. By default, the variable has a nil value, which means
a default class will be used.
* Improved app versioning. `app.api_version' will now map to the
`minSdkVersion' manifest attribute. Added `app.target_api_version' which
will map to `targetSdkVersion'. Both settings will have the latest API
version as the default value, except for 20 (L). We recommend that you
leave `app.target_api_version' intact and only modify `app.api_version'.
* Improved the REPL so that "self" now always points to the current app
activity. (Only works for API 14 or above.)
* Added support for `&foo' constructs (which should dispatch #to_proc).
* Added Symbol#to_proc.
* Fixed a bug where `app.vendor_project' would generate a .bridgesupport
file containing illegal XML characters (such as '<' or '>') inside
attributes. Thanks to Mark Villacampa for the patch.
* Fixed a bug where the dispatch of an overloaded Java method without
arguments would fail. The runtime will now return the first method of the
list (since we can't match any argument).
* Fixed the `rake {emulator,device}' tasks to terminate the application in
case the user leaves the REPL session.
* Fixed a bug when dispatching certain methods using reflection (REPL) that
return java.lang.Object.
* Fixed a bug in the compiler where a crash would happen when trying to
override a Java method accepting a Java array as argument.
* Fixed a bug in the dispatcher when yielding certain runtime-generated
blocks (ex. enumerators) where the return value would be destroyed.
= RubyMotion 3.0 =
* First public beta with Android support. Make sure to read the "Getting
Started" guide on the Developer Center in order to properly set up the
environment. You also recommend that you read the "Runtime" and "Project
Management" guides.