May 2012
2 posts
7 tags
Code-fu mantra
Lately, I’ve been living by some mantras when it comes to dealing with code and large code bases. Not sure if its for everyone, but it works for me. This mantras of course pertain to Objective-C and the Mac in general. Subclass as little as possible, composition is better. Keep implementation files around 500 lines of actual real code, beyond that, you might want to think of refactoring...
May 21st
libspatialite for iOS →
Made a static library project over the weekend to build libspatialite for iOS. Includes GEOS and PROJ though they have to be actually linked into and set not to be omitted to get those into the libspatialite target.
May 18th
February 2012
1 post
10.8: Objective-C Enhancements
cocoaheads: Objective-C Enhancements OS X v10.8 includes the following enhancements to Objective-C: Default synthesis of accessor methods for declared properties Type-safe enums New Core Foundation attributes that allow you to specify custom retain semantics Object literals for NSArray, NSDictionary, and NSNumber Streamlined object subscripting Important Beginning in OS X...
Feb 16th
8 notes
January 2012
9 posts
13 tags
MNCoder
Its been about 3 weeks, but I’m finally done with a piece of work that will be used (hopefully) in the iCloud capable version of Mindnode. MNCoder is what I’d call a clever hack using NSKeyedArchiver and NSKeyedUnarchiver to help with portability of certain Apple classes between iOS and the Mac. If you worked on both platforms, you’d know that iOS has its own implementation...
Jan 22nd
6 notes
Befriending Core Text →
Jan 15th
The Word of Notch: Coding skill and the decline of... →
notch: I am a decent programmer. I know a decent amount of computer science theory, I can type correct code fairly easy. I don’t let my classes expand too much. But I still struggle some with math, and I have a tendency to have too many cross-dependencies in my code. I used to think I was an awesome…
Jan 13th
737 notes
Avoiding duplicate symbol errors during linking by... →
Oh this is a gem!
Jan 12th
6 tags
A little advice to companies
Before you engage a developer to build a mobile app for you, consider the following points, Are you shoving your web page into an app? Are you providing a catalogue of products/services/etc. with no useful way to purchase them beyond being just a showcase? Are you adding a “game” so that people will actually use your app? Are you using the app as nothing more than a marketing effort? If you...
Jan 8th
20 notes
The iPhone Tab Bar →
When designers get bored. Or a more sane way to do tab bars.
Jan 7th
Mobile Progressive playback: An atom story. →
For the people working with code that has to do with video.
Jan 5th
Don't be STUPID: GRASP SOLID! →
Jan 5th
iOS and Mac Development Link Roundup: December... →
Such a gem.
Jan 1st
1 note
November 2011
1 post
7 tags
A Core Data Primer
Everyone’s first encounter with Core Data would be through books and the occasional glance at the documentation. No one tells you what are the base tips in bullet points that you need to know. Having worked on Core Data for the past 9 months, I thought it’ll be a service to the community to at least commit something to Google’s memory. Everything except NSManagedObjectContext is thread safe. ...
Nov 28th
49 notes
April 2011
3 posts
8 tags
Check registeredObjects before...
Not too sure if this is the right way of doing this, or if anyone has even tried, but be sure to check the registeredObjects NSArray of the NSManagedContext prior to fetching stuff. This of course only applies to SQLite backed stores, and this is done to reduce SQLite queries and inevitably disk I/O. You can effectively query the registeredObjects using almost the same predicate as your...
Apr 6th
4 notes
1 tag
fork();
Some exciting things are happening and I’m at the brunt of it. Will reveal more when I can. All signs point to yes at this present moment and I’m really excited for the days to come.
Apr 4th
1 note
8 tags
Event-ed NSURLRequest
Have been very much inspired by the work on nodejs. For those of you who don’t know, nodejs is a basically a system to do Evented I/O using Google’s V8 Javascript engine. One such application of nodejs is the development of servers both HTTP or socket based that doesn’t require the spinning up of threads to handle connections and/or network events. Callbacks are assigned to events and when those...
Apr 2nd
25 notes
January 2011
1 post
4 tags
Not that available
By a stroke of luck or fate, I’m doing lots of work for a startup on their iOS app. Pretty ambitious goals they have for what they want to accomplish and I’m pretty much on the same page with them to see this well executed. As such, I won’t be that available for additional work. Still, contact me if you think I can help.
Jan 18th
8 notes
December 2010
1 post
“Typical developer. Listened to what the customer wants and did what they want...”
– Scott Stevenson (NSConf 2009)
Dec 13th
November 2010
4 posts
Advanced iPhone Development Course on iTunes... →
Should be a good follow up after finishing CS193P
Nov 19th
How to be a Successful Software Engineer →
Pretty much everything I see as essential
Nov 16th
6 notes
Bradley Wright: Using Dropbox as a Git repository →
Useful and its kinda free for collaborative private work.
Nov 10th
220 notes
9 tags
Competitive Analysis
Background Recently an app was posted to the App Store that had exactly similar functionality to my first foray into proper iOS development, Traversity. Initially, I welcomed the new entrant. That lasted until I actually saw the app for myself. Right off the bat within the App Store, I could clearly seem some form of plagiarism (or flattery, but that would require some credit where its due)....
Nov 5th
1 note
October 2010
5 posts
9 tags
Marco.org: WWDC session spotlight: API Design →
marco: One of the surprisingly useful sessions from WWDC 2010 was #138: API Design for Cocoa and Cocoa Touch. The title wasn’t a very good expression of its content. It’s more fairly (albeit verbosely) titled, “Conventions, naming styles, and structural guidelines that Apple has used for the Cocoa… For anyone who did not attend WWDC10 and is into API/backend design. This is a must...
Oct 26th
68 notes
5 tags
What is Amazon's approach to product development... →
This is genius. I’ve always thought that current SDLCs taught in school are pretty bullshit.
Oct 24th
6 notes
3 tags
Better filesystem
In a haste to get to sleep, I accidentally delete the original numbers document of the software estimates that I’ve been working on for 3 hours. In this day and age, why isn’t there a better file system that upon deleting a file, show you the logical amount of space left on the system and just keeps the file hidden, overwriting the space of the oldest deleted file to make space for...
Oct 5th
7 tags
Install iOS apps without iTunes
There might be times where you beta testers are not near the computer they sync their iOS devices with and you don’t have invites to testflightapp. So one of the ways to get your betas onto their phones without requiring a sync is actually by using the iPhone Configuration Utility. Steps so you can tell them how to get your beta onto their device, Launch iPhone Configuration Utility. ...
Oct 3rd
1 note
9 tags
Universal Framework
I’ve always loved backend code to be as cross platform as possible. Writing everything based upon Foundation and CoreFoundation only is one of the ways to do that and I’ve always strived to adhere to that principle as much as possible. While that is cool, the problem begins when you actually want a universal library to work on both OS X and iOS. There is no such thing as Xcode clearly separates...
Oct 1st
2 notes
September 2010
2 posts
“Progress isn’t made by early risers. It’s made by lazy men trying to...”
– Robert Heinlein
Sep 17th
6 notes
WatchWatch
So I worked on another Mac app. This one does something I’ve wanted for a very long time, automated entry of timetable events into iCal for my University. Its largely an endeavor very much for myself but I suppose it would make sense that others would find it useful. As usual, I’ve pushed the underlying code onto Github. Sharing is caring as they say. In order to make anyone’s...
Sep 7th
August 2010
1 post
WWDC10: The Conference →
My recap of WWDC10.
Aug 20th
June 2010
1 post
5 tags
To infinity and beyond
Just about a month ago prior to WWDC10, I made the decision to drop any web development and concentrate on native development for the OS X platforms which include the iPhone and the Mac. Since then its been a whirlwind with many opportunities presenting themselves. Sadly I can’t take any offers to join companies due to issues with my Scholarship. That being said, freelancing and consulting...
Jun 28th
May 2010
8 posts
8 tags
... one down.
A year back, I attended my first WWDC. It was a fantastic experience and upon coming back, I set to create an iPhone app as a precursor to starting development on the Mac. Now the inspiration simply came from splitting the bill with friends when we went out to eat. I set to create a replica of an actual check and gave an iPhone user the power to accurately get the amount payable per person...
May 21st
8 tags
One up...
So yesterday Apple finally approved Traversity after 2 weeks in the App Review process. My education with regards to developing and deploying an app on the iPhone platform is more or less done. Save for bugfixes and feature improvements, Traversity should be on hold until I get the next app out. Still, important lessons were learnt and it was a worthy project as a first foray into the whole...
May 21st
8 tags
Xcode, there's this thing about you.
There’s this curious thing about working on Xcode. I’ve never seen myself, upon finishing a project, go immediately back to the IDE and start on a new one. Has never happened to me back in my Windows days with Visual Studio 5.0, 6.0, .Net and what not. Has never happened to me with NetBeans and whatever other incarnation of a Java IDE for school. Maybe its just being a fan boy, but...
May 14th
9 tags
WWDC10
Its official, just got my WWDC10 ticket activated. Will be in SF from the 4th to the 13th of June, so for people who want to meet up, hit me up then. Twitter (@echozdevdiary) is fine to leave messages. I’ll try my best to get back to you.
May 14th
Updatable Regular Expression Signatures
This is the idea. To have an application that does signature matching via regular expressions while also being able to update the signature remotely. This method makes exclusive use of RegexKitLite because libicucore is bundled with Mac OS X as well as the iPhone OS. Presenting JOSignature. This version just implements NSCoding so you would have to call the serialization and deserialization...
May 12th
6 tags
Back to the drawing board
Working on a new project. Using stuff learnt from the initial work on Traversity. Namely the process where creation of the data model and associated libraries are done first and foremost before connecting up the GUI. As a usual practice, the library will be open source. No sense creating something that no one else will use. Check the progress on Github. This should be fun.
May 11th
14 tags
Functional Design
Too often we get too caught up with features and frameworks available to us that we go overboard with using everything. There are many developers that overuse custom user interface elements, and others that misuse system user interface elements. When I was developing Traversity, I was looking around to see how best to make the App look good. Of all the Apps on my iPhone, one that stood out the...
May 10th
4 tags
Community Driven App Approval Rates
App Store approval has always been a controversy. So much so that Apple has devoted a small 230x190px space buried under “App Store Approval Process” in the developer portal to telling you the percentage of apps that were approved within a 7 day period. We have OpenRader to track bugreports, so why not a community drive initiate to get better approval ratings. Last I checked, the...
May 7th