Jonathan Cusick

iPad 2 – Getting Ready

The iPad 2 launched in the UK on Friday March 25th and was welcomed by long lines outside all Apple stores. Unfortunately due to work commitments I couldn’t join the line at the Victoria Square store in Belfast, however I did manage to pick up a blue Smart Cover on Saturday. The Smart Cover will be useful sooner rather than later as my girlfriend’s Mom (She is from the US) managed to pick up a 16GB black iPad 2 for me, from a Best Buy store in El Paso. They are coming over to visit this Thursday – so only a couple of days until I get to utilise the iPad 2 on a daily basis.

At the moment the key apps for me will be Flipboard, Keynote, Pages, Dropbox and Air Display. I am interested to see how the iPad will impact on my current routines – I take my laptop pretty much everywhere I go so hopefully it can be replaced for tasks such as e-mail, web browsing and presentations.

Digital Robot Software: Learning From The Manual

I am thinking about writing and teaching course later this summer entitled ‘Digital Robot Software: Learning from the manual’ (The manual of course being the company blog).

This will be a free course for people interested in software development (even if you haven’t done any before, so everyone is welcome) and will aim to tech people the basics of software development and build on these foundations, so by the end of the course you should be able to build basic iPhone applications.

If this goes well I can also extend the course to cover more advanced concepts but I just want to get an idea of who might be interested.

Please drop me an email at jon@digitalrobotsoftware.com or leave a comment if this would interest you.

Thanks!

DigitalRobotSoftware.com

After 6 months, we are finally live!

Since November last year I have been working hard to establish Digital Robot Software as a new software development studio in Belfast. During this time I have been hard at work developing a wide range of applications for the iPhone, iPad, Mac while also investigating the Android platform.

In addition to this we have also been through a significant branding process, thanks to the creative talent of Davy Mac a strong logo was produced which can be seen predominantly on our website and applications.

After the Digital Robot initial branding was completed we were off to SXSW in order to meet other developers and also clients. This proved to be a very successful trip for us and we are currently working with a number of US clients in order to develop creative solutions in order to meet their requirements.

After SXSW we were happy to announce a new member to the team, Adrian Hanna joined us as our Principal Enterprise Architect. Adie is our lead Android developer and a master of scaling backend systems for our enterprise solutions.

We are also extremely fortunate to announce another member to the team, Adam McAllister has joined us as our in house UI designer. Adam produces extremely high end quality design work and is welcomed addition to the team.

We will be talking to a few more people about intern positions later this month and will hopefully have some more good news to announce.

I am sure most of you will have noticed that we are now rocking a ground breaking website. This is down to the creative genius of Mr Andy Good (McMillan). When not running world class design conferences he is putting his mad skills into practice with great results.

We will be regularly updating our blog ‘The Manual’ with development news, research and tutorials.

Keep an eye on the main sections of our site as well in order to see the latest applications that we produce.

Please feel free to say hello! jon@digitalrobotsoftware.com

Digital Robot Software: WWDC 2010

I am pleased to announce that Digital Robot Software will be attending this years World Wide Developer Conference (WWDC) in San Francisco which begins on June 7th and continues until June 11th.

As WWDC is an Apple conference it is focused on iPhone, iPad and Mac development and this will be an amazing opportunity for us to meet the Apple engineers and learn a wide array of new SDK features, that we will be implementing into our applications over the next year.

We are working hard at the moment in order to get the new Digital Robot Software website online and it will be live by 18:00 GMT tomorrow (Monday May 17th) – be sure to check it out!

iPhone Development: Google Maps/Pathfinding Algorithms

Developing for the iPhone can be a very rewarding experience as the Software Development Kit (SDK) and range of development tools which Apple provide are extremely comprehensive.

The following are the main tools which I use when developing for the iPhone:

    Xcode – This is the Integrated Development Environment (IDE) where the all the code is written.

    iPhone SDK – Provides the framework for building the iPhone applications through a wide range of classes provided from Apple through the Objective-C programming language.

    Simulator – Enables you to compile and test code locally on your machine.

    Interface builder – Enables you to add the graphical elements to you application and hook them up to your code using the MVC design pattern.

    Instruments – Allows you to analyse your application code for memory leaks and ensures your code will give the best possible response time on the device.

One of the most interesting things about developing for the iPhone is working out how achieving various tasks can be approached. In a project I was working on recently I was presented with the task of implementing maps which would provide directions to an end point based on a certain set of parameters.

