{ by david linsin }

Showing posts with label mac. Show all posts
Showing posts with label mac. Show all posts

March 01, 2011

303

This is my last blog post here on blogger.com! You'll find my new thoughts, projects and development ramblings at http://dlinsin.github.com. I migrated to blogger.com in late 2005 and was always quite happy with it. More than 5 years and exactly 502 posts later it's time to move on to something new. Subscribe to my new blog feed, check my stuff on github or follow me on Twitter.

November 22, 2010

Game Center Presentation at Cocoa Heads Karlsruhe

hero-gamecenter.pngOn Wednesday, I'll be giving a presentation on Apple's Game Center at the local CocoaHeads Group, here in Karlsruhe.

Game Center is Apple's social gaming network, that lets you invite friends to play, share your highscore and achievements through leaderboards and it even auto-matches you with other players for online-multiplayer games.

If you are interested in Game Center, drop by RetroGames on Wednesday 24th of November at 19:00.

April 16, 2010

iPhone App Beta Testing

Last year I was working on a Nine Men's Morris mobile game called Doublemill. My job was to implement a REST-based server back-end on the Google App Engine. You might remember a couple of posts on that. My colleagues were responsible for coding the Android client. Since I'm an iPhone user and I'm not going to switch to Android anytime soon, I decided to port the game to the iPhone/iPod touch platform.

I'm closing in on the first release of the paid version of Doublemill. The only thing missing is a beta test. I'm past the technical problems, which I encountered when I released a beta version of Doublemill Lite a couple of weeks ago. This is more about how to find people, willing to thoroughly and extensively test your App.

Unfortunately, I can't use Amazon's Mechanical Turk - although I'm willing to pay a small amount for people to find bugs in my App. Amazon doesn't let me use it without a US credit card, so I had to look for an alternative. I came accross iBetaTest.com. I used it for Doublemill Lite and I'm also using it for the paid version. Although the site has little flaws (it's still in beta itself), the idea is great and it works pretty well. However, there is still a problem: the people who are using the site and who are supposed to test your App.

After I added the beta for Doublemill, I received a lot of requests, mostly from testers which are not testing any other Apps or look like they have just signed up. I gave a couple of them the benefit of the doubt and let them in, only to experience, that I wasted my valuable device IDs.

At the time this blog was published, I have only received feedback from 2 of my 7 testers. The other just haven't replied. I know, that at least one has downloaded and signed up for the multiplayer feature, but hasn't provided feedback on any aspect of the App. That's just plain disappointing. After Doublemill Lite, this is the second time I wasted device IDs, it won't happen to me anymore.

After all, there's always something to learn from your mistakes: be picky on beta testers and choose people you know they'll give you valuable, honest and thorough feedback! It takes quite some time to setup a beta test and organize all device IDs, so don't neglect Q&A in your project planning.

I'm fortunate enough to have a couple of people around me, which help out with testing and give me exactly the feedback I need - although it's not always what I want to hear.

April 01, 2010

One week in the App Store

Last year I was working on a Nine Men's Morris mobile game called Doublemill. My job was to implement a REST-based server back-end on the Google App Engine. You might remember a couple of posts on that. My colleagues were responsible for coding the Android client. Since I'm an iPhone user and I'm not going to switch to Android anytime soon, I decided to port the game to the iPhone/iPod touch platform.

One week ago Doublemill Lite hit the App Store and it has been received very well, according to the download numbers. I'm pretty stunned by the magnitude of more downloads we have compared to the Google Marketplace. It could be that we only have full fledged paid version for Android out there. However, you can refund your money with Google within 24 hours, if you don't like the game, so basically every App is also a Lite version.

I believe in the App Store as a channel of distribution, although only after one week we already see the negative sides of it: user ratings. Doubemill Lite started off pretty good with 3-4 stars the first couple of days, but then rapidly dropped down to 1-2 stars. First, I was pretty bumped about it, but then realized that you are only asked to rate the App when deleting it from your phone. Considering, that less than 3% of people who downloaded the App also rated it, I guess most of the others might still happily play with Doublemill Lite.

