Tag Archives | Programming

New ultra beginners books for iOS development

I recently stumbled across a series of beginner books targeted at complete new starters looking to get into iOS app development. The series goes under the name of iOS App Development for Non-Programmers by Kevin McNeish. There are 3 books in the series so far, with more promised. Available on iBooks store, and Amazon Kindle has Book 1. Get the iBooks versions if you have an iPad to read them on. They have embedded videos and tap-through diagrams.

These really are for beginners. Book 1 doesn’t have any coding in it at all. It builds an app in Xcode using standard controls. Even with a map control. The 2nd book is a beginners guide to Objective-C. I like it a lot. The 3rd book is a deeper dive into Xcode. I haven’t read the 3rd book yet. I will soon. 

If you are looking to start iOS app development you could do a lot worse than get these 3 books (and the forthcoming ones when available) as a self-teaching course.

When you have read the McNeish books I’d recommend reading the iOS Apprentice. This is another beginners tutorial series. If you tackle it with the McNeish books under your belt you’ll get more from it.

After you have done both the McNeish and the iOS Apprentice tutorials there are lots of more advanced learning resources that will be accessible to you. 

National App Development Month – NaAppDevMo

I’m deep into NaNoWriMo for the 2nd year at present. It’s designed to get you to forget about reasons why you can’t write a novel length piece of fiction (well 50,000 words anyway, a short novel!) and just get you writing with abandon for the month of November. It’s great fun, and it works. Seeing that relentless slope add 1667 words to where you should be every day is a great motivator. No one expects the 50,000, or more, words that you will have in Scrivener on the 1st December will be something that can be published. No, what you will have will be a chunk of a story that you can add to, edit like blazes, and maybe at some point in the future, have something good. NaNoWriMo is a kick-starter.

I was thinking recently that it would be useful to have a month to focus on doing an app from start to finish. I’ve dabbled with development for ages, without knuckling down and getting something done. I’ve decided to do it in December. Take 31 days and use my spare time to do an iPhone app that I want for myself. I floated the idea on Twitter and a few people seemed interested in doing something themselves. Of course I’m doing an iPhone app, but there is no reason that any other sort of app couldn’t be done. A Macintosh app, a Windows Phone 7 app, an Android app, a web app, or an app for whatever platform you like.

I know what my App will be. I want it for when I’m travelling. None of the iPhone travel apps do this one task the way I want it to work. Or if they do, they link to web services where you need to have an account etc. And all the other features of the web service and app, that I just don’t want, get in the way. Keep it simple! So the goal of NaAppDevMo for me is to provide a rigid timeframe and a structure within which I can get this basic app done.

Like in NaNoWriMo you are not going to produce an app that will make you a fortune, or maybe even make it to the App Store. But what it might give you is the confidence that you can take a concept for an App from design, through to running on your device (or in a simulator). This will hopefully show you that it is possible for you to do App development. Even if it’s just as a hobby and for fun. And if your App is useful you can spend time over the next few months maybe refining it and releasing it for others to use.

To do NaNoWriMo successfully most people need to do some planning up front, so that they have scenes and ideas ready to write about at the start of November. The same would be true for NaAppDevMo. Some planning would be useful. Outlining what the App you are going to design and produce should do would be a good start. I’d say keep it simple and do an app that performs one task really well. I’d make it a real task though. One that you would find useful yourself.

There is a Twitter hashtag #NaAppDevMo that you can use to post status updates if you are going to participate, or just follow it to see how others are getting on. There won’t be a website like the one there is for NaNoWriMo. Post blog posts on your own site, updates on Twitter, or on FaceBook about your progress.

Here are some pointers to resources for iOS development that you may find useful if just starting out. These are just a small sample of the resources out on the web for new iOS programmers. Post others you think would be useful on Twitter using the #NaAppDevMo tag. Post any you think would be useful for other platforms as well if you are targeting them.

Beginner iOS Development Tutorials

There are some great looking new iOS 5 development tutorials on the iOS Apprentice site. These are epic length tutorials that take you from start to a finished app. So a great resource if you are just starting out with iOS development. The 1st tutorial in the series is free. It’d be well worth doing the 3 that are available now before doing your own app in December. The tutorials cover the new iOS 5 additions that you will want to use. Like ARC, so you don’t have to do manual memory management, and Storyboards to allow you to design the workflow of your app.

Stanford University have a complete series of lectures on iTunesU for their course CS 193P iPhone Application Development. The current series of lectures is being posted as they are available. They cover iOS 5.

App Design

For iPhone app design the book Tapworthy by Josh Clark is a very good resource. Apple have some great user interface design sessions available on iTunesU. You have to be a member of the Apple Developer Program to access these. I’m not sure if they are available to people with the free membership. If you are doing iOS dev then the paid option is useful if you want to run your apps on physical devices to test. It’s $99 (£69 in UK). You can run your apps in the Xcode simulator if you are not a paid member of the iOS developer program.

Some essential videos to watch:

WWDC 2009 Session 100 – iPhone Interface Design – Basic iPhone design. Might be a bit dated now, but good foundation.

WWDC 2010 Session 103 – iPad and iPhone User Interface Design – The 6 stage app design process outlined in this session is great.

WWDC 2011 Session 110 – Designing User Interfaces for iOS and Mac OS X Apps – The latest update on how to design apps. Based on last few years of actual use and experience of Apps out in the world.

Books

There are lots of good beginner level books out there for iOS development. For NaAppDevMo I’d go with the iOS Apprentice tutorials as a start. You might want a book on Objective-C so here are 2 very new ones. One is a new edition that covers ARC etc. and is due on 15th December.

Programming in Objective-C: Updated for iOS 5 and Automatic Reference Counting

Objective-C Programming: The Big Nerd Ranch Guide

 

 

WWDC is imminent – Essential sessions

In 3 weeks it’ll be day 2 of WWDC. Day 2 is the start of the topic specific sessions. The Monday is taken up with the Keynote in the morning and Several State of the Union sessions in the afternoon. The State of the Union sessions are on things like Mac OS X Server, Graphics & Media, etc.

The majority of the sessions I will be going to will be related to management of Macintosh computers and integration into ICT infrastructure based on Microsoft Windows. Listed below are the sessions from those published so far that I’ll be going to. There are usually additional sessions added after the Keynote, to cover any new features that are announced, and there are also some brilliant Brown Bag sessions at lunchtime with external guest speakers (like Pixar). There are also evening events such as the Apple Design Awards and the Thursday Night Party. The Bare Naked Ladies were the house band for the party last year. Here’s a good picture of 3 reprobates watching them from just above and behind the stage 🙂

Here are the ICT management sessions I plan to attend:

Mac OS X Server State of the Union
Mac OS X Server uniquely combines a wealth of powerful–yet easy to use and configure–services that elegantly simplify communication and collaboration in organizations of all sizes. Learn the latest on Mac OS X Server’s technologies for streamlined mobile access; enhancements to mail, calendar, contacts, and wiki services; advanced capabilities in Podcast Producer 2; and an update on Mac OS X Server’s performance and storage capabilities.

What’s New in Directory Services
Open Directory provides standards-based storage and organization of user and network resource information. Get the details on Open Directory enhancements in Snow Leopard Server including a new UI for binding, refinements to Active Directory integration, password synchronization, and performance improvements.

What’s New for Wiki Server 2
Wiki Server 2 in Snow Leopard Server allows any organization’s users to collaborate more easily and effectively. Learn about new features such as Quick Look previews of wiki attachments in the browser window; content searching across multiple wikis; and wiki and blog templates optimized for viewing on iPhone. Wiki Server 2 also introduces My Page, which gives each user one convenient web portal to view and create wikis and blogs, use web calendars, track wiki updates, and access webmail.

What’s New for Podcast Producer 2
Podcast Producer automates and streamlines the capture, encoding, and publishing of high-quality podcasts of your organization’s lectures, training, and other presentations. Snow Leopard Server introduces a host of new features including Dual Source Video capture, Podcast Composer, and Podcast Library. These features let you create picture-in-picture podcasts, provide an easy-to-use application for designing video-based Podcast Producer workflows, and define a new publishing model that uses Atom and RSS for providing long-term media file storage and organization.

Deploying Podcast Producer
Podcast Producer streamlines consistent creation, production, and distribution of rich media assets. Learn deployment best practices from experts with real-world installations. Discover how to use new features such as Podcast Library for seamless integration with iTunes U, adding content to in-house web portals, and publishing training materials.

