The quiet part of the year

I don't like keeping users of my products in the dark but there really hasn't been too much to share in the last few months, partly because I needed a break and also because I wanted to concentrate on my day job. I haven't given up on making products though and have been working hard with what time I have to be able to provide you with great products!

Here is an update on where I am at with each product:

Defects Collector - I would love to increase the rate additional features are added to this product but if i was going to do that then I'd have to change it to a subscription based model. Which I don't want to do because there are already products like fulcrum which offer fantastic subscription services and I want this app to stay in the domain of a "pay once" product for easy and fast inspections.

Notography - Big update coming soon, plenty of improvements to take advantage of iOS7. 

 Flood Damage Assessment - This product is now fully owned by Shepherd Services Pty Ltd and it's development can be followed on their website.

My list of outstanding projects hasn't been updated in a while, a few things have changed but I am committed to delivering on schedule.

Why developers should start caring about AutoLayout

WWDC this year gave the impression that Apple really wanted to push developers to start building apps with auto-layout. Historically auto-layout has been kind of difficult to use which lead to people hard coding their layout constraints or having fairly static UIs. In iOS7 there have been a lot of improvements which makes auto-layout a lot more appealing. Why should we use it though? 

Apple don't push a particular technology unless they plan for it to be used. We've already heard rumors of a larger screen iPhone later this year and while we all thought it would be up-scaled, it feels now a lot more like it will be expecting apps to have used a responsive design.

It wouldn't surprise me if all apps which don't have auto-layout properly configured will be automatically disabled for download on this device until the issue is resolved. This may seem crazy in the apple environment but it would definitely force developers to start designing their apps for auto-layout.

There are a lot of ways this can go but one thing is for sure, auto-layout deserves a second look if you had previously given up on it.

Hidden jobs in indie development

If you are an indie developer working on your own, it's easy to get stuck in the mindset that you have one main role "Software Developer". While this may take up a large portion of what you do and you may be a professional in your field, it does not mean you will be successful. To be a successful indie developer you need to recognize all roles you are responsible for. 

Marketing and Sales

It's not enough these days to throw a product down there and see who comes. You need to be "always closing" as it is called in the world of sales. Not all developers are good salesmen, you either need to become one or get one. When someone wants to talk to you about your apps you need the best way to sell your idea, to make the audience believe your product is worth buying. This is fundamental and important and should not be taken lightly. 

Marketing should not be an after thought that you pursue within the week Apple take to approve your product. It should begin at concept, you need to plan from day one how you will promote this product and even get people in the industry involved with the key functionality design of the product.

I cannot stress how important it is to build your marketing while your build your product.

Accountant

It is inevitable at some point you will need to pay taxes for the products you sell, having done a lot of work with financial data before I tried to do this myself. What you should be aware of though is this puts a lot of risk on yourself, you are a developer not a registered tax accountant. You don't watch for changes in Tax Law, you don't look for every single deduction, you have no idea how to handle your financial records and that is perfectly normal.

I highly recommend outsourcing to a Tax Professional and just getting them to show you the basics of what you need to do, how to register your business and keep records and let them worry about the rest. 

Project Planner

On your first project it isn't unusual to get an idea, sit down and start coding. Doing this will almost always set you up to fail. 

You need it to be clear in your head what this project is, what your minimum viable product is and how long it will take to reach that stage. There are many ways to plan each project, find one that works for you. 

Understand that your time is not free. The time you spend on your products could be time spent doing contract work at an hourly rate. You need to apply those same rates to your time to make sure the project will be viable in the long run. 

and the rest... 

The point is, you need to be prepared to step outside of your comfort zone, to do things outside of the scope of just programming. If you can't do that, find someone who can and employ them.  Good luck starting your indie software business.

What does the introduction of MFi game controllers mean for developers?

Another WWDC and another swag of great feature and framework updates for iOS and Mac OSX. The introduction of Sprite Kit and update of Game Center is a much needed step in the right direction for producing more and better games on iOS but one feature that really interests me is the introduction of MFi game controllers. 

In the past if developers wanted to be able to support controllers on their iOS games they would have had to use 3rd party bluetooth controller which pretty much just emulated a keyboard being attached. This wasn't bad but it also wasn't overly popular and had limited use. The iCade was a popular devices along with the iControlPad, there was even an app so you could use a second iOS device as a controller called Joypad. All of these systems were fairly easy to implement, the problem is though not many developers did, instead opting to focus on the built in tools like accelerometer and on screen controls. 

So the introduction of controllers that are easy to implement to a consistant standard is a pretty cool thing. What do developers have to think about though?

Opportunity

Very soon when kids go to their apple stores or local electronics store they will start seeing some very interesting controllers on display, there might even be demo units out for kids to have a play on. They will probably sell reasonably well and in the short term if there are only a handful of games which support these controllers then you have a huge opportunity to boost sales of your apps. 

It's also an opportunity to do things differently, there has always been a gap between games based on consoles and those based on touch devices due to the difference in controls. This is no longer such an issue. 

People don't remember all the products that do great things, only the ones that do them first. 

Balance

Gameloft also released a controller once for use with their games, it's sales were pitiful but that may just be because it only worked on a very small selection of their games. One thing that really stood out on their first person shooters though was that it was much easier to aim at something with a controller than with the touch screen, just like it is easier to drive a car with a controller than an accelerometer. 

