October Update – 2012 – Expression Engine & Codeigniter Development

My blog has been quiet recently due to lots going on.

In summary, I have moved into Pheonix Square.. and to put it bluntly, am loving it. No more work from home, I am now mixing with other local businesses and can claim to work in a building with its own cinema.

My recent crop of projects involve the launch of an app for the LWA, a personal documents management system built in Codeigniter and a Members only site built in Expression Engine with some bespoke Codeigniter plugin development.

On a personal note, the next version of Teach My Kids (www.teachmykids.co.uk) is well underway. Lots of new and exciting ideas so cannot wait to see that complete.

IE7 Tax – About time?

An australian online retailer has made news by charging customers a tax if  browsing the site using Internet Explorer 7 (IE7).  This is to recoup costs incurred by his development team in trying to get the site working in IE7.

To some, this may be somewhat extreme, as a developer I can see where he is coming from.

As time passes, the number of browsers we have to ensure our sites work in increases, yet when Firefox or Chrome release updates, we can target their latest versions, but when it comes to IE, we have to go as far back as IE6. Throw mobile browsers into the mix and you have a long list of platforms and browsers to test on for what could be a very small code change. Someone has to absorb this cost, and for a long time it has been the developer.

I know some agencies charge according to browser support, I have in the past when doing sites for the NHS charged extra since the departments which ultimately use the sites were primarily IE6 users. Another project which targeted schools across the UK also have a requirement for IE6, which again I made sure I included in my quote.

When embarking on any project, as a bare minimum, I target all major release versions of popular browsers for both the mac and pc. If special circumstances warrant older versions, I include a cost for this.

I realise, for some, upgrading is a trivial task, yet for others (e.g. NHS) it is a major upheaval. But a line has to be drawn as to what, as developers, we can include as part of a quote.

Native Mobile Apps vs Hybrid Mobile Apps vs Web Apps… which one?

It can be confusing. Trying to understand the mobile app landscape is not for the feint hearted. Then to make a marketing decision on which option to adopt requires a certain degree of technical knowledge. Well fear not… I will attempt to explain below how they all differ and which option is the best for you. Note that this is not and won’t be an exhaustive technical comparison, there are plenty of those out there. This article will only cover IPhone/IPod/IPad and Android apps.

To answer the question, which do i need? the simple answer is… one of them. As to which one, the simple answer is, it depends. Let me explain….

The rise of apps is well known, the technical hurdle in bringing an app to market is, for many… is not so well know.

Native Apps

Native apps are apps built using development tools and software provided by the main companies, e.g. Apple, Google. For a while, it was the only way you could create apps.

Google provides the Android SDK (Software Development Kit) which is what you need to code and build a native Android App. Java is the programming knowledge required to build Android apps using their SDK.
Apple provides Xcode, the software  required to build native IPhone/IPod and IPad apps. Xcode makes use of Objective-C programming language.

The Problem

If, as a company, you wanted to create an IPhone and Android app, you would have to build it twice, once using the Android SDK and then again using Xcode. This is not only a lengthy process, but is also costly, which for many puts their ideas for mobile platform domination on the back burner.

The Solution – Hybrid Apps

The only real solution would be a way of using readily available web development resources, and have one app built which could become available to both the Android and IPhone (aka Hybrid Apps). For a few years, this area has seen a lot of activity. Many such products and services have sprung up allowing web developers to create one app and have it work for both platforms. The two big players are www.phonegap.com (who were bought out by Adobe) and Appcelerator.

The End of Native?

Far from it, products such as Phonegap and Appcelerator require the use of additional software and services to access native phone functionality, which is readily accessible with natively developed apps. Also, there is the problem of performance. Androids adoption by big phone manufacturers has resulted in a fractured, flooded smartphone market with varying hardware specifications, as such, due to the way in which Hybrid Apps work internally, more handset resources (memory, processor) can be required to carry out tasks which Native Apps do with relative ease. As such, the user experience can vary greatly with issues ranging from slow screen transitions to crashes. As such, there is a lot of activity in javascript library development, e.g. JQueryMobile, Sencha Touch to try and increase the number of supported Android handsets.

