Any ideas about multiple issues? #4

Open
ffranke opened this Issue May 17, 2011 · 31 comments

Projects

None yet

8 participants

@ffranke
Owner
ffranke commented May 17, 2011

How to solve the problem of multiple issues in one app. Anybody got some ideas?

@nike121
nike121 commented Jun 7, 2011

after asking on the baker.git area it seems that an html5 version of a library is to be build with links to book files (see magGames app on appstore) i am working on creating this at the moment and will commit once im done modifying it

@sethrubenstein

Second that! More importantly now can we make it work well with the iOS NewsStand frameworks!

@nike121
nike121 commented Jun 7, 2011

Just saw the keynote I got the iOS5 preview build and will play with it to test

Sent from my iPhone

On 7 Jun, 2011, at 11:08 PM, sethrubenstein reply@reply.github.com wrote:

Second that! More importantly now can we make it work well with the iOS NewsStand frameworks!

Reply to this email directly or view it on GitHub:
#4 (comment)

@themarper

I need multiple issues in one app. Someone build it already?

@sethrubenstein

Ditto on that does anyone have an example we can play around with of multiple issues working?

@BTermorshuizen

im working on a library viewer that does multiple issues (browsing covers, downloading, archiving, syncing with a rest server etc.) comparable with the adobe stuff. its progressing nicely now (after some issues with multi threading in core data).

ill check the newsstand stuff to see if i need to continue this.

@ffranke
Owner
ffranke commented Jul 13, 2011

That sounds really awesome!!!

Do you do it in HTML or xCode? or both?

@BTermorshuizen

all xcode - i can send you the project if you like?

@ffranke
Owner
ffranke commented Jul 13, 2011

I'm a bit busy right now, so no stress.
So it's all xcode. How do you define the multiple issues? xml?

@sethrubenstein

Wow@BTemorshuizen that sounds awesome. Can't wait to see it. Let us know if you need any help or testing or whatever.

@BTermorshuizen

well, basically there is sync functionality in the app that does a rest call that returns a list of issues in a json format, syncs with local datastorage (core data) and asynchronously gets the covers for the issues and stores those on the file system.
An issueviewcontroller (which handles the ui for each individual issue) is dynamically created for each issue and put in a scroll view (which increases its content size as necessary). This allows for springboard & swipe navigation.
I've added a tabbar with a badge (to indicate the number of new issues), have a 'featured' section (not yet implemented) and an info section (just for help etc.)
The actual download and unzipping of issues (or dossiers if you like) is still to be integrated, as well as archiving functionality and the viewer itself.

@ffranke
Owner
ffranke commented Jul 13, 2011

For now it sounds great! Thanks for your efforts! Keep us updated!

@nike121
nike121 commented Jul 14, 2011

wow that sounds pretty awesome! would you like any of us to do some testing for you?

@BTermorshuizen

ill just round it off a bit & integrate the reader (also important). After that, help is certainly appreciated!

@nike121
nike121 commented Jul 14, 2011

Awesome let us know - I'd be happy to test it tonight!! Hell start up a donate column so I can contribute ;) I've been trying multiple issues for a while now but not much success

Sent from my iPad

On 14 Jul, 2011, at 6:46 PM, BTermorshuizen reply@reply.github.com wrote:

ill just round it off a bit & integrate the reader (also important). After that, help is certainly appreciated!

Reply to this email directly or view it on GitHub:
#4 (comment)

@sethrubenstein

Ditto. Awesome work. Can't wait to see it and play with it. And absolutely lets get a paypal donate thing setup here because this is something weve all been looking for.

@ffranke
Owner
ffranke commented Jul 14, 2011

That's why I love open-source! It's really thrilling to see, how people evolve the project!!

@BTermorshuizen

Hi,

attached project status so far - couldnt spend too much time on integrating the reader so that's still in progress.

just to talk you through:

  • siteless magazine is the project name and it takes graphics and stuff from that site for testing purposes
  • minizip for unzipping
  • json for json parsing

Viewcontrollers:

  • FeaturedViewController - not being used now. Idea is that you can mark issues/dossiers as being 'featured' and that those show up here. The 'featured' feature is not yet included in the datamodel nor in the json format.
  • InfoViewController - place where you can put anything that help your readers understand how to use you app, direct them to your site etc by editing the corresponding xib
  • LibraryViewController - this is where the main stuff is happening. note that covers are referenced by url in the json string and resolved afterwards. It still needs some cleaning up - inserting a pic that is used when the cover could not be resolved. Besides the syncing functionality, it also takes care of the instantiation of issueviewcontroller objects and doing layout management
  • IssueViewController - this is the viewcontroller of a single issue. Design (xib) is still crap and will be updated. Also takes care of downloading/unzipping of a single issue and archiving (which removes the issue from filesystem)

