[sword-devel] OS X/iPhoneOS based development
niccarter at mac.com
Thu Apr 15 02:30:27 MST 2010
This all sounds good. :)
Just one quick thing, though: PocketSword will be one app that works on both iPad and iPhone/iPod touch. I was looking at this today and I think this will be the best way forward. Apple have designed everything so that this is easily possible, with one codebase... :)
Oh, and to answer your question about NSUserDefaults, yes, that's there! I have just added unlocking of modules to PocketSword, which will be available in v1.2.2 (currently in beta), and that works great using the code in SwordModule.mm :)
Thanks for this work, Manfred! :)
PocketSword Developer - an iPhone Bible Study app
On 15/04/2010, at 7:15 PM, Manfred Bergmann wrote:
> Hi there.
> Now with the iPad already released in USA and in other countries shortly I'd like to push for a consolidation of the Objective-C++ SWORD wrapper classes.
> Which over time has grown quite large consisting of 20 classes in the version MacSword uses. Just for an explanation to others, they build the basis for SWORD based OS X applications and are intended to be able to code in Objective-C exclusively in upper levels of the application (UI).
> PocketSword uses a subset of those classes with some modifications.
> Now shortly since I believe we will again branch for the iPad because it will be a different UI eventually I feel that we have to do something now. Otherwise we will end up having to maintain three code bases which could be one. And it will be a mess.
> Since MacSword 2.2 was released recently I have some time now to work on this.
> I would suggest to make a framework of the Objective-C wrapper classes which can then be used in any OS X (Cocoa) based application just as easily as other frameworks can be used. It would still be necessary to have different builds for ARM and Intel/PPC and Xcode projects but those can use the same code base.
> If any user of the framework needs customised behaviour it is still possible to subclass if really needed.
> The things that need closer look are:
> - Make it work in gc and none-gc environments.
> In MacSword 2.2 refactorings I tried to put in -dealloc and -finalize methods in all classes I touched together with autoreleased initialisations.
> - Logging.
> This might need some time. While I would like to be able to write logs to file with specifying log levels this is not something the iPhone/iPad wants due to slower FS access. But I'm sure there is a solution to this. If some protocols are defined each front-end can still implement it's own logging implementation.
> - Code that uses NSUserDefaults.
> Right now keys for locked modules are stored in NSUserDefaults. Is this something that works on iPhoneOS?
> - Searching/indexing.
> While the iPhone uses the SWORD provided clucene based indexing and searching MacSword uses SearchKit.
> This not a problem at all but we have to define a protocol where each application can implement a provider.
> - Further we would need a place to source control it. Can we have a place for it at CrossWire including a new project in Jira?
> Nic, if you are busy with things for PocketSword right now, don't worry. I would start working on this, compare both code bases and would start a discussion with you about things I'm uncertain - if you give your "go" to do this all.
> I'd also like to finally put in some Unit tests for critical parts so that it can be tested more easily. Unfortunately Unit testing is not so comfortable in Obj-C as it is in Java.
> sword-devel mailing list: sword-devel at crosswire.org
> Instructions to unsubscribe/change your settings at above page
More information about the sword-devel