Just a small nitpick. @synthesize goes away in "modern" Objective C. Removing them will give new iOS developers one less thing to be annoyed about. Since you've done a great job, I think a lot of people will start with this project. Thanks!
Got any references for this so I can do some further reading? As someone starting to learn Objective C, I'm mainly being told to use @synthesize. I did a quick Google for links about it not being required. There are some saying it might possibly be automatically added but then there were also a lot of responses saying this is still not the case & that @synthesize should be used still.
You only need to synthesize when you access the variable directly.
I always access via properties unless I'm within a setter for that property or if I want to bypass my own lazy loading getter code. So I'm left with only a few occasional @synthesize statements in most classes.
And in Xcode, run Edit > Refactor > Convert to Modern Objective-C Syntax. I don't think it helps remove unnecessary @synthesize, but it sure helps with those super-double-extra-verbose-old-style container subscripting accesses.
Most people on HN would be able to checkout and build the app, so why not just use iAd and offer an in-app purchase to remove ads (1$) for the version in store? That way you could collect some revenue and subsidize the cost of the developer license.
If you want to put in some additional effort, a 99c in app purchase is a great option. If not, this game looks polished enough that you could charge for it. Try it at 99c or $1.99, you can always revert it back to free.
This applies to the apps that don't disclose upfront that they run ads. Otherwise, I simply don't download them.
(edit) I don't mind ads per se, but I find it exceptionally irksome when others decide, for me, that I should be made aware of this product and that service. Thanks, but no.
Immediately uninstalling an app that you don't like is reasonable. Giving it a one-star review because it has ads ... how about a little humanity for the developer trying to make a living?
"I don't mind ads per se, but I find it exceptionally irksome when others decide, for me, that I should be made aware of this product and that service."
I don't understand this sentence. What else does an ad do? Or are you referring to the fact that there wasn't a heads-up in the app description?
Thank you for publishing the source, its always great to go over a complete working app rather than just snippets. I think charging 99c and giving away the source could be a good strategy as it gets the developer community involved (with their valuable feedback) but still allows you to recoup a bit of money to cover your expenses.
It is of course your choice what to charge customers, if anything.
I often have the same thought when designing apps: "Is this worth paying even 99¢ for?" I then try to improve the app design to the point where it is worth paying for, if I would end up spending a lot of time developing it that is.
I think it's a shame that you need to pay Apple $100/year to put a free game on their app store. It seems like some sort of special exception for open source apps would be reasonable.
It would be nice if iOS developers could distribute apps on their own the way Mac app developers always have, at no cost to Apple.
But if Apple is hosting an app on their CDN and listing it in their DB they'd be losing money on the amount of work involved for handling all the free apps.
It would be enough if they allowed e.g. all github users to upload their apps to a shared "github community" vendor - github would gladly take the $99 hit for the publicity, and everybody wins.
Complete agree, also the idea of self hosting content in order to save a few $ is really not something we can ever expect - nor should we ask for it IMO.
One of the best features of the app store is that from the consumers perspective its smooth, reliable and just works. Having lots of "cheap" app developers trying to save $100 / yr by hosting their app bin's themselves could results in an unreliable market place that ultimately drives people away from it.
But why release exclusively on a platform controlled by an evil monopolist, considering you are apparently not seeking to shear the easily-parting-with-their-cash sheep that use it?
Monopoly of iOS app distribution due to iOS/App Store lock-in, robbing developers of $100 and 30% of all profits.
Also monopoly of iOS devices, monopoly of OSes for iPhone/iPad and control of a large proportion of smartphone market share with their closed locked-in platform.
Apple created this ecosystem and if we don't like it we can develop for any of the Android flavors and even Windows Phone.
The costs of the iOS and Mac developer programs are to keep Apple from losing money while they do all the heavy lifting for us developers.
Thanks to Apple I don't have to process credit card transactions, set up an app download system, handle refunds nor calculate the taxes to pay to the government.
For 30% of the revenue I'd consider that fair. I make so much more from sales that $99 + 30% is nothing if it lets me concentrate on what I love: developing apps!
I also used to develop J2ME games for a Japanese content aggregator back in 2005 and they took 69% of my earnings for providing the same services Apple does. I'm not being "robbed".
I'm curious, what's with the sense of entitlement? Do you really expect companies to offer these services for free? If not, what would be your idea of a fair price?
Android has none of those monopolies by comparison (although Google Play still appropriates 30%, but at least it's not mandatory to use it)
Developer programs are supposed to be a loss offset by the higher amount of sales of your devices due to having more apps thanks to the developer programs.
Paypal, Stripe, 2checkout etc. process transactions for 2-5.5% fees, not 30% (of course 2-5.5% is also extortionate, but that's mostly due to the VISA/MasterCard duopoly, also very evil, and the horrible idea of credit card chargebacks).
Bandwidth is 0.10$/GB, so it would be another 1% at most for most apps, and doubling and rounding would make 15% the very maximum acceptable cut, with 5-10% a more reasonable one.
But of course most developers are themselves complicit in exploiting the userbase with obscenely pay-to-win games, trivial apps that are $1-2, in-app purchases and more, so they are basically content to share their loot with Apple in exchange for Apple's approval of their dubious practices and protection against their users' attempts to not pay.
---
@synthesize position = _position;
@synthesize lightManager = _lightManager;
@synthesize row = _row;
@synthesize column = _column;
@synthesize isPartOfRoute = _isPartOfRoute;
@synthesize topConnector = _topConnector;
@synthesize rightConnector = _rightConnector;
@synthesize lightState = _lightState;
@synthesize lightValue = _lightValue;
@synthesize gameLayer = _gameLayer;
@synthesize innerCircleSprite = _innerCircleSprite;
@synthesize outerCircleSprite = _outerCircleSprite;
@synthesize routedSprite = _routedSprite;
@synthesize valueSprite = _valueSprite;
@synthesize activeTimeRemaining = _activeTimeRemaining;
@synthesize cooldownTimeRemaining = _cooldownTimeRemaining;
@synthesize chargeTimeRemaining = _chargeTimeRemaining;