11 ms·
Sam Soffes open sources Cheddar for iOS
- dillera 14y agothe app reviews in iTunes store seem to hilight some deficiencies
- flyosity 14y agoFor people learning iOS development, this is an awesome project to download and tinker with. Learning how to use Core Data managed objects? It's in here. Custom tableviews? Here, too. Custom fonts? Yup. Blocks? Yes. External RESTful APIs? That, too.
- blaines 14y agoThis is the best "learn by doing" iOS example around to date.
- mgurlitz 14y agoI'm surprised he included the app's resources (icon, etc.) under the BSD license -- rewriting the data store to use iCloud instead of his service (where Cheddar makes money, but also the source of many complaints in reviews) while keeping the UI would make a quick (though somewhat seedy) buck on the App Store.
- dante_dev 14y agoIt's not a big idea, because if you use iCloud, you can't have a webapp that use Cheddar, you can use only on iOS devices and Mac OS X, that would be a HUGE limit. I love the webapp, and I like the idea that multiplatforms clients can be made in fucture (windows, wp7, android, etc...)
- mgurlitz 14y agoThere are plenty of todo apps for syncing to every device you own. Atleast I would pay $1.99 for a gorgeous, dead-simple to use todo list just for my iOS devices (that works offline too).
- josephlord 14y agoApologies for blatant plug but it feels on topic. If you are willing to pass up on the gorgeous you could give my app a try http://iTunes.com/apps/fastlists http://iTunes.com/apps/fastlists Reusable tick able lists for things like shopping and packing. Functional rather than beautiful and import/export by email (no syncing yet). No ads yet (there will be a cheap no-ads in-app purchase when it does have ads).
- brackin 14y agoCheddar's syncing is a bit hit-or-miss. On one hand you know that when you post a task it's synced instantly and you know when it's finished but on the other you have to have a constant internet connection. I use these apps on the Underground to plan my day and always get errors when trying to do anything in app. It's also a huge battery drain, after each small change I see that my iPhone is connecting to the internet and using the app for a few minutes can drain a large percentage. Forgetting about those problems, it's a beautiful app and is very functional although slightly limited. Which could be a selling point vs it's tedious competition.
- stevenbrianhall 14y agoJust saw this come across Twitter: "What @samsoffes has built with @cheddar is amazing for a solo gig: website, iOS app, API, open source, blog, store. Many startups do less." - @bb After checking everything out and struggling with finishing up a thousand little side projects myself, I really respect the thoroughness.
- flightblog 14y agoAgreed. EVERYTHING is polished and complete. Amazing work for a single developer.
- davepeck 14y agoNeat. After a quick poke around, this looks like a great codebase to learn from -- I will certainly point aspiring iOS developers in its direction. All the basics (CoreData, custom table views) are there, as are nice uses of more modern features like blocks and APIs like in-app purchase. Out of curiosity, what's the deal with the CDKHTTPClient? It looks like the implementation is stubbed out for this release -- aka there is a back-end, but none of the back-end code is made available (at least so far)? I only took a quick look, so I might have missed something obvious.
- veyron 14y agoWho produces the high quality photos and video on the site?
- carson 14y agoAs much as I love seeing example apps like this I think beginners probably need to be cautious looking at this code. Here are a couple things that concern me: * The UI is all hand coded. Not to start a religious war but interface builder makes supporting different devices a lot easier. * There is some hairy concurrency stuff going on like this https://github.com/nothingmagical/cheddar-ios/blob/master/Classes/CDIListViewController.m#L414 https://github.com/nothingmagical/cheddar-ios/blob/master/Cl...
- delinka 14y agoOn UI: I cannot appreciate the opacity with which IB creates interfaces. I can't see at a glance what components and objects are related, bound, connected, etc. That said, it's a fine tool to get you off the ground, but I'd rather see code and know how things are laid out than have to guess as I click inspectors, hover over connections, reference source files...
- aaronblohowiak 14y agoUsing IB without understanding how stuff is hand-coded is harder. In my workflows (solo iOS projects..) I have found manual interface creation to have less friction and less OMGWTFBBQ!?!? than trying to get everything working with IB.. not to mention that some properties aren't exposed in IB.
- hboon 14y agoIf you build lots of custom UI and animation, it's pretty hard to do it only with IB. E.g. with a custom component, you see a gray rect instead of how things are laid out, and you'd still need to write the custom bits in code anyway. Now you have the mess in 2 places. There's also other reasons like version control, being able to copy-n-paste, using constants, etc.
- farmer_ted 14y agoThat "hairy" stuff is a straightforward use of GCD semaphores to signal when an animation has finished. I just spent 20 minutes reading up on GCD and dispatch_semaphore_wait(). This technique is elegant rather than hairy.
- natep 14y agoExcellent! I've been meaning to get into Emacs Lisp, so maybe I'll use the API to create an extension or lightweight alternative to org-mobile, with this client as inspiration. I've been meaning to do the same for Google Tasks (which I use) but their product and API is much more complicated and intimidating.
- farhanpatel 14y agoThanks for this. Even though I've made a few apps It still is really hard to get an idea of how big projects come together. It can be hard to organize everything so it isn't one big mess! As a solo developer I dont have a superior telling me "this is how the code is organized" or "when doing this. use this pattern instead". This is going to help me a LOT I'm not about to rewrite months of code but now I'll have a frame of reference of how things should be.
- marknutter 14y agoWhen I was learning iOS development I found it hard to find full, modern example applications out there in the wild like this to learn from. Does anybody know of any more?