There is a huge balance risk here as the control scheme could potentially change the difficulty of the game quite heavily and reaching a mid point is hard work. In a first person shooter you may have to have higher aiming assists and racing games may need more powerful driving assists, etc. You also run in to the problem that the Wii had with Mario Cart by designing it to work with those annoying plastic wheels, the game became so simplified that it just wasn't fun to play with a controller, there was no depth and nothing exciting about driving.

Reaching a midpoint where both playing with the device or with a controller feels equal will be the hardest thing developers need to deal with.

Hybrid Controls

One idea Apple seemed keen to push was using the controller for some things but then using the screen or accelerometer when it makes sense to. The case controllers that keep the device in the centre could make use of this fairly well. 

To me, it seems like something worth exploring. That same theory is what made the Nintendo DS a very popular console before the rise of iOS gaming, so it is definitely an area worth exploring. I'm sure finding a new and exciting hybrid control scheme would be a great way to get featured by Apple. 

The challenge here is supporting gameplay when a controller isn't actually connected, you need to be able to design it in a way so that the two control elements don't get too jumbled when you are just playing on the single screen. 

Don't forget the screen!

While controllers are cool, not everyone will use one and not everyone who uses one will take a controller everywhere they go. You should still offer the alternative of onscreen controls or similar and unless you specify your app is controller only fairly clearly and have good reason for it, your app would probably be rejected. 

Airplay

Imagine you have a computer or iDevice with an Apple TV and controller in the house, you can pretty much emulate a console experience! Playing the game live on TV with your controller while the computer or iDevice handles the game like a console.

Optimising your game to run over airplay could extend sessions of play quite significantly, don't believe me? Try comparing the average play time of a kid sitting in front of a TV playing a game to that of a kid sitting in their bedroom on an iDevice. More play time means more iADs presented, more in-app purchases bought and more feedback on your product.

Cool! So how do I get started? 

If you are a registered developer you can get started right now, the only issue you will have is that you will have a small testing window to see if it is all working. The first controllers come out in fall around the same time as iOS7. 

One final thought... 

If you can now share the same achievements and leader boards over both OSX and iOS and share game data and state information via iCloud between OSX and iOS AND use the same controller for both OSX and iOS AND use Sprite Kit to developer games that will work with the same code on both OSX and iOS.... doesn't it seem like the era of true mobile gaming has begun where you can start, stop and pick up your game / match from where ever you are and whatever device you are on? The first game to take TRUE advantage of the opportunities Apple have provided, will be pretty damn awesome!

 

When and why developers should use iCloud

There has been a lot of discussions over the past months about the quality of the iCloud service for syncing and storing data between multiple devices, a lot of these discussions seem to have come from a post about why developers should never use iCloud, while some of their points were valid I now want to tell you what I tell anyone trying to make these sort of decisions.

You don't always need to lock yourself in to doing something just one way, especially when services can run side by side without incident and without dependence.

I will admit, iCloud has both issues and limitations but it also has great strengths which other services cannot provide. The strongest of which is the absence of a login screen to access your data, there is nothing more damaging to apps than providing a login screen to the user prior to proving the app itself is worth it's time in gold to the user. Since you require an apple account to be logged in to be able to download any apps, it can be assumed you will most likely be logged in when using the app.

There are other advantages such as it being free to use and the API isn't entirely horrible and seems to handle the key value store and documents reasonably well even if the core data functionality needs a little work. The point is though that it is perfectly functional in some capacity.​ So how can you make the most of these strengths?

​It is important to have your own data service, you want your product to be fully scalable and able to be rolled out on multiple platforms, that is a good thing, all developers should want this option. What you could do though is store a unique account key in the key value store on a users iCloud account as well.

What would this allow you to do? Well, it means your users could potentially log in once on an iOS device and then never log in again across all of their devices. While this mechanism only really works on iOS there is some value in it as more and more people have both an iPhone and iPad in their lives.

The other advantage is you can delegate certain data storing and syncing to be handled by iCloud to lower the stress and bandwidth usage on your own servers. This would have to be non-essential to non-iOS devices of course but ​leaves you some breathing room. Maybe you have certain settings and parameters which only apply to iOS and don't need to be stored on the same data system as your website.

iCloud isn't the knight in shinning armour we want it to be and most likely never will be but it can still be used to produce better products. Shunning it entirely just closes a door and avenue to improve your product.​

Not enough hours in a day

​So I recently changed day jobs in hope that it would give me more flexibility to pursue my own endeavours without bootstrapping me financially while also helping out a great friend who has a great business. So far I love the move, the new team and work environment is great and it looks like in the coming months I will have some of the flexibility I crave.

For now though, I've never been busier and I'm finding a lot of projects getting pushed back in time and prioritised differently. This is sad and not the experience I want for my customers but please, bear with me.​

The main reason I decided my iOS software and tutorials have to be part of a business model is so that I would be able to offer this level of support. I love the open source environment but "you get what you paid for", even the most dedicated developer gets tired when the experience isn't making them income. I don't want that, I want to keep making good products and doing everything that comes through the suggestion box.

Enough about me... what's happening with the business?

Lots of stuff is happening!

  • ​I have ordered the first (of possibly many) web servers so that I can provide a much better experience for users of "Defects Collector" and it's upcoming improvements.
  • "Notography" is a few weeks from completion. The main functionality is built and we are in the refining, testing and UI beautification stages.​
  • Business and updates plan is being put in place so all supported apps receive regular updates. This is important to me, technology changes and no app should be left behind.

Thank you for all your support, the emails I receive are wonderful and full of great ideas! Keep them coming please!​