iOS Development Archives

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.

Read moreTurning my iOS Dev Diary into a Membership Site

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.

Read moreThat Bike App

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

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 …

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

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.

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

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.

Read moreDeveloping the Development Tools

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!

Read moreSeek and Ye shall find

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.

Read moreTesting Views App for iOS

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.

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