Hi Manfred,
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! :)
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: [email protected]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
_______________________________________________
sword-devel mailing list: [email protected]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page