

Show HN: My First iOS Game - Lumio - sephine
http://joannecdyer.com/2013/03/18/lumio-my-first-ios-game/

======
melling
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!

\---

@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;

~~~
LTheobald
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.

~~~
hboon
Read
[http://developer.apple.com/library/ios/#releasenotes/Objecti...](http://developer.apple.com/library/ios/#releasenotes/ObjectiveC/ObjCAvailabilityIndex/index.html)
and on a related note, read
<http://clang.llvm.org/docs/ObjectiveCLiterals.html> too.

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.

~~~
rimantas

      > You only need to synthesize when you access the variable
      > directly.
    

You don't. @property will take care about creating ivars. So with @property
(strong, nonatomic) NSString *foo you get _foo and accessors.

The only place I need @synthesize is in NSManagedObject subclasses.

~~~
hboon
Ah. I stand corrected. I @synthesize because I always want foo and not _foo.

------
niggler
++ for sharing the source.

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.

~~~
pdenya
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.

~~~
niggler
For those who want it for free, they can compile from source :)

------
stugrey
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.

------
jayfuerstenberg
Congratulations on your first iOS game!

Have you considered taking it further and monetizing your hard work?

You deserve to be rewarded for the entertainment you're providing.

~~~
sephine
Thanks for everyone's nice comments! I just made it to be a fun project not
sure it's worth charging anything for :)

~~~
jayfuerstenberg
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.

------
thurn
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.

~~~
ihuman
To play devil's advocate: Apple hosts your app, (sometimes) promotes your app,
handels updating, has good uptime, etc.

~~~
biafra
And you have no choice but to sell through their shop.

------
scottchin
Congrats on the release and thanks for open-sourcing! I downloaded it and left
a positive review!

------
danso
Thanks for open-sourcing it!

------
MaxGabriel
Hey, I saw you used Bugsnag -- my former coworkers made that. What's it like
using them?

~~~
sephine
Using Bugsnag yeah, I'm happy to say I haven't had any crashes yet! It's nice
to know I'll see them if I do, plus it's free and really easy to add.

------
rluhar
Look great and thanks again for open sourcing it. I am also working on a fun
iOS side project (as a break from the day job).

Do you have any recommendations for useful resources (books, websites, etc.)
for somebody just starting off?

------
uribs
It's a girl!

And a nice game!

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?

~~~
kawsper
Where exactly is Apple a monopoly?

~~~
uribs
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.

~~~
jayfuerstenberg
There is no monopoly.

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?

~~~
uribs
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.

~~~
jayfuerstenberg
I'm sorry but who are you to dictate to Apple how it should be running its
business? Apple doesn't do loss leaders like some other companies.

While other companies are offering free services (not really free - you and
your data are the product) Apple sells products/services at a profit.

If you consider that evil then all I can suggest is that you don't give Apple
any of your money. "Vote with your wallet" as they say.

\------

Those payment services you listed only provide the payment end of things.

They don't make a giant store that helps users find you in the first place.

In case you didn't know, 63% of sales are derived from discovery within app
stores ( [http://www.businessinsider.com/search-is-the-biggest-
driver-...](http://www.businessinsider.com/search-is-the-biggest-driver-of-
app-discovery-2012-8) ).

People who otherwise wouldn't have learned about my apps if I went solo and
used paypal DO discover them because of Apple.

In other words we make more money in the end because of the ecosystem Apple
has created for us developers.

Have you ever actually developed and marketed your own apps? This should be
obvious to you if you have.

