August 7, 2014
Are You An Indie Developer?
I wrote about the current discussions and predictions surrounding Indie developers in my previous post. However, I think I tried to tackle a few too many topics in that post and so, didn’t do a good job of discussing one of the more important points that I did want to talk about – what an Indie developer is.
Some of the blog posts I linked to in my previous post seem to narrow the definition of an Indie developer, or rather an Indie iOS developer, down to a very select group of people – developers who develop iOS apps specifically for sale on the Apple app store. Personally, I don’t think this is accurate at all.
People being who they are, maybe the definition is just aimed at creating an exclusive (or elite) club of people 🙂 Or maybe it was just a self-serving definition to justify the argument that Indie iOS developers are getting to be an endangered species – because it’s so hard to make a living on the App store. I don’t know. And I certainly do realize that saying that this was indeed due to one or other reason that I mentioned would be to do an injustice to the original authors – they simply might not have considered things from the same viewpoint as I.
Given that an “Indie” is simply an independent developer, I would think that anybody who works for themselves, and not for another individual, company, or entity for a monthly wage, would be considered an Indie developer. So, whether you make your living on the Apple app store or through consulting for third-parties, if you make your own living and are your own boss, I would consider you to be an Indie. But that’s just me 🙂
I guess the trouble with my definition is that if a consultant can be an Indie, then you can’t claim that Indie developers (or Indie iOS developers, specifically) are not doing well financially and that the future looks gloomy for them. Now you’d think that this would be a good thing, wouldn’t you? But for some, I don’t think things are good unless they are bad 😀 At least, that’s the impression I get about quite a bit of the human race. A lot of us seem to be Eeyores – we just can’t be happy unless we have something to moan and groan about 🙂
To go off on another tangent (if you’ll indulge me), just take a look at the current state of science fiction movies – most of them are full of doom and gloom, showing post-apocalyptic worlds where people are eking out a living or fighting for their lives. Now, I grant you that except for a few notable exceptions, science fiction movies might not always have shown rosy futures. But we seem to be at an exceptionally low point right now. Where’s the hope? Where’s the dream of a better future? And most of all, where the heck are the darn flying cars? 🙂 I prefer science fiction as it used to be, especially in the golden age stories, where we dreamed of a better future. And I want that back!
But to get back to Indie developers, for whatever reason, people want to narrow down the definition of an “Indie”, but I don’t think we should just accept it because somebody says so. Question what people say if that doesn’t make sense, I say.
To be an Indie is a great thing – at least in my book. You work for yourself, you decide your own destiny. And you should be proud of it! And more importantly, it’s not all doom for Indies, you do have a future ahead of you – just decide what you want to do and go for it. The world could be your mollusc of choice 🙂
Posted by Fahim at
June 8, 2014
Apple, Swift and the Whining (and oh, how they whine …)
I am not particularly fond of iOS developers who take potshots at Android as if to prove that Apple/iOS is somehow superior. (Or to prove their loyalty to the cause? :p) It feels unwarranted and somewhat cheap. Why argue about whether a hammer is better than a screwdriver or not? Just use the best tool for the job and be done with it! Live and let live.
That said, I also get annoyed when people start talking about Apple as if everything it does is negative just because it’s from Apple. I’ll probably tune out most of these comments most of the time because some of these people just can’t seem to help themselves (and some are simply trolling :p) but sometimes, the sheer amount of illogical commentary just gets me going enough to write about it. This is such an instance 🙂
This is all about Swift (and people’s reaction to Swift). And oh, do I have a lot to say!
To start with, soon after the WWDC keynote announcement for Swift, I started seeing comments along the following lines:
I don’t want to learn another programming language!
(I imagine this to be said in a whiny child’s voice – I think my imagination might be slightly mean …)
That is totally your prerogative, buddy. Nobody is forcing you to learn another language. If you want to develop for iOS, you can still use Objective-C. If you don’t want to develop for iOS, then why do you care?
Why do we need another programming language? Why can’t they have used <insert language of choice here> instead?
What I find interesting about this complaint is that nobody seemed to complain when Google introduced not one, but two new languages in the form of Go and Dart. Or when Facebook introduced Hack.
Of course, to be fair, maybe somebody did complain and I wasn’t paying attention. We pay attention to things we are interested in after all – and I’m very interested in Swift. I wasn’t as interested in the other languages I mention above but I did read about each one when it was introduced. So, to be fair, let’s say some people did complain at the time and that I just don’t remember it being so. But, I do see a lot of complaining about Swift.
When I mentioned that nobody was complaining about Go, Dart, Hack etc. somebody responded with “those languages weren’t developed in secret without an open spec”. Umm … what? Leaving aside the fact that that comment might be inaccurate (with regards to the “secrecy” bit), you can’t create a new language unless you do it in public? Who made this rule? And why wasn’t I informed of it? 😀
It’s simply amazing how people create new rules to justify their own complaints when they aren’t being consistent! Or is that just me being an Apple fanboy? That’s probably it, I’m a fanboy sheep who can’t understand the highly evolved reasoning behind the rules for creating a new language that obviously exist in the rarified circles of computer language designers/developers … or something 🙂
But it gets better. Oh yes, way, way better.
I also came across what purported to be a critique of the Swift language. The author claimed that Swift just didn’t go far enough in its changes. I was interested in reading the post because I wanted to know more about Swift. I wanted to see how it might be improved or to learn about features in other languages which were better/different/interesting.
The article started out well enough, but then we got to the author’s first point – he was not happy that Swift was mutable by default. He had some code to illustrate the point he was making, but the issue was, that that code was wrong. Disregarding the variable naming issues he had in his code, the code he provide just would not compile on Swift. Turns out that he just read the publicly available Swift book but did not actually try anything out on Swift to see if his assumptions were correct.
His justification? Apparently, he could not justify shelling out $99 to download the Xcode 6 beta. Fair enough. But then why talk as if you were an authority on a language that you’d actually not tried out? Why sow misinformation just because you assumed certain things but weren’t sure? If you are a scholar of languages, shouldn’t you know that assumptions land you in trouble? Or is it OK to just spread misinformation out there as long as you get to create another blog post?
I tweeted about the above blog post in general terms, commenting that if somebody were to do a critique of a language, shouldn’t they have at least tried it out first. The response I got to that from somebody else (not the author of the blog post) was to the effect that – “if a language is closed source or platform dependent one need not to (or cannot) try to critique”.
Huh? What? You need not critique a language if it is closed source or platform dependent? So nobody ever took a look at .NET to see how it could be improved? Nobody should examine Java more closely?
How does that compute? I asked this person that. His response? “if someone has to download an SDK of several gigs just to try a language it’s worrisome”.
Leaving aside the fact that it doesn’t even answer my original question, that makes no sense whatsoever, again. Why is it worrisome that you have to download an SDK of several gigs? If you don’t want to download the SDK, fine, don’t do it. But then don’t claim to know the language in the first place. Or, if you do want to critique the language, then shouldn’t you download the SDK and try out the language first?
Colour me confused.
But then I got more feedback/comments – “Languages should be developed independent of platforms. Otherwise there’s very little incentive for putting an effort to learn.”
Where do people come up with this stuff? Do they think that it’s somehow “noble” or “pure” to develop for open source or cross-platform languages? How does that work?
And did this person seriously believe that people don’t put in the effort to learn a language if it was platform dependent? Then how do you explain the popularity of .NET or Delphi or even Objective-C? (Of course, Objective-C is technically cross-platform and so might not qualify as a platform-dependent language …)
I asked him about the whole incentive thing and mentioned that there were lots of people making plenty of money developing for .NET, Delphi, Objective-C etc. Why were these people working with these dead-end (according to him) languages if there was no incentive for them to do so?
His response was “That’s the whole point. Closed-platforms allow select few to rake money on consulting, maintenance & training.”
Wha …….? Evil closed platforms rake in the money doing consultancy, maintenance, and training while nobody makes any money from open-platform products? How does that work? You mean nobody makes any money from open-platform, open-source languages? The poor dears. I feel so bad for these noble souls toiling away on these open languages at this point. I’m almost ready to give up raking in gobs of cash from working for the evil overlords and convert to the pure and noble cause of open languages …
Oh wait, that’s not true! None of the above is true!! What the hell? Open languages developers (probably, given that I don’t have actual figures) make as much money as developers working for closed-source, platform-dependent languages. There is no such divide as he seems to claim. In the old days, this used to be called FUD (fear, uncertainty, and doubt). Microsoft used to claim that you’d get some sort of cooties if you worked with Linux. Now apparently, the shoe is on the other foot and open-source, cross-platform developers are (or to be fair, this particular developer is) using FUD the same way that Microsoft used to. Oh, how things stay the same 🙂
I don’t even know who the “select few” he’s talking about are. Does he really think that there’s some shadowy mafia behind closed-source, platform-dependent language developers who go, “Hey, you, you can take this project and make this much money. But be sure to pay us our cut, capisce?”
And does that mean that I’ve been working for the IT mob all this time? How horrible! (Or how wonderful, if you’ve always loved Goodfellas :D)
Perhaps the person I talked to really believes that open-source, cross-platforms is an idyllic, Arthurian Camelot where everybody gets along and decisions are made democratically, and nobody has to bow down to a shadowy overlord. And maybe he’s right. But that’s not the reality I’ve seen myself and I’ve worked on both sides – I’ve worked on open-source, and closed source, cross-platform and platform-dependent languages. In the end, they are all just tools. (And whether I’m talking about the languages or the people, I’ll let you decide :p)
Yes, I’m straying away from the whole Swift topic. But the above conversations are real. And they illustrate the kind of logic I’ve been encountering and I guess I can either just shake my head and move on, or just jump into the fray. Or, I can blog about it 😀
I really wanted to talk about this article too, but this post is already too long as it is. So I’ll save that rant for another day …
Posted by Fahim at
June 4, 2014
WWDC 2014 Keynote (and Aftermath) Reactions
By now, I’m sure almost anybody interested in mobile development in general, and iOS development in particular, has seen the WWDC keynote video or has read about what was revealed at the keynote. I’ve been going over everything since the keynote and since it appears that Apple might at least be partially lifting the NDA (at least according to these posts), I thought I’d jot down my thoughts in between watching WWDC session videos 🙂
Just so you know, I’m not going to be talking about anything revealed during the WWDC session videos (at least the ones released so far). Instead, I simply want to talk about the big picture stuff – the stuff revealed during the keynote. Even there, wow, how much is there to talk about?
First of all, I’m just staggered by the number of features that was announced. Sure, some of it was expected but there was some really exciting stuff there that just came out of the left field 🙂
From my own wish list of items (I mentioned those in my previous post, here), some items did make the cut. Apple did revamp their keyboard with the QuickType keyboard. But not content with that, they also opened things up to allow third-party keyboards. That’s huge! I’m looking forward to the variety of keyboard functionality we might have soon – at least three well-known Android alternative keyboard developers are already on board to bring their keyboards to iOS according to what I’ve read.
But even if Apple had not opened up the keyboard, it looks as if the new QuickType keyboard might have been enough. It does a far better job than the old iOS text prediction system and according to Apple, not only will QuickType predict words, it will also predict phrases and sentences. So, good times ahead 😀
We didn’t get user profiles or system profiles with iOS 8. But what we did get was family sharing. It’s not quite the same thing but it’s something. It does solve an issue that I at least have had quite a bit of the time – how do I share apps or content that I’ve bought on iTunes, with my wife easily? Family sharing does seem to address that part of the issue. Of course, it still doesn’t address how I keep my high score intact when my wife takes over my iDevice … but baby steps, I suppose 🙂
SpriteKit did get a fair number of enhancements. I’m happy about that since that seems to indicate that Apple is serious about helping game developers. I still haven’t had enough time to play with SpriteKit and so don’t know all the interesting bits. Plus, talking about additional stuff is probably not wise at this point.
The same probably goes for universal storyboards – a feature that I did get to see a bit more in action 🙂 I don’t know how much I can talk about, but it’s definitely looking like Apple is ticking another box in their plan – the one I mentioned in my previous post where I said that I was sure that Apple had a roadmap on how to extend the UI for iOS. Or rather, the building of the UI for iOS. I’m very interested to see where that goes.
But one thing that I can talk about (and everybody already is talking about) is Swift! I believe that that announcement caught almost everybody totally by surprise. And what a surprise it has been! I think a lot of people are going to be talking about Swift for a long time to come – at least, I hope so since I love the language and all the nifty features it brings with it.
If you haven’t checked it out, at least do yourself the favour of downloading the free e-book that Apple made available the same day as the keynote, here. The first 40 pages or so should be enough to get you up to speed on the basics and all the goodies that Swift has to offer.
I’ve heard a lot about Swift over the last day or so – some people are like, “I don’t want to learn another language!”, and others say “Why did they have to go create a new language instead of enhancing an existing one?”. I’ve heard still others moaning about how long it’ll take them to learn the ins and outs of Swift.
I don’t want to get into each of those issues. Plus, some of those topics can be pretty subjective depending on where you’re standing. But what I can tell you is that I understood the basics of Swift within a couple of hours (and 40 or so pages of the above mentioned e-book). Swift is nothing new, the syntax and the coding structure should be pretty familiar to you if you’ve worked in Objective-C, Lua, PHP, Java etc.
But what it does is make your iOS development work that much faster and better 🙂 No more header files. No more lengthy lines of code to simply set up a string just the way you want. No more @ signs.
Instead, you get cleaner, more concise, and more powerful code that works with the same iOS APIs and classes you’ve already come to learn – if you’re an iOS developer that is 🙂 I, for one, am looking forward to doing a lot of coding using Swift. Bring it on!
Posted by Fahim at
June 1, 2014
What I’m Interested to Hear from WWDC 2014
It’s interesting to speculate about what Apple will reveal tomorrow. Leaving aside the hardware speculations, there’s always a lot to wish for on the software side. While iOS is already on version 7 (has it been that long?) it still has a lot of areas that need work. Will Apple fix any of these? That’s the question …
For instance, there’s the whole issue of input – I mean keyboard input. Apple has been sticking to their own keyboard since iOS was introduced and so far it doesn’t look as if they’re going to loosen their grip. And that’s rather annoying for those of us who want to get any typing done on the iOS virtual keyboard 🙂 Apple’s suggestion mechanism for the keyboard just doesn’t cut it for fast typists. I really wish they’d open up the keyboard so that we can have choices. Will that ever happen though? No idea.
Another area that can use a lot of work is that of profiles – both user profiles and system profiles. By user profiles, I mean the ability for different people to use the same iDevice in parallel. Granted, this isn’t a huge deal most of the time except for games on a phone – I just hate it when somebody takes my phone, starts playing a game and goes through a level that I hadn’t played 🙂 But on iPads where more people tend to share the same device, the issue even extends to areas like contacts, calendars and so on. So it would be nice if there was a way for multiple people to share the same device without stomping all over each others’ data and settings.
But more importantly, iOS still lacks any kind of system profile functionality. Here, what I mean is being able to have a set of customized device settings that you can switch to at will. For instance, I might not want the phone ringer on at specific times during the day. Or I might want the device to switch off mobile data when I connect to specific WiFi access points. Currently, all we have is the very limited Do Not Disturb feature – but that’s a one-size-fits-all solution. You can set the phone to turn off the ringer for a specified time interval every day, but you can’t even customize that to further, for instance, to be able to turn off the ringer at a different time each day. Or, for several different time periods on a given day.
So what are we likely to see this year? That, I don’t know. But given the way Apple has been moving – the introduction of auto layout, and then the refinements to auto layout a year later etc, it looks very much as if Apple is working from a set playbook. They have a plan and they are steadily ticking the boxes in getting their plan in place. So, it looks very much as if larger screens (or at least screens with different resolutions/sizes) might be on the cards. But will they reveal anything this year that further cements moves in this direction?
And what about gaming? Apple seemed to be giving a nod to 2D game developers by introducing SpriteKit last year. But SpriteKit is a bit limited in what it can do. Sure, it can be used to create 2D games easily – but it still has some rough edges. Will Apple be polishing out these rough edges this year? Or will it simply let SpriteKit languish in the same state it was in when it was first introduced?
So many questions! Hopefully, at least some will be answered soon 🙂
Posted by Fahim at
September 12, 2009
The Games that GarageGames Plays?
A few weeks back, I wrote about my experiences with GarageGames‘ iTGB product and what I found missing from it, as well as how the product could be improved. Of course, my blog doesn’t have that many regular readers and I don’t update it that much. So the notes were just for those searching Google for opinions on iTGB so that they would know all the facts before they bought the product. So I was rather surprised when I received a rather vitriolic comment on the second post about iTGB which attacked me rather than provide anything more concrete about the iTGB product itself than to say that GarageGames is “one of the very few companies that’s out there trying to provided productive tools for development on the most open, accessible platform there is today.” (his words, not mine).
The comment did read a bit as if it had been written by a GarageGames employee and I said so in my response to him. And I also re-iterated the points that I was complaining about with regards to iTGB – that GarageGames was misrepresenting iTGB as an easy to use tool when it really wasn’t. Plus, their support (both pre- and post-sales) is barely there since they seem to depend on users searching their forums. Why pay a lot of money for a product which is billed a “professional” level when the support just isn’t professional level?
He came back with more vitriol and personal attacks about my competency to judge the product but never really responded to the “sock puppet” thing except to deflect it with a comment about how he liked sock puppets and so on.
If there had been one comment, I would have thought that the guy was somebody who came across the blog accidentally and was just hurt by the besmirching of the good name (as he saw it) of one of his favourite products. But two comments? That seemed a bit beyond the call of duty. So I took a look at my comments section and I noticed that both comments had come from the same IP.
So I did a look up on the IP and this is what I found (I’ve taken out parts of the page and am showing only the two relevant bits):
Hmm … so the comments were coming from somebody who was staying at a hotel in London? What business traveler actually takes the time to respond to blog posts if they are traveling? That looked a little suspicious. Of course, one might point out that I had no reason to actually believe that s/he was a business traveler or that s/he wasn’t an employee at the hotel or that the person might have been on vacation and spending a rainy day indoors by looking for some trolling action. All of this was possible 🙂 But the tone of the e-mail and the rabid defense of GarageGames, made me think, now more than ever, that this might be an employee of GarageGames.
So I checked on another thing. I checked my Apache server logs to see if the person had come from Google or some other search engine to my site. I wasn’t very surprised to find that this wasn’t the case. They weren’t referred from another site but came to my site directly – probably via a bookmark or a link from an e-mail.
Sure, again, this wasn’t conclusive proof. There are utilities around that help you erase your tracks, to hide referrers and so on. But it was beginning to look more and more (at least to me) as if this person was from GarageGames and was simply trying to make the company appear look good by making all sorts of claims. Honestly, it would have made GarageGames look much better if they’d listened to my constructive criticism and made some changes. But this probably was cheaper 🙂 (Again, I should try to be objective and mention that it’s possible that GarageGames as a corporation might not have known about this little stunt. It might have been just one individual acting on their own.)
Anyway, I didn’t see much point in following this up further because I didn’t have conclusive proof. Plus, the individual never came back and so I just let it go. That was, till today. Today I was taking a look at the GarageGames forums for something and came across this post:
What? A GarageGames employee was actually visiting London the same week that the comments appeared on my post from a London hotel? How coincidental can that be? (Actually, to be fair, it still could be coincidence but it’s beginning to seem more and more like it isn’t …) According to his profile, Brett Seyler is an employee of GarageGames (and I think I read somewhere else that he was director of technology or marketing or something …).
So did Brett Seyler post those comments? I don’t know. It’s possible that this was still done by somebody not connected to GarageGames. It’s also possible that there were other GarageGames employees traveling with Brett and the comments came from one of them rather than Brett himself. I have no way of knowing. But the evidence is piling up against GarageGames and if these shenanigans indeed were carried out by one of their employees, then they are indeed rather contemptible. Fix the issues, acknowledge you have issues, don’t try to intimidate people and spread false propaganda – that’s how I would approach it. But then again, I’m not a corporate type 🙂
March 6, 2009
The Book of the Mac
I’ve been slowly getting disillusioned with working on Windows due to the various issues that have plagued me on that platform in recent years. As I believe I’ve mentioned before, I would have switched away from Windows years back except for the fact that I had so many applications which were developed on (and for) Windows. I tried Windows Vista for a while and for a while, even swore by it. But that was before I started experiencing mysterious application crashes and lock ups. I then went back to Windows XP. And let me be honest, Windows XP has worked pretty flawlessly for me.
And then Microsoft released the first betas of Windows 7. It was touted as better than Vista and that it fixed all the biggest issues with Vista. So I took heart and tried out the Windows 7 beta. My opinion? Other than for some annoying and confusing changes which just made it look even more like OS X, it still had the same annoying application issues that I’d noticed with Vista. It was probably then that I began wondering if Microsoft was working so hard at emulating OS X, why not switch to OS X in the first place?
Of course, I can’t swear to the above but that thought. or something similar, has led me to finally switching allegiances and going over to the dark side 🙂 Yes, baby, I’m a Mac user now!
Once I made the switch-over, the first thing I did, of course, was to try and find applications to replace all of my standard faithfuls that I’d used over the years under Windows. I knew that I might have trouble with some applications, especially since I wrote some of them, but I didn’t expect any trouble with e-mail since I currently use Thunderbird and there’s already a version of Thunderbird available for the Mac platform. But sometimes, when you’re wrong, you can be utterly wrong! 😀
I thought it would be as simple as installing Thunderbird for Mac and then copying over my existing Thunderbird mailbox files to for me to set for e-mailing under OS X. And at first, it appeared to work like that. Then I noticed that some of my mail folders were not accessible and this turned out to be a permissions issue (yeah, you don’t have that under Windows :p) However, once I fixed the permissions, Thunderbird started crashing all the time. It became so bad, that I had to find an alternative e-mail program.
So I looked at Mail.app, the standard mail client which comes with OS X. It imported in my existing Thunderbird mail with no trouble at all. (Since Thunderbird had an option to import Apple Mail, I thought I might be able to go back to Thunderbird by importing back my mail but Thunderbird unfortunately would only import the main mailboxes – not the mail in local folders.) I tried out Mail.app and it actually worked very well. It worked with IMAP folders better than Thunderbird had and it had this nifty feature called “smart folders” which allows a user to display mail from different locations/mailboxes fitting a given set of criteria as a virtual folder.
The only trouble I had with Mail.app was something trivial – the lack of customizable signatures 🙂 Yes, I love my e-mail sigs. I like being able to insert a witty quote from a Terry Pratchett book in all of my e-mails and I couldn’t do this with Mail.app. Now most people would have shrugged and moved on but little details like that niggle at me 🙂
So, I first looked at alternative e-mail clients. But I didn’t find anything that had the right mix of features that I was looking for. So I went back to Mail.app and considered how I could leverage the application to do what I wanted to get done. That was when I came across AppleScript. AppleScript allows you to automate the various OS X components quite easily and it seemed easy enough to write a script that would do what I needed with regards to creating a dynamic signature.
But it turned out to be slightly more complicated than I thought and given that this entry is getting overlong, the actual process will have to wait till my next blog entry 🙂
February 26, 2009
February 25, 2009
February 22, 2009
February 7, 2009
Next Page »
Tweets for 2009-02-07
Posted by Fahim at