A new bitcoin-focused development framework for Mac and iOS developers has been announced. The framework, called BitcoinKit.Framework, is open source and provides an application programming interface (API) to developers. This will in turn speed up development time of bitcoin apps for Apple products.
For those who have never written a computer program, a framework is essentially an extension to an established programming language. It does so by providing a library of functions that are not part of the original language, but perform regularly used tasks for a given type of end product. It thus saves programmers from metaphorically reinventing the wheel.
If you’re a developer interested in using this framework in your application, you can grab the source code from https://github.com/grabhive/BitcoinKit.
The real potential of this framework is that it opens the way to non-Java, i.e. natively coded, simple payment verification (SPV) clients. Java has been in the news a lot recently as it has suffered numerous security vulnerabilities, and Oracle has been pushing much more frequent updates in an attempt to keep things under control. Therefore, getting bitcoin applications away from that platform is desirable.
When asked by a user of the Bitcoin Forum about why they were not using the code offered by the Bitcoinj project (a Java implementation of the Bitcoin protocol), and instead replicating its abilities, the developer answered:
You’re right, and we’re well aware of this, but we’re looking for a clean long-term solution. I’d say we’re far from against trying to make bitcoinj work, but our resistance to that approach has more to do with the lack of a guaranteed JVM in Mac OS X. We could simply include it in the application package, but that is far indeed from ideal.
When asked whether SPV features would be added to the development framework, it was confirmed that such features are planned.
Yeah we absolutely plan to do this. We’re either going to end up extending some of Jeff Garzik’s work or write our own SPV wallet and include it in the bundle. We were pretty frustrated with the lack of non-Java options too. :/