Graphical Lessons at this week’s Cocoaheads Meetup

On thursday night, a group of 26 developers got together at the offices of TekSystems in Raleigh to talk about iOS development. This meetup group is sponsored by both TekSystems and Two Toasters (From Durham, NC). For those who are looking for work as an iOS or Android developer, TwoToasters indicated that they are currently hiring so drop them a note at Careers.

The 26 people in the room ranged from teens to people who could have been their grandparent. Was great to see this expanse of ages, and I was impressed at the discourse and questions across all ages and participants.

The Triangle Cocoaheads who run the meetup made sure we had a great set of presentations. You can watch video of all the presentations over at their website.

The first talk was from Kevin Conner, this was all about the collection classes. While most of us are familiar with NSArray, NSDictionary, NSRange, and NSNull, Kevin did a great job of explain various collections and new syntax in objective C. NSIndexSet, NSCountedSet, NSAutoreleasepool, NSOrderedSet, and NSSortDecriptor, and NSCache were all brought forward to the group. Kevin provided examples of when each could be used, as well as information on how they effective app performance. Definitely a video you want to check out for more information.

Up next was Eric Lanz. Last month Eric showed off a organizational tree app he was working on. The crowd last month was wowed by the performance of the graphics, so Eric’s presentation this month was on Multithreaded graphics. Eric has proven that you can do things on iOS that Apple claims can’t be done. I personally have been a bit concerned about how much space graphics take up in my own apps, so I was fully engaged when he gave a few tips for programs to help reduce your graphic files; however this was only a minor part of his talk. Eric provide tips for building your graphics pipeline in your app, so that you can spin off the drawing in separate threads. This allows your to optimize the number of times your draw things, and also kill drawing if the user quickly moves on to a new screen. The goal is to keep your app response, while providing the user informed with enough graphical content. Amazing!

A few of his tricks include building a Dispatch Serial Queue – this will allow you to have a task to run on a worker thread and/or using the Dispatch Global Queue – which on iOS you can’t create yet, but you can get the existing global queue. However, if you use these queues you need to remember to push your graphics context, or you will crash!

Finally, Jay Thrash went thru an architectural “Unburdended ViewControllers”. A key point that I got from his presentation was how the Model-View-Controller approach can cause problems of maintainability overtime, especially as it relates to accessing data. Jay referenced a book I am currently working my way thru from the Big Nerd Ranch called “iOS Programming – the Big Nerd Ranch Way”. This book calls out the idea of a Store – extending the MVC model to MVCS. This abstraction of data allows you to simplify the maintenance of you apps, and deals well with data stores that can be on the device, or via service calls to other systems. A good example to understand this approach comes from the article “Skinny Controller, Fat Model”, talking about Ruby over six years ago. Check it out and don’t forget to head over to Triangle Cocoa to watch this video.

After this we went to the App Showcase of the night, were local developers show off what they’ve been working on. I didn’t catch everyone’s name, probably because I was nervous – I was going to show off my original app – “Wasted Time” and a work in progress for a game I am developing “Traders vs. Trinars”, but we saw a great example on localization. This app demoed changing the orientation of your language for Arabic and Hebrew, i.e. languages that read Right to Left. And a demo from BA3 on their mapping API – Amazing!

Well, I am looking forward to next month’s meeting. Until then, keep on coding!

Triangle DevOps meetup

I’ve been going to more and more meetup’s lately. Seemingly at least one a week. The latest one was the Triangle DevOps Meetup. What an interesting session. We were at the offices of Teradata, and Felix, the presenter, works at Teradata. He took the time to walk us thru setting up our own OpenStack cloud.

Probably the best advice that Felix gave was the first time you get the installation you should work, is to delete the entire setup and redo it, because it was probably a fluke.

Felix decided to do a live demo of this complex setup. Of course it didn’t work out, but it was great to see that no matter how much experience you have in setting up these environments, it is hard. And mistakes are made, which in my mind is exactly why DevOps is so important for people. Get it right, version it, test it, measure it, and automate it.

I am not sure that the demo wanted to show that, but to me, the message was received. DevOps and continuous delivery would have solved this problem, but it wouldn’t make a good demo.

WordPress on iPad

Well, as happens, the day job is consuming more and more time. Luckily the latest update to the WordPress for iPad app addresses many of the problems I’ve had recently. So I am able to write up a quick Huzzah! while getting ready for dinner.

I know work is getting busy when I don’t have time to download any new apps in an entire week. I tried this morning to find a good example of a DigDug game. The old Atari game where you would use a small pump and blowup fire-breathing dragons! Someone should make a good version of this.

Apps are a live and well

The local Meetup scene continues to amaze me. Last night I went to a Meetup called The Mobile App Success Group. Xan, the founder of this Meetup Group, has been successful in developing Websites for some time, and brings ideas around marketing your App, getting development and design resources, and other tips and tricks for starting your business. The goal of the meeting last night was to show a couple of of new Apps that are being worked on.

Both Xan and John (the other presenter) showed off the designs of two up and coming games and asked the participants for feedback. I really liked this approach. Given that the design of games developed by one or two people on their own, they can sometimes get blinders on potential problems in that design. So the attendees at the meetup got to provide feedback and talk about experiences from:

    What Ad network to use, if you are doing an ad supported app?
    How to find a good graphics designer?
    Managing the economy of your game, when you allow rewards to be used for in app purchases.

I hope to have links to both of these games and the websites for Xan and John as soon as they get closer to launch. Xan’s app should be coming out in early Sept.

Both of these apps are guessing games, like DrawSomething, but very much with exciting twists. Can’t wait to play and show off the games as they get ready to launch.

Favorite App This Week

I’ve been trying to get more hours in the day… Let’s just say, that I am not traveling at the speed of light yet, so time has not slowed down.  Actually I think it is speeding up, which must mean that I am getting closer to the speed of dark!

I wanted to drop a quick post on the latest app that I’ve fallen for and I realized that I am in a bit of a funk as it relates to new Apps that excite me.  And to be honest, none come to mind.  I did install the new Digg app, I used to be a big fan of Digg, but their app was always subpar and after the site basically melted down, I had no desire to keep hanging around.  I do like the new app, but is it really relevant anymore?  I’m not sure.

I use a Drobo on my home network, so I picked up Dromo – Drobo(c) Monitor, and it’s pretty good, but I wish I could use it to shut down my drobo during a storm.

And I picked up Chirp – which is an interesting application, but I’ve not really had much use for it.  Chirp allows your to send an auditory url, that other Chirp users can then access the picture or content that you attach to it.  I would love to be exited by this one, but I’ve downloaded it and not really gotten to use it.

What apps have you gotten excited about this week?