its a mixed storage model:

  • issues are stored using core data (sqlite database). You can inspect the database using sqlite database browser. As you can see, the database is not included - it is created automatically if it does not exist.
  • cover graphics are stored on the filesystem -- the location of the cover on the filesystem is persisted in the database. It's a full path - i havent run into problems with it.
  • issues (dossiers) are stored on the filessystem. The 'archive' operation removes it, the 'download' downloads it, unzippes it and persists the reference to it in the database.
    the datamodel is in the xcdatamodel file. The classes Issue, Cover and Content are generated from that datamodel. It puzzles me why it doesnt generate the correct typing for the references (which explains some casting in the code), i just left it because then its easy to just regenerate the classes after a change of the model.

to check out what's happening, it's easy to just monitor the folder and database that sits in there. Starting over is also easy: just remove everything that sits in that folder (/'user'/Application Support/iPhone Simulator/4.3.2/Applications/'applicationid'/Documents/)

the json format is easy to understand, just make sure the issue numbers are unique. On my site, there's only one testissue included - (issue number 1). the others do not exist.

Underway

  • integration of a reader. The reader should include a ui that allows the user to return to the library.
  • refactoring of some methods (some are too long and windy)
  • contemplation: maybe it's better to get rid of the tab bar (featured and info is gone then): some first experiments showed that it's actually tricky to go over the tab bar. If the entire tab bar is gone, then a navigation controller would do the trick.
  • generalize the code/naming and include it in the github (after testing)

all feedback / issue reports is appreciated!

gr b.

@ffranke
Owner
ffranke commented Jul 20, 2011

Sounds really good. Unfortunately I got no time at the moment to look further into. I try to take a look at it in the next week!

Thanks for all your work!

@BTermorshuizen

no worries - kinda busy myself too

On 20 jul. 2011, at 17:02, ffranke reply@reply.github.com wrote:

Sounds really good. Unfortunately I got no time at the moment to look further into. I try to take a look at it in the next week!

Thanks for all your work!

Reply to this email directly or view it on GitHub:
#4 (comment)

@nike121
nike121 commented Jul 28, 2011

if you would like we can test your xcode for you, i could help with the UI design and reupload if you like

@BTermorshuizen

hi, i almost integrated a reader and removed the tabbar. should be finished this wk. your help is greatly appreciated!

Bart Termorshuizen

On 28 jul. 2011, at 03:14, nike121 reply@reply.github.com wrote:

if you would like we can test your xcode for you, i could help with the UI design and reupload if you like

Reply to this email directly or view it on GitHub:
#4 (comment)

@dixiepnum

BT....not sure if you are going to share your project, but I expect to be headed down a similar road. I basically want to set up a LibraryBookshelf that sits inside my magazine, similar to what you see in iBooks. The key is, it sits inside one window of my app. It gives you access to a wide variety of material that is either stored in the app, or in the cloud somewhere. Each item in the Library will have an icon. Click it, and a Reader window opens.

But can someone explain why multiple issues need to be STORED inside the magazine app instead of on the server?

@BTermorshuizen

sounds similar - idea being though that you can actually download magazine issues so you can read them off-line. That's why they are stored on the device. In my solution, i also have an archive function, that basically removes the magazine off the device.
Because you want to support proper off-line operation, a sync functionality is handy - to see if new issues are available that you do not yet have.

i will share the project

@dixiepnum

Thanks! Sounds like an attempt to recreate zinio or goodreader, or some combination of both...

Sent from my iPad

On 2011-07-28, at 11:56 AM, BTermorshuizenreply@reply.github.com wrote:

sounds similar - idea being though that you can actually download magazine issues so you can read them off-line. That's why they are stored on the device. In my solution, i also have an archive function, that basically removes the magazine off the device.
Because you want to support proper off-line operation, a sync functionality is handy - to see if new issues are available that you do not yet have.

i will share the project

Reply to this email directly or view it on GitHub:
#4 (comment)

@tablazines

Is there anywhere we can get the code for this? Is there anyway we can see it in action.

@BTermorshuizen

You can find the download link on http://www.siteless.org/?p=585

@tablazines

why thank you kind sir...lol

@folletto
Contributor
folletto commented Aug 4, 2011

Wow. This is indeed interesting! Lucky me I checked. :D
BTermorshuizen, are you doing the changes on Baker or on Laker? Because it would be great to have these changes on Baker so everybody can inherit from that and we don't for everything too much.

We are near the release of versione 3.0, integrating all the changes of Laker - well, what was there in the latest version - and adding smoother navigation and more. Could you check it out? :)

@tablazines

I'm about to release a new magazine on Baker...so when will version 3 be out? I'm wondering if I should just wait.

@folletto
Contributor
folletto commented Aug 4, 2011

The features are almost all there - except the manifest, to avoid merge collision. We are now sorting out a few bugs, you can check the progress on the trackers as usual. ;)
https://github.com/Simbul/baker/issues?milestone=7&state=open

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment