Hey all,
I have some wonderful news. Over the past several months I've been working on a
fork of HotCocoa. With the help of other contributors (Watson, Isaac, Jake,
Bernard, Francesco, Jason, and all the past contributors), it is now time for a
new release of HotCocoa. The best part is that it will be an official release,
with rubygems and everything!
You can install it from rubygems right now:
sudo macgem install hotcocoa
It is recommended that you use MacRuby 0.11, but MacRuby 0.10 should still
work.
For those of you who don't know, HotCocoa is a MacRuby library that aims to
simply the creation and configuration of Cocoa objects when creating Mac apps.
You can use it inside of an existing MacRuby Xcode project, but HotCocoa
includes tools to heelp you build applications entirely without Xcode. The
source is currently hosted on Github at:
https://github.com/ferrous26/hotcocoa
The source includes the point form list of changes since HotCocoa 0.5, but I've
included a long form of the changes for interested parties:
* New application builder to work with MacRuby 0.10+
The old application builder had statically set itself to compile 32/64-bit fat
binaries, and when MacRuby deprecated 32-bit support this begin causing some
problems. The old application builder has been fixed and refactored, but it has
also been deprecated in favour of a new application builder that works with
appspecs.
* New application templates now use an appspec, similar to a gemspec
An appspec is much easier to use and much more flexible than the old
config.yml file. It is a ruby object, just like a gemspec, and can be much more
dynamic. It also offers quite a few more configuration options than config.yml.
Appspec is the future, and config.yml is now deprecated. You can learn more
about appspecs from the documentation:
http://rdoc.info/github/ferrous26/hotcocoa/master/Application/Specification, or
from the template file:
https://github.com/ferrous26/hotcocoa/blob/master/template/__APPLICATION_NAME__.appspec.
We are also looking for feedback regarding the new appspec format, there is
still a lot of room for growing and maturing and community feedback will help
guide the process.
* Lazier loading for mappings (may break custom mappings!)
HotCocoa used to load the all mappings and simply not evaluate them until the
requisite framework was loaded; HotCocoa now evaluates the mapping right away
but does not load the mapping until the requisite framework is loaded. This was
done to simplify the code base, and it will lower the memory foot print for
most apps as more mappings are added to HotCocoa. The trade off is that you
will need to be responsible for loading your custom mappings yourself, which
you were probably already doing.
* API documention (~67% coverage so far)
API documentation is an ongoing effort, but most of the important pieces have
helpful comments that should make learning/using HotCocoa easier. You can view
it online: http://rdoc.info/github/ferrous26/hotcocoa/master/frames
* Regression tests (< 67% coverage so far)
Also an ongoing effort, coverage is not great, but its not bad either. The
example apps are still tested out between non trivial changes.
* Updating and porting of the tutorial documentation (~40% complete)
Along with the API documentation, you will see that some of the HotCocoa
documentation from the MacRuby website has been ported and updated. It is
important to note that you should refer to the updated version of the
documentation if it is available.
* HotCocoa now works when compiled
You can use the rubygems-compile gem to compile HotCocoa successfully. When
compiled, HotCocoa will load at least ~2.5 times faster, but as much as ~5
times faster.
* HotCocoa is now leaner
Various small optimizations and refactorings have gone into HotCocoa 0.6; this
is also an ongoing effort. Faster boot and run times is a long term goal.
* Various bug fixes
A few bugs were squashed during the refactoring. Not all of which were
implemented by myself, so HotCocoa should be more stable than ever. :)
* 4 new mappings:
* bonjour_service => NSNetService
* bonjour_browser => NSNetServiceBrowser
* line => NSBezierPath
* tracking_area => NSTrackingArea
* 2 graphics improvements:
* Image class works with more image types (BMP, JPEG2000)
* Image class can save images
But there is still a lot more that can be done for the future; HotCocoa is a
very ambitious project:
- Cocoa Auto Layout
- HotCocoa-Graphics update
- Improvements to the tools, specifically project management, configuration,
and testing
- More test coverage for HotCocoa
- More API documentation
- Port the remaining documents and tutorials
- And more!
Cheers,
Mark
_______________________________________________
MacRuby-devel mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel