[sword-devel] OS X/iPhoneOS based development

Manfred Bergmann manfred.bergmann at me.com
Thu Apr 15 02:51:35 MST 2010

Hi Nic.

Am 15.04.2010 um 10:30 schrieb Nic Carter:

> 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...  :)

Well, I know iPhone Apps work almost unchanged on iPad. But the iPad had a much larger display and I think that eventually it also offers more possibilities in terms of UI so that maybe sooner or later a new iPad application will be there. Even if there were only small changes in Interface Builder XIBs/NIBs and view controllers you would need to branch.
I'm also not sure whether the UI design guidelines are the same for both.
If I look at iWork on the iPad for example then this is a completely new set of applications with a new designed UI especially for the iPad.

> 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  :)

Alright, good to know.


> Thanks for this work, Manfred!  :)
> ybic
> 	nic...  :)
> ----
> Nic Carter
> PocketSword Developer - an iPhone Bible Study app
> www: http://crosswire.org/pocketsword
> iTunes: http://itunes.apple.com/app/Pocketsword/id341046078
> Twitter: http://twitter.com/pocketsword
> 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?
>> Comments?
>> 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.
>> Manfred
>> _______________________________________________
>> sword-devel mailing list: sword-devel at crosswire.org
>> http://www.crosswire.org/mailman/listinfo/sword-devel
>> Instructions to unsubscribe/change your settings at above page
> _______________________________________________
> sword-devel mailing list: sword-devel at crosswire.org
> http://www.crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page

More information about the sword-devel mailing list