Podcast Composer In-Depth
Podcast Composer provides a visual step-by-step approach to easily build powerful workflows for Podcast Producer. Get in-depth information from the experts as they show you how to get the most out of this new application. Find out best practices for integrating with Podcast Library and learn how you can incorporate your own content and customize workflows to meet the needs of your organization.

System Management with Apple Remote Desktop
Apple Remote Desktop is the best way to provide system management for the Macintosh computers on your network. Learn from the experts how to optimize Apple Remote Desktop for various networking topologies across NATs, LANs, and WANs. Discover how Task Server can help manage your mobile computers. Come for the latest tricks for easing your system management duties with the Send UNIX task.

System Image Creation and Deployment with Snow Leopard Server
System Image creation and deployment is the best way to ensure consistent configuration of Macs in your organization. Learn how to use the new features in System Image Utility 2 to create NetBoot, NetInstall, and NetRestore images to simplify the deployment of Mac OS X across your organization.

Managing Home Directories with Mac OS X Server
Mac OS X Server delivers flexible options for managing your organization’s user home directories including Network Home Directories, Mobile Home Directories, Portable Home Directories, and External Accounts. Learn which of these options is best suited for your environment, while getting field-tested best practices for home directory deployment and management. See how new features in Snow Leopard Server enhance your options for managed home directories.

Snow Leopard Server Setup: Under the Hood
Snow Leopard Server includes a powerful new Setup Assistant that streamlines the configuration of your server. Learn from the experts about the rich set of functionality that the new setup experience provides for several different network topologies. Get a behind-the-scenes glimpse of how the Setup Assistant can automatically configure other network devices such as client computers, Airport Extreme, and Time Capsule to provide seamless network connectivity for local networks as well as the Internet.

Integrating iPhone into the Enterprise
iPhone has become a leading choice for mobile professionals. Find out about configuring and deploying iPhone in your organization, learn tools and techniques for configuration and deployment of native and web-based iPhone applications, and discover how server-side technologies integrate with iPhone, all from the IT professional’s perspective.

iPhone Configuration Creation and Deployment
iPhone configuration profiles make mass configuration of iPhones a snap. With configuration profiles, your organization can deploy account information, password policies, secure access settings, certificates and more, all within a single package. Get the latest details on the iPhone configuration profile file format, new additions to the managed services they support, Apple’s profile creation tools for Mac OS X and Windows, and new deployment options that make profile distribution even easier.

I also hope to be able to get to some of these Macintosh and iPhone development sessions:

iPhone User Interface Design Prototyping
Learn how to turn your personal vision into an elegant iPhone application design. Explore your ideas through rapid prototyping and experience the iterative design process that leads to a truly innovative user interface. With some cool tricks and a few lines of code, see how a working prototype provides insight far beyond a static mockup. Watch your design evolve from good to great.

iPhone Application Design Using Interface Builder
Interface Builder provides the easiest route to an elegant and well-designed iPhone application, letting you seamlessly implement many popular interface styles. Take your experience with Interface Builder to the next level and learn how to efficiently build and structure your iPhone interface. Find out how to create a multi-screen interface, work with view controllers, employ navigation controllers, and properly isolate data across master-detail interface pairs.

Effective iPhone App Architecture
Whether your iPhone app is in development or on the App Store, strong code architecture is an essential part of your daily process. Learn about good data modeling, communication between view controllers, and when to use delegates and notifications. Find out how to make important decisions about memory, speed, and a responsive UI. Developers of all skill levels can benefit from this thorough examination of iPhone SDK best practices.

State of the Art Cocoa: User Interface Design
Often, the difference between an amazing application and a merely adequate one lies in the level of polish applied to the user interface. Learn how to take a functional Interface Builder project and add the subtle details that make the user experience feel intuitive and look more attractive. Find out how to add custom drawing and controls to get the exact effect desired, and even how to add Core Animation to make your application shine.

What’s New in Core Data
Both Mac and iPhone developers now have the power of Core Data at their disposal. See what’s new in Core Data for both iPhone OS 3.0 and Snow Leopard. Learn the most efficient ways to employ Core Data in your next project while taking advantage of recommended design patterns. Walk through solutions to the most common problems facing experienced Core Data programmers.


I like BASIC!