Mobile Web Sites

Jumping to the conclusion that you require an app can be, for many, jumping the gun. A mobile web site makes use of mobile javascript libraries, e.g. JQueryMobile, Sencha Touch and replicates the functionality found in apps, e.g. the slides, popup messages, tab bars etc to create what appears to be a smartphone app. The difference is that the app is not available from the app store, but from a url, e.g. m.mywebsite.com. Users would access the site by visiting it through their smartphone browser. They offer the least in terms of handset integration (e.g. cannot use the camera, compass etc) but they are a more cost effective way to get a mobile site up and running. A well known site that have taken this approach over having an app created is www.ft.com (try visiting the site from your smartphone). The way it benefits is that it can offer a mobile version of your site as it has instant access to your pages. Using special code, the site can detect that it is being browsed by a smartphone and redirect the user to the mobile version of your site.

So.. which is for me?

As you can see, it isn’t simple. It is all down to your requirements and budget.

I can certainly help you in making an informed decision, so please get in touch using my contact form.

New Site, New Blog

It has been a very long time coming, but I have finally managed to get my new site up. The blog and projects area is looking thin at the moment but I plan to add posts over the coming weeks. Rest assured, I have been working on loads. Get in touch if you want to know more.

The reality of working for yourself

I enjoy working for myself. Being my own boss and making decisions on pretty much all aspects of running a self employed business.

Being around my family and actually being able to see first hand my little boy grow up. When I was in full time employment I literally saw very little of him during the week and so would only hear what he had done that day after I got back from work, which quite often was half an hour before his bedtime.

Fortunately, I am now in a position to be able to pick and choose my projects, decide on which direction I would like to head in and have the energy to concentrate on my own pet projects in parallel.

Despite this rosy picture, there is a side which takes some getting used to. It is something which in hindsight seems really obvious, firstly…

YOUR HOME IS NOW YOUR OFFICE

Quite often, despite the nice set up, you will have off days. When projects have taken longer than you expected, or when invoices haven’t been paid. This is when you become a right ol’ grump. In the office you would bite your lip and simply get on with it. Whereas at home it is the ones around you that bear the brunt of your grouchiness. It takes a long time to be able to separate home from work. But it is possible, like anything you need to learn to walk away from your home based office and leave all the problems for the next morning. Make a prioritised list and leave it on your desk for you to tackle first thing.

WHEN DOES YOUR DAY END?

In a typical employment contract, that would normally be around 5.30pm, I say contract as this would quite often not be the case, as a result of project delays with impending deadlines. At home, you lose sight of when you are working and when you are not. That line separating the two becomes blurry and you exist in a state of “working”. Even when you think you are relaxing at home, your mind is a mix of tasks that need completing, emails that need replying to, a solution to a problem that you have been grappling with all day. This is all work related, so therefore you are still at work. I haven’t managed to come up with a way of separating the two. Instead, I have learnt to live with it without it affecting the people around me.

21 DAYS A YEAR HOLIDAY?

Only if you are lucky. The fear that drives all freelancers is having work dry up. You plan your projects one after the other so you seamlessly have a steady supply of work. As a result, it can take months till you have a day which you can call a day off. More often than not you end up working weekends to meet theirs as well as your deadlines to reduce the risk of a knock on effect. So be prepared for a long haul with few breaks.

CLIENTS NOW KNOW YOU WORK FROM HOME

As an employee when the clock ticked to 5.30pm(ish), you would put your coat on, say bye to the people you got on with and leave the building. The only way you would know if a client had called would be a post-it note stuck to your screen for you to action the next morning. Guess what? You don’t have the luxury of being able to walk away. If the phone rings at 7pm, you would instinctively answer it and the precedent would have been set… you take calls well into the evening. Even with a second line, there is always your mobile phone. This was the case when I started out. Fortunately, all my clients are brilliant in that respect and will instead either send an email or call the next morning.

