Monday, January 25, 2010

Direct iTunes Links

Today it's time for creating proper direct iTunes links for pointing to additional content from within your App. Check out my latest post on http://apptech.next-munich.com for the details.

Tuesday, January 19, 2010

Invalid SSL certificates

Just posted a small piece on ignoring invalid SSL certificates within an iPhone App. Be sure to head over to http://apptech.next-munich.com to read the article.

Monday, January 4, 2010

symbolicatecrash

For the first post in 2010, I have decided to write a small piece on Apple's symbolicatecrash tool. Head over to http://apptech.next-munich.com to read about my findings.

Tuesday, December 29, 2009

Grails Gotcha #1

Whenever you work in Grails and wonder why something like this is not working:



Check the types of objects you're trying to compare. Most likely, one of the following gotchas is keeping you busy.

1. Trying to check for containment of Strings. In case you're using Groovy's support for embedding variables in a string (using "foo $bar" notation), the resulting object is of type GString not String.

2. Trying to check for containment of byte-code-modified objects. Especially when working in Hibernate-environments, objects might not really be what you think they are. They are probably of a type like "MyClass__javaassited_36" where the objects in your list are of type "MyClass".

You might be able to change your statement to use the convenient "any { it -> // code }" method included in the Groovy JDK (Object class).

Hope it saves you from some of the headaches it's been giving me!

Remote Desktop on Mac

Did you know that Mac OS X comes with a fully integrated VNC server and client for quick and easy remote desktop access? I came across the need to use remote desktop connection with my iMac at home once I was away for the holiday season. It was pretty easy to set things up on Mac OS X so here's a quick run down of what you have to do in order to get full remote desktop access to your home Mac:
  1. Optional: Install the fantastic DynDNS client, enter your credentials and domain information. Your Mac can now be accessed using the domain registered at DynDNS even in case you only have a dynamic IP address.
  2. In case you're behind a router, make sure you enable port forwarding to your Mac on port 5900, the default VNC port.
  3. Open your Mac's system settings and open the Sharing settings.
  4. Enable Screen sharing and specify which user should be allowed to login remotely.
  5. You're now ready to go! Get another Mac and open the Finder. Choose "Connect with server" from the "Go to" menu and enter "vnc://".
  6. In case things are working properly, the login form will be displayed. The user credentials are the same that you use when working with your Mac directly (ie. without a remote connection).
Obviously, you should make sure that no user accounts with empty passwords are allowed to login remotely. Enjoy!

Tuesday, December 22, 2009

NEXT Munich

We have finally created a web presence for our new iPhone / iPod touch and Android development studio. You can find our site (German only for now) at the following location:

http://www.next-munich.com

I will start to move most of the tech-related topics to my new tech blog AppTech which is hosted on our website. I'll keep posting in English so that no reader is left behind! The first post on the new blog just presents a small piece of code which can help in case you're having flicker-issues on launch of your cocos2d-enabled application.

Hope to see you on the new site!

Saturday, December 12, 2009

Background Music & SFX on iPhone

I'm so glad that many people are sharing their findings and how they are getting things done in iPhone:

First of all, there is a super-convenient set of classes in the cocos2d package that can be used for playing background music and sound FX. The only thing I have to figure out is how I can tweak these guys to stop iPod music in case the user explicitly wants to enable in-game sound. But that's probably a piece of cake, too!

The next help comes from Tinker Blog which lists suitable file formats and conversion commands. Essentially, iPhone allows you to play one compressed file (like MP3) and several uncompressed files in parallel. Since there's only a single hardware decoder for compressed files available, not more than a single compressed file can play at the same time, though. The idea is to take your most expoensive sound and use it as an MP3 within your application (eg background music) and convert the smaller sounds (typically sound effects) to a format like "IMA4" packed inside of a "CAF" file.