In a lot of development environments this would be an extremely difficult task which would involve implementing a form of custom pathfinding algorithm which is not easy and can take a long time to fully test and implement.

Google have created an API (Application Programming Interface) that has been designed in order to enable developers to embed Google Maps on web pages and customise these in a variety of ways such as adding locations, street views, directions in addition to much more. This is important as it means that when combined with an Objective-C Webview in the iPhone SDK we can harness the resources of the Google Maps API in this particular case directions in order to for the pathfinding to take place on the map.

If we were not able to integrate with these new technologies on the iPhone it would mean that we would have to design an algorithm in order to deal with the directions, this can be quite a complex task and will add a lot of extra cost to the development in terms of planning, design and development time. This could potentially be achieved by using a method such as the Dijkstra Algorithm in order to work out the shortest paths between two points based on a wide range of rules.

The Google Maps API makes this very simple:

The following example has been taken from the Google Maps API documentation and is JS (JavaScript) based code which will be implemented through an Objective-C based Webveiew.


//-------------------------------------------------------------------------------
// Create a directions object and register a map and DIV to hold the
// resulting computed directions

var map;
var directionsPanel;
var directions;

function initialize() {
map = new GMap2(document.getElementById("map_canvas"));
directionsPanel = document.getElementById("my_textual_div");
map.setCenter(new GLatLng(49.496675,-102.65625), 3);
directions = new GDirections(map, directionsPanel);
directions.load("from: 500 Memorial Drive, Cambridge, MA to: 4 Yawkey Way, Boston,
MA 02215 (Fenway Park)");
}

//-------------------------------------------------------------------------------

From here we can see that we just have to utilise the parameters for the actual address data and pass this into the methods encapsulated in the API. Once this has been achieved Google Maps takes care of the rest so for us, this is a fantastic way to go and enables the rapid development development of applications.

Since working on the iPhone in terms of development, working with a wide range of frameworks is such a strong factor in being able to produce quality applications quickly and making them cost effective for clients.

This was just a high level overview but I just wanted to try and show how technology is progressing in the mobile market and how utilising a wide range of technologies we can rapidly produce applications that do rather complex tasks.

With organisations such as Google producing new APIs on a regular basis I really can’t wait to see what else we can bring to mobile devices in the coming months/years in a manner that will not take developers years to implement through an array of complex custom algorithms for each application.

SXSW 2010: Digital Robot Software

I have been working hard over the last few months establishing a small iPhone and Mac development studio called Digital Robot Software.

Digital Robot Software will be going live on March 10th with a website launch which will contain details of current and future projects. I have also been working closely with an extremely talented designer who is doing the branding for the company which should give it a strong presence.

Digital Robot Software will also be at this years SXSW conference with 11 other Northern Ireland based companies who I am sure many of you will be familiar with:

    Airpos
    David Rice
    Filmtrip Ltd
    Good on Paper
    No More Art
    Sonic Academy
    The Design Zoo
    Lee Munroe
    Frank Design & Communications Ltd

This is great news for Digital Robot Software as it will enable a wide exposure of the companies services and will hopefully produce a range of clients and new skills from the available workshops and presentations.

A NISXSW Ning network has been established so all participating companies can easily communicate and so that others can follow us during the conference.

Another site niatsxsw.com has also been established to give complete profiles of the 12 companies including podcasts company backgrounds and will also be updated regularly.

If you are interested in following us on our journey to SXSW you can follow the websites and also the hastag #NISXSW on Twitter.

iPhone Development: Testing From Your Device

When developing an application for the iPhone you will have to register for the iPhone development program ($99 for non-enterprise developers) in order for your applications to be published on the app store or to test them locally on your own device.

Once you have registered for the iPhone development program you can follow these steps in order create your own provisioning profile, developer certificate and test applications on your device:

Development Provisioning Assistant

In order to launch the iPhone Development Provisioning Assistant you will first have to log in to the iPhone developer site . Once logged in you will have to select the option ‘iPhone Developer Program Portal’ and then simply click the ‘Launch Assistant’ icon.

From here simply follow the assistant prompts and provide the following information:

    Application ID – To start the configuration all you have to do is to enter an App ID which is used to validate your applications access to the Keychain.

    Assign Device – In order to assign a device you will be required to enter two pieces of information a device description and a device ID.

    To establish what your device ID is, you will have to connect your device to your Mac, then select ‘Window -> Organizer’ within Xcode and this will provide you with the identifier for the device you have connected.

    Development Certificate – At this stage a development certificate has to be submitted, this certificate is used to enable apps to run on the device for testing. In order to create a certificate you will have to use the ‘Keychain Access’ application which can be found under the utilities folder on your Mac.

    Using the Keychain Access application now select ‘Keychain Access -> Certificate Assistant -> Request a Certificate From A Certificate Authority…’

    Now all you have to do is ensure the information here is correct and save it to disk, you can then submit this certificate by going back to the provisioning assistant.

    Profile Name – As the App ID, Device description and Certificate have been established you now just have to enter a profile name/description in the field provided within the provisioning assistant.

    Provisioning Profile Download And Install – On the provisioning profile download and install screen, you simply have to click download in order to obtain your development profile. Now to install the profile ensure that your device is connected, that Xcode is open and then drag the profile into the ‘Organizer’ window. This is all that is required to install the profile, now head back to the provisioning assistant.

    Development Certificate Download And Install – On the development certificate download and install screen, click download just like before to download the certificate. To install the development certificate is extremely easy all you have to do is double-click it and the Keychain Access application will open to confirm you want to install it, at this prompt click ‘OK’.

    Get An App On Your Device – Now that you have configured your development certificate and provisioning profile, all you have to do is ensure that your device is connected to your Mac and go back into Xcode. Next open a project you have been working on, but this time before you click ‘Build and Run’ look at the top left hand side of the screen, click on the ‘Overview’ drop down list and select ‘iPhone Device 3.X.X (Base SDK). Now when you click ‘Build and Run’ your app will be installed on the device, and you will be able to properly test it. To remove the app you can do this as normal by tapping and holding the icon until it shakes and finally hit the ‘X’ to remove it.

iPhone Development: MVC Design Pattern

If you are planning on developing applications for the iPhone chances are you will be familiar with object oriented programming. Design patterns promote code and design reuse along with making an entire application easier to understand and why a certain structure was adopted.

It is important to note that a design pattern is not a blueprint for an application that just has to be written in your development language of choice, but rather a blueprint for how to implement your code in order to enable stronger code maintainability, testing and to avoid a wide range of issues that could otherwise occur with unstructured (spaghetti) code.

The iPhone platform makes use of the Model View Controller (MVC) design pattern.

    Model – Manages the data for the application and how the state of the data should be updated.

    View – Will handle how the data is displayed on the screen.

    Controller – Deals with the inputs from the user such as utilising all the available on screen elements such as buttons and keyboard functions.

With the MVC design pattern it means that when developing for the iPhone you will have a better way of maintaining and testing your applications. Overall this should mean that better quality applications are created.

MVC-JC2

On a side note I used Balsamiq Mockups to create the above diagram, I would highly recommend giving it a try. This has quickly become one of my favourite applications.

Updated: Diagram updated to show two way relationship between model and view (well spotted by David Rice)

Adobe: Creative Suite 4 – Web Premium

Last week I received the Adobe CS4 Web Premium software which I won at the Build Conference, a massive thanks to Giant Training and Adobe for this.

The following is the complete story:

On November 5th I attended the Build conference in Belfast, during the event Ian Sayers from Giant Training held a prize draw for the chance to win a copy of Adobe CS4 Web Premium or Design Premium worth a whopping £1500. I was extremely lucky when Eric Meyer pulled my name out of the box, I seriously couldn’t believe I had won and opted for CS4 Web Premium.

With CS4 a wide range of new and exciting opportunities have presented themselves. I am currently developing several iPhone applications which will now have their entire interface redesigned in PhotoShop which will give them a much more professional presence.

As an amateur photographer I will now have the ability to add a new dimensions to my photos in addition to designing and developing a new website to showcase them.

These tools will significantly help me on a daily basis with all my personal development and design projects.

Many thanks to Giant Training and Adobe!

Jonathan Cusick

CS4

OS X Quick Tip #5 – Read & Write to NTFS HDDs

On the OS X operating system you can read NTFS external drives but you will not be able to write to them by default. There is a simple solution for this that comes in the form of a couple of applications MacFUSE and NTFS-3G.

MacFUSE-NTFS3G

Utlising these tools makes writing to NTFS drives seamless and you won’t have to worry about performing any complex configurations, the NTFS drives will just work as with any other HDD.

Best of all both of these applications can now be installed from a singe source over at SourceForge as part of the Catacombae project.

Enjoy!