I like programming in BASIC. There I said it. I can hear the purists poopooing, indeed some may be fainting. But it’s only a language. It has been said that modern versions of BASIC are not your fathers BASIC. What this means is that there are versions of BASIC available today that have most, or even all of the features found in other modern languages like Objective-C, C#, Ruby, Java, etc.

I’m a Macintosh guy. For a long while I used FutureBASIC but it has fallen by the wayside a bit. A good modern BASIC for the Macintosh is REALbasic. It’s actually cross platform and runs and compiles for Macintosh, Windows and Linux. I only have the Macintosh version. REALbasic has an object-orientated language with lots of modern features:

21st Century BASIC
Yes, it’s BASIC. But it’s not the interpreted, procedural, line numbered, spaghetti-code-producing BASIC from the old days. This is a robust, modern, fully object-oriented from the ground up BASIC that compiles to native X86 and PowerPC machine code. REALbasic supports inheritance, polymorphism, interfaces, delegates, introspection, the works. And if all of that made your eyes glaze over, don’t worry. The great thing about REALbasic / REAL Studio is you can do a lot without having to know any of this, but it will be there when you need it.

One downside is that it produces quite large binary files. REAL Software have made changes to the system to allow them to address this but at present it still links in everything and this gives big executables. I don’t think this is a problem these days. Another issue with the Macintosh version is that currently it uses the Carbon framework (mostly) for interface elements. Cocoa is what modern Macintosh apps should be using. The good news is that a beta that uses Cocoa is imminent. I’m looking forward to it. It should make it easier to produce Macintosh apps with REALbasic that have more Cocoa UI compliant interfaces using a language I know and I’m comfortable with.

Will still need to know Objective-C for iPhone apps though…


Back to programming basics

I bought myself a copy of the Pragmamatic Programmers Learn To Program book. I’ve decided to go back to basics and make sure I have a good foundation in the basics of programming before trying to build some applications I want for the Macintosh and iPhone.

Not because I have tried to build the applications and failed. I haven’t. No, I just want to build the foundations first before moving on to meaningful stuff. Sort of fill in some of the knowledge you’d get from doing a formal programming course at College or in first year University; but by self study. What is that term about a house built on sand…

In addition to the Learn To Program book, which uses the Ruby language for its examples and exercises, I’ve also got two entry level Objective-C books that I will be studying at the same time. These are Programming in Objective-C 2.0 by Kochan and Learn Objective-C on the Mac by Dalrymple & Knaster.

I’m going to use all three of the books at the same time by reading a chapter at a time from each. Is this sensible? Who knows? I’ll get back to you on that in a month 🙂


Been neglecting my geek muscle…

I’ve been neglecting my geek muscles way too much lately. It’s time to get back in the game and immerse myself in the new stuff that is hitting the market. Basically do stuff for The Plan minus the Open University stuff which I’ve dropped.

From a infrastructure technology point of view I plan to dive in deep and dirty with:

On the development front I will be reading the small mountain of books I have on:

On a personal front I will be finally studying some mathematics and reading through the huge pile of unread books I have bought over the last year.

Books to read Books to read. Click for larger view

This weeks events in Belfast (DevDays and BarCampBelfast) will be a good springboard to get back in the geek game…

An Introduction to Regular Expressions

Drew McCormack has just posted a 13 page PDF tutorial on regular expressions.

If you’ve ever wanted to learn about regular expressions, here’s your chance, because I’m attaching to this post a chapter on regular expressions that I wrote recently for a Master’s level Python course. Although it targets the Python language, the regular expression syntax is virtually the same across the board, so anything you learn should translate pretty well to other languages and tools.

[From An Introduction to Regular Expressions | MacResearch]

Northern Ireland Cocoa Developers

Some of us from Northern Ireland, who were at WWDC, are thinking of setting up a local Cocoa developers group to met and discuss development and technologies related to the Mac OS X and iPhone/iPod touch platform. It is envisioned that there will be periodic meetings, a mailing list, a web page, possibly guest speakers, etc. All this is still to be determined. The following 5 domains have been registered for the group to use:

nicocoadev (.org, .net, .com, .co.uk)

nicod.org

If you would be interested in participating in the group then email me using the contact link in the sidebar on the right of this page.

Feel free to pass this information on to anyone else who you think might be interested.