We received some feedback, mostly about the controls, which we've already addressed and improved. There should be an update in the next couple of weeks, but at the moment I'm kinda handicapped, because my MacBook Pro died on me and I have to wait for my new one to arrive next week. With the soon to be released update, we've also added iPad compatibility, so you can have a virtual Nine Men's Morris Board sitting on your table.

There's also been progress on the premium version of Doublemill, which will go Beta any-time soon. So if you are interested in testing it, drop me a line and I'll hook you up!

March 18, 2010

Doublemill Lite submitted to the App Store

Last year I was working on a Nine Men's Morris mobile game called Doublemill. My job was to implement a REST-based server back-end on the Google App Engine. You might remember a couple of posts on that. My colleagues were responsible for coding the Android client. Since I'm an iPhone user and I'm not going to switch to Android anytime soon, I decided to port the game to the iPhone/iPod touch platform.

It's done! Doublemill Lite is on Apple's table for review!

I started working on the iPhone port of Doublemill almost 6 weeks ago. I decided early on to release a free version of the game. Actually, I wanted to release it after only 2 weeks of intensive hacking. By that time I had implemented a full Player vs. Player feature.

However, my colleagues convinced me to first implement a Player vs. iPhone feature before releasing the free version and I'm glad they did. Although it meant a lot of additional hours of work, it cleared the way to the full version, because I completely finished implementing the foundation of the game. After just two weeks I got the Player vs. iPhone feature fully working.

The last two weeks I spent in beta testing. The funny things is, I almost caught all the major bugs myself. The feedback I got was positive without exception and I was confident enough to release Doublemill Lite today.

It's going to be the third free Nine Men's Morris game on the App Store, but with all due respect, I think our game can easily beat the competition in terms of UI design and iPhone compliance. If you don't believe me, I'll post a full featured marketing post on Doublemill as soon as it's available on the App Store. Stay tuned and follow us on Twitter @doublemill!

February 22, 2010

iPhone Development

Last year I was working on a Nine Men's Morris mobile game called Doublemill. My job was to implement a REST-based server back-end on the Google App Engine. You might remember a couple of posts on that. My colleagues were responsible for coding the Android client. Since I'm an iPhone user and I'm not going to switch to Android anytime soon, I decided to port the game to the iPhone/iPod touch platform.

This will be a series of blog posts on how a rookie at Objective-C and the whole iPhone OS came about to release an iPhone app.


I started out with a complete UI, stitched together in Interface Builder in only 15 minutes and ended up on a roller-coaster ride with 3 weekends straight spent on coding and a lot of understanding from my wife. It was really amazing bringing the game to life.

That brings me to the first difference between being a Java back-end guy and an iPhone developer. It's not so much the different programing languages or operating systems, but the fact that you bring something to life. You can hold it in your hands an show it to people. I can even show it to my parents and they can give it a try.

When I was working on the back-end of Doublemill, the only thing I was able to show someone was an URL and the JSON response when you make a HTTP GET. Although my wife is very supportive, when it comes to my pet projects, she's much more pleased with an iPhone App than with a JSON response.

I learned a lot about the iPhone platform, the tool chain and Objective-C during the past couple of weeks and I must say, I get more and more intrigued with diving in completely. I'll blog a lot more once Doublemill Lite, the first version is out the door, until then there's still a lot to do.

January 18, 2010

Adding a UINavigationBar to a UITableView

A couple of days ago, I implemented a RSS-Reader feature for an app, I'm coding at work. There's a nice tutorial on this topic, which I can highly recommend to you, although it's a little outdated. I'm using a UITableView to implement the RSS-Reader feature and I wanted the header section to be a UINavigationBar. Somehow I couldn't find a proper tutorial on how to achieve this. At least there wasn't anything that explained it in a simple manner.

You will need a UINavigationController, in case you want to navigate through the hierarchy of UITableViews, but we put that thought on hold and I'm gonna show you how to add a custom UINavigationBar.



This is roughly what the final result should look like. You can see my company's logo at the top, inside of a UINavigationBar, which in return is inside of a UITableView. All the components are wrapped in a UITabBarController, which you can see at the bottom in the form of a tab bar.

