Category Archives: iOS Development

Turning my iOS Dev Diary into a Membership Site

iOS-Podcast-Icon-2014I find it extremely important to document the things I learn on my coding journey. It has saved my (coding) life many times before. I do such documentations in form of websites which allows me to refer to my notes from any device in the world.

One of those sites is my iOS Dev Diary.

It’s on a spare domain I had lying around that wasn’t doing anything, and when I started adding notes to to the site in 2011 I hadn’t intended it to be a public facing project: I would usually add links to my other sites, add social widgets and make sure the site looks nice so that it makes for a pleasant reading experience.

I dispensed with all that for my iOS notes. I didn’t event pay attention to the traffic it was getting – because seriously: who would read scattered notes and ultra geeky code snippets without a context?

Turns out I was in for a surprise.

The site really isn't anything special to look at - but it's functional, human readable, and people seem to like it.
The site really isn’t anything special to look at – but it’s functional, human readable, and people seem to like it.

One day I tried some CSS tweaks and installed Jetpack so that I could easily apply additional CSS styles without the need for a Child Theme. Jetpack also counts the daily visitor traffic which was about 20 users per day when I installed it in March 2013, not including my own visits.

You can imagine my surprise when I saw that the traffic was steadily increasing to a point that impacted the server the site was hosted on. Today I’m getting nearly 700 hits per day on that site (!), a little less less at weekends, accounting for a whopping 15k visitors per month.

Stats at the end of March 2014

 

Luckily I’m in charge of the server that’s hosting my iOS Dev Diary, so I could use it as a test case for high traffic, and to see how different servers would cope with the load: I tried moving the site to a small Amazon AWS instance running Plesk on CentOS – which promptly crumbled under the load. I increased the power of that instance gradually and found that only a C3 Extra Large instance would hold out – not really an option considering its $300 per month price tag.

Other dedicated servers are more cost efficient, and currently the site is hosted on a dedicated machine at Strato which copes very well. The test provided me with valuable insights on many levels, but at the same time it poses a problem: I still need a place for my notes, and I’m happy for others to use them too. But without locking the site down to “private” I’m still stuck with a lot of traffic and therefore quite a bit of hungry infrastructure overhead.

Unless I find a way to subsidise the cost – which leads me to another exciting adventure: turning my iOS Dev Diary into a paid Membership Site.

Thanks to a couple of WordPress plugins I can partially protect content and ask visitors to join the site for a small fee.

Access is granted instantly after the system processes the payment. The membership protection is live since the beginning of the month and meant quite a bit of work and restructuring for Julia and me. Let me tell you more about the project.

Continue reading

That Bike App

PinkBike-1024x1024

Remember that bike app I’ve told you I wanted to write? I wanted to track all the miles we’re doing on our new bikes.

The app store has plenty of such apps already, but some of them are so complicated that it takes years to figure out how they work. I wanted to create something simple instead and went to work immediately.

I have to tell you it took a couple of weeks of tinkering and learning some new skills. In the end it wasn’t as easy as I thought it was going to be, but I’m proud to say that yesterday I’ve submitted Bike Tour Diary to Apple. Let’s see if they like it!

It’s been four months since I’ve submitted an app (which was TALK! – the speech synthesiser). Funny how quickly the brain forgets important steps and leaves you clueless. Let me tell you all about the writing process, what the app does and what features I’m working on next.

Continue reading

Over-the-air beta updates are not working on my iPad 2

Screen Shot 2014-01-21 at 13.09.53

Dear Apple,

I must have a very special version iPad 2: mine simply refuses to install beta releases of iOS over the air. More specifically, it refuses to activate properly after the installation is complete.

My iPod Touch does this without a hitch: under Settings – General – Software Update I just click on “Update Now”, and after the installation I put in my password, and everything is as it should be, just like with a “standard” new iOS release installed over the air.

My trusty old iPad 2 however (64GB 3G Version) hangs on the activation screen for two minutes, and then gives me the message that it could not be activated. End of story.

What I then have to do is

  1. download the latest beta for my device from the iOS Dev Center manually
  2. shut down my iPad
  3. start up iTunes and make sure I have a USB cable attached to my computer
  4. while holding down the home button, insert the USB cable into my iPad (it’s called DFU Mode)
  5. iTunes will offer to restore my device
  6. select “restore” while holding down CMD (or ALT on PC I believe)
  7. a dialogue window lets me browse to that .ipsw file I’ve downloaded in step 1

This will work, however it will wipe my iPad and I need to restore it from an iCloud backup – which can take an hour or more depending on the amount of stuff I have installed.