YOUR OFFICE BECOMES YOUR HOME

When I decided to freelance, I wanted a dedicated office. Many years later the office is in its fifth makeover. Originally, it was an orgy of MDF and wood glue. One of my few DIY power tool purchases was a jigsaw, so it was inevitable that everything would have a fashionable nice curve. As the business grew, more space was required so began the cycle of trying to make an office I felt comfortable in and could accommodate the mass of papers, books and technical equipment. Due to the size of the room, I was unable to purchase a ready made desk so opted to build my own out of planks of wood, nails and chrome desk legs. Surprisingly, I managed to come up with an office that I can call home. The cost cutting exercise of building the furniture myself allowed me to purchase a nice, comfortable office chair which is a must since you will plonk your arse on it for a large part of your working day, i.e. do not skimp. So now my office consist of an IKEA wardrobe for storage, IKEA planks of wood for the desk and shelves with neatly tucked away computers and peripherals.

YOU ARE IN CHARGE OF YOU

Leaving the comfort of a salary means leaving the comfort of having someone tell you what your to-do list is. Working alone means you have to be the project manager, account handler and then the developer. So if you forget to complete a task, you can no longer cower behind your line manager, instead you have to face the music alone. What is required is a system of managing tasks, per client and per project. I have used many web based systems such as activCollab and Basecamp but found them difficult to maintain and update. My solution was to purchase a small whiteboard and to blutack it to the side of my wardrobe. Every day I scribble on new tasks, once they are complete I write them into my diary along with supporting information and rub them off the board. For me, this works brilliantly. This will not suit everyone since we are all different, some prefer the online solutions, I wanted a way to quickly scribble then forget till it was time to work on them. The more of my day using online systems to manage tasks took, the less I would be inclined to bother with them.

YOU ARE A ONE MAN THINK TANK

Working as part of a team allowed you to bounce ideas around. Through this you would see potential issues in your ideas and see things from a different angle and come up with alternative solutions to problems. Working alone now means you no longer have the comfort of colleagues to fall back onto. You are the R&D department. This means you have to now think out of the box more than ever. Quite often you will be presented with a problem which requires a unique solution, normally you would spin round in your chair and put it to your team… not anymore. You need to step up your planning process to take into account every possible eventuality to minify any future problems. You cannot prevent all problems, sufficient planning will reduce the time required for bug fixing and re-development. Fortunately, I have friends and colleagues that I can call upon to brainstorm with which does help.

YOU MANAGE YOUR I.T.

You are the IT support department. This means when things break, you have to fix them. Either through calling a repair company or tackling it yourself. You manage your backup procedure. So you have to make sure you have a sufficient data storage and retrieval system in place and that you regularly run backups. Remember, you have to deal with all I.T tasks, from printers running out of ink to losing your internet connection. A wise move would be to learn the basics of PC repair and network maintenance to minimise any down time. Run a separate drive for backup and one as a file server and have them networked through a router and NAS device. So if your PC does die on you, you could continue to work on a second PC since your working files are on the networked drive.

YOU PAT YOURSELF ON THE BACK

Hearing positive feedback is always nice. Having spent weeks, if not months on one piece of work and not hearing anything other than a few minor bugs does weigh down on you over time. As a result, you need to treat yourself to something which marks the end of a project. Purchase something you like or take the next few days off.

YOU MANAGE YOUR FINANCES

You can always get an accountant and let them deal with all financial matters. Alternatively, to keep cost down, you could tackle them yourself. Fortunately, my wife seems to enjoy managing my finances and keeping track of how much I earn… who’d have thunk it.

This article doesn’t attempt to cover everything, I haven’t even touched on what you need to do to find work and maintain that working relationship with existing clients.

Hopefully, this will give some insight into what its like to freelance and all the day to day issues you may face.

If you want to ask anything then leave a comment. Ok, best get back to it. 🙂