My first approach was to tackle this kind of interface solely in Interface Builder. It's very straight forward, there's nothing fancy here and my first impression was, that it should work out of the box - the box being InterfaceBuilder. Well, I was able to design almost everything through Interface Builder, just the part with the UINavigationBar made me throw in the towel.



This is what the code looks like. It is implemented in the custom UITableViewController, which is assigned responsibility from the UITabBarController, as soon as its' tab is active.

First step is to initialize the UINavigationBar. In my case, I assign it to an instance variable, which is released in the dealloc method. You can see, that you also have to initialize and add the image yourself, which is usually a simple drag & drop in Interface Builder. That image is then added to the initialized UINavigationBar.

You can see that the solution is only a couple of lines of code, but note that it only works, if you don't want to navigate to a sub view. For that you'd need a UINavigationController.

December 21, 2009

Book Review: Beginning iPhone 3 Development

Apress was kind enough to pass me a copy of this book, which I agreed to review in return.

I reviewed a couple of fine books for Apress over the past two years, but I must say that "Beginning iPhone 3 Development" is one of the finest! The authors did an excellent job, addressing the code and complexity of the underlying platform.

When I first got my hands dirty with iPhone development everything was new: the IDE, the programming language and the environment to which my code is deployed. I didn't know my way around Xcode and I had no idea what Protocols are in Objective-C. This kind of knowledge is what the authors of "Beginning iPhone 3 Development" assume and work with very nicely. They are not trying to explain Xcode in every detail or tell you all about Objective-C, instead they focus on what you need to know right there and then to solve the problem the chapter is focused on.

I like this concept a lot! This way you get to know Xcode and Objective-C step-by-step in bits and pieces, with really good examples. Although the authors are not explaining all the tools and language features in detail, I think you really get a good sip of background information.

Another thing which really makes "Beginning iPhone 3 Development" stand out from other books I read lately, is the style of writing. It's not only the words the authors chose to describe a complex junk of Objective-C code, but also the way they approach it. They keep repeating the basic concepts, but always in a different way, so it doesn't get boring to read about stuff like Delegates and ViewControllers over and over again. It's just exactly what you need to wrap you head around this sort of topics.

If you follow the blog of Jeff Lamarche, one of the authors, you can really see that this guy is all about writing. You can find tons of tutorials there for iPhone development, which immediately remind you of "Beginning iPhone 3 Development". The style and tone of writing are quite similar.

After all the praise there is one downside, it's a minor one, but then again, to you it might be important: the website. It's really just a pointer to a phpbb forum, which is meant to be a place where people can discuss or ask questions about the book. That's all well and good, but the thing wants you to register, even if you merely want to download the source code, which sucks. I just don't need another forum account.

A colleague raised the question why you need a book, in order to develop for the iPhone? After all, the documentation Apple provides is pretty extensive and of high quality. That is true! Apple's Developer Connection provides a plethora of documents on all sorts of topics, all very well written. The problem with those documents is that they don't give you a coherent picture. It's more of a reference documentation. You go there, if you need an answer to some specific problem.

"Beginning iPhone 3 Development" on the other hand, provides a nice example for each chapter, which leads you through all the features of a certain angle of iPhone development. You can tag along and at the end of the chapter, you have a pretty good understanding of what just happened the past 50 pages.

For me, "Beginning iPhone 3 Development" gave me a good insight of what it takes to develop an iPhone application. It even encouraged me to dive deeper and change my development perspective from solely Java towards the iPhone platform. If you are planning to get started with iPhone development, go and buy this book! You won't regret it!

November 23, 2009

Finally Running with the Snow Leopard

A little note upfront - this is not about software development, so if you are solely here to read about my take on coding, this blog entry is not for you!

A little more than 2 months ago I pre-ordered Apple's new Mac OS X 10.6 aka Snow Leopard one week before the official release at Gravis. As it turns out, it was a bad idea, because it took Gravis more than 6 weeks to deliver, but I digress...