My point is: it’s tedious, and clearly doesn’t have to be like this. I’ve read reports from other developers who are experiencing the same problem – mainly on 64GB iPad 2’s with 3G. Is it because those devices are no longer for sale? Have the activation servers been switched off for our devices?

Outraged,

Disgruntled from Haringey

iOS 7 has arrived! And here’s what it does…

icon-ios7-150x150On Speak Like a Pirate Day 2013, the 18th of September, Apple decided to release their latest and (apparently greatest) operating system for iPhones, iPads and iPod Touch devices: iOS 7.

Developers like me have had it since June and we were eased into what may well be a culture shock to many users. We were not allowed to talk about iOS 7 until today due to the non disclosure agreement that comes with the territory of using pore-release software.

Because I’ve been using iOS 7 for the last few months, I can finally tell you what’s changed, what’s better and what’s perhaps not so good about the latest release. Even if you’re itching to press that upgrade button, have a read and get into the mood.

Continue reading

Developing the Development Tools

PatchBay Icon 512x512Every major software company has a collection of internal tools to help them develop their software. These are either off-the-shelf apps like Photoshop, or they are so specialised that they have to be custom written in-house by a team of specialists, often by a dedicated department.

Right now I’m in a similar situation myself: We need a dedicated tool to create the data structure for future reference apps. Specifically we need a simple input mask that makes my iPhone App understand what data I’d like to display without having to tweak a text file.

I can’t quite believe that I have successfully written such a tool for precisely this purpose. Best of all, I did this almost without any code using Cocoa Bindings. Aptly titled PatchBay, this app allows us to create a Core Data store file which I can pick up in iOS and display on the iPhone.

Let me tell you how it came to be, why it’s useful for us and how gobsmacked I am that this has become a reality.

Continue reading

Seek and Ye shall find

folder_findFor the last week and a half I’ve been having fun researching and coding the search function in iOS Table Views.

You’d think there’s just a “thing” you drag into your view, hook it up somehow and “hey presto, it works” (alas that’s how you do it in jQuery Mobile).

Not so in iOS: we’ll have to deal with a search bar, a search display controller and its many intricacies, and then something called a Predicate.

I don’t mind telling you: my head has been smoking… but my hard work and perseverance has paid off, and now I can finally add a search function to all my iOS Apps!

Continue reading

Testing Views App for iOS

I was just browsing through my archive and stumbled upon an iOS App I’ve made a few months ago. It looks great on the new iPad due to really hi-res images – but what’s even better is that it’s written almost entirely without code!

It’s still using Xcode so it’s a native app of course, but there are no complicated Objective-C statements in there (apart from one but it’s not essential to the app).

Here’s how I did it – I even give you the source code too.

Continue reading

How exciting: I’ve just written a Web Browser for the iPad!

Today you find me rather speechless: because I’m sitting here with my iPad which is running a web browser that I’ve just written in Xcode!

As in “written myself, working and doing what I’m expecting it to do”. I’m in SHOCK!

This is seriously cool – and it didn’t take long either. Let me tell you how this happened, how it works and even share the code with you.

Continue reading

Dancing Robot Splash Screen

I thought I’d share a couple of Splash Screens I created for my (since rejected) iPhone Apps. Splash Screens are loading screens which are shown while the sometimes lengthy startup process would show a black screen – unless you provide an image. Makes for a much nicer user experience.

Dancing Robot (above) is lovely cartoon figure called Klank by 3D Universe – I absolutely love their style! I have a couple of other figures made by them and I’ll show you some pre-production artwork a bit later.

As you may have guessed, Dancing Robot is essentially the same app as Dancing Alien with a different character, an animated background and different music. Guess I won’t be submitting that one to Apple…

Continue reading

Steve Jobs resigns from Apple over the rejection of my Dancing Alien app

On Tuesday, my “Dancing Alien” App has been rejected by Apple on the grounds that “it wasn’t very useful”. They pointed me to Section 2.12 of their submission guidelines which explains this.

Today, only a couple of days later, my good mate Steve Jobs resigns from Apple, probably as a direct response to this appalling decision. This is the second time in his career that he had a falling out with management over decisions he’s just not 100% behind.

I’d like to say from the bottom of my heart: thank you so much for your support, Steve – but this wasn’t necessary. I appreciate the gesture though, and I’ll put you on my list of Beta Testers so you can run t he app anyway.

I’m already planning my next app which will include the alien, so I’ll let you know how that’s going. So please, nobody else needs to quite their job over this!

Continue reading