WaniKani / OS-X-Notification

A OS X Notifier App for Wanikani.com
9 stars 3 forks source link

Refactored architecture #4

Closed jessecurry closed 10 years ago

jessecurry commented 10 years ago

I did some pretty deep refactoring to get the codebase ready for more substantial changes in the future. There are some places where I'm not really honoring the law of demeter, but I plan to fix that in the future.

The biggest change is that I moved away from pulling and setting data, instead option to use Cocoa Bindings to observe changes to the new model objects. I was also able to eliminate the reliance on SBJSON as OS X now has a native JSON parser built in.

The last change is that all of the data is now stored in three model objects WKUser, WKStudyQueue, and WKLevelProgression… any calculated values have been moved out of the AppController and into the model objects.

Everything is working well for me at the moment, but I'd like to build in some automated tests to make sure that things don't break in the future.

SebastianSzturo commented 10 years ago

Thank you very much again for your Contribution! I made this app when I didn't have much clue about MVC and its really nice to see that someone takes care of it with so much love. I am really that I don't have any time left for this app.

I added you to the team for this repository. Keep up the good work! 素晴らしい!

jessecurry commented 10 years ago

Thanks Sebastian. Any thoughts on future features? I've got a bit of time over the next few months that I could put towards the app.


jesse@jessecurry.net www.jessecurry.net cell.813.478.4058 :


On Fri, Jan 31, 2014 at 5:05 AM, Sebastian Szturo notifications@github.comwrote:

Thank you very much again for your Contribution! I made this app when I didn't have much clue about MVC and its really nice to see that someone takes care of it with so much love. I am really that I don't have any time left for this app.

I added you to the team for this repository. Keep up the good work! $BAG@2$i$7$$!*(B

$B!=(B Reply to this email directly or view it on GitHubhttps://github.com/WaniKani/OS-X-Notification/pull/4#issuecomment-33774070 .

SebastianSzturo commented 10 years ago

Sorry for my late answer and thank you for your hard work! :+1: The improvements in the codebase are of the project are really awesome and they are definitely the right approach. The feature list I had planned was just some more user statistics in the profile screen on the settings view and a nice introduction screen like the one Tweetbot uses on the mac when it gets started for the first time. (http://cl.ly/Tim8) The popup you implemented is a really nice idea. But I would prefer to keep the look of the app like a native OS X App. So we might reconsider the design of the popup. It would be also a bit too big for a 13" Macbook and below.

jessecurry commented 10 years ago

When you say you'd like a native look do you mean that you want to stick with a standard menu? Or just a popup that looks more like it fits within standard OS X? When I started adding items to the menu I felt like it was at odds with a standard menu so I pulled inspiration from some of the status bar apps that I use (Dropbox, Fantastical, Evernote, Mint, etc…)

Dropbox: dropbox

Evernote: evernote

Fantastical: fantastical

For my first pass I was adopting a dark (HUD style) color scheme like Fantastical, but my recent passes have leaned towards the lighter color:

current-design

If you think that a standard menu is best I can abandon the popover development. I was hoping to add some additional info in a table view in the middle of the popover (Recent unlocks or critical items).

Is there a specific Macbook that the popover doesn't work with? I've done most of the development on a 13" Macbook Air and it appears to fit with plenty of space below, but the air may have a larger vertical resolution than some of the other models.

SebastianSzturo commented 10 years ago

I would like to stay with a normal menu and move the statistics and infos to the "User" panel in the Preferences or in a "Statistics" panel. Again, thank you for your hard work!