After finally receiving my Family Pack, I installed the Snow Leopard on my wife's brand new MacBook. The upgrade was smooth and finished after only about 40 minutes. However, when it came to my old MacBook Pro, the tragedy began...

The first attempt to install Snow Leopard resulted in the installer quitting and rebooting the old Mac OS X as if nothing happened. Booting from the 10.6 DVD and then running the installer didn't help as well. I tried a couple of times, but the Snow Leopard wouldn't come out of the cage. Instead, I got an error message like "An error occurred while installing Mac OS X".

My second attempt was borrowing a colleagues copy of Snow Leopard and trying to install it using my built-in DVD. You might have guessed it - it failed as well, with the same error message. The next attempt was getting an external drive, which I hooked up using FireWire. Unfortunately, neither my nor my colleagues Snow Leopard DVD would let me install.

After I spent hours of trying to tame this animal, I decided to leverage my wife's MacBook as a remote dvd drive. It's pretty easy to setup and worked like a charm, however it didn't get my anywhere installing the new Mac OS X. The same problem here: the installer hangs after a while no matter which DVD I tried.

My last resort was using a USB stick/drive for installation. I found a nice description (german) on the web, which included the following steps:

1. create an image of Snow Leopard using Disk Utility (I used my wife's MacBook for that)
2. restore that image to your USB stick (I got an 8GB stick)
3. boot from your USB stick (hold option/alt while booting and select the USB drive)
4. run the installer

My stick didn't work out of the box, I had to reformat it - since it came FAT32 formatted and I had to run "Scan Image for Restore", which you can find under the Image menu in Disk Utility. After getting my USB drive ready and following the steps above, it worked like a charm. The installation took about an hour and went smoothly, without any problems.

Although I had so much trouble getting Snow Leopard installed, it was worth the pain! My system feels much more snappy and responsive now. Snow Leopard needs less space on my quite limited hard drive and Time Machine backups are reasonably fast now.

Overall, I'm quite happy jumping though all those hoops to the new Mac OS X Snow Leopard, although the experience wasn't very Apple-like.

May 17, 2008

Paying for Software

Since a couple of weeks I'm using a desktop application called MarsEdit to write my blog posts. Blogger's editor is pretty okay and I almost never experienced any problems, but it has one drawback: it doesn't let you work offline.

Google is thinking about adding Google Gears support to blogger, but at the moment all you can do is copy your post to a local file and merge it when you are online again. Although I like the simplicity of blogger's editor, I thought I'd give MarsEdit a try. I really liked it from the very beginning. It is simple and easy to use, just as blogger. There was one feature missing though, which was uploading pictures to a specific picasa web album. I decided to post a RFE to their support forum and to my surprise only one day later I got a beta version which let's do exactly what I asked for. MarsEdit is not for free though, you have to pay for it and that's actually wanted to write about in this blog post.

A lot of people, including me a couple of years ago, are not willing to pay for software. They see software as a necessary evil - they can't use their computer without it, so they rather steal it from somewhere than spent money on it. I was so happy in university, that they provided us with free copy of Windows XP. By no means, I would have bought it myself. I would have rather stayed with the previous version. It's not that I didn't have the money back then, it was more of an attitude that software is not worth spending money on.

That attitude change 180° in the last couple of months. Before getting my mac I didn't use any desktop application whatsoever. I used Google Docs for writing my letters and doing my accounting. Gmail served as a mail client and pidigin was my IM application. I didn't need anything else! Getting my mac book pro basically marked "the return to the desktop" for me and with that, happily spending quite some money on applications.

Some of the applications I got were free. However, I still donated a couple of Euros, because I really like them. I don't know where this change of mind comes from, maybe because I'm a software developer. I know how hard it is to develop something sophisticated. Or maybe it's just because it feels good to buy something nice and on a mac everything seems to look nice.

March 18, 2008

Release Date for Java on Mac


Great that we finally know a release date :-)

com_channels

  • mail(dlinsin@gmail.com)
  • jabber(dlinsin@gmail.com)
  • skype(dlinsin)

recent_postings

loading...