I have a categories class which I put the the image and some color categories that I resuse over the project, I simply use them like:
UIImageView *anImageView = [[UIImageView alloc] initWithFrame: [[UIScreen mainScreen] applicationFrame]];
anImageView.image = [UIImage APP_IMAGE_BCKGROUND];
[window addSubview:anImageView];
[anImageView autorelease];
But I have some memory problems, is this way of category usage is a good practise? or how can I define the pictures in a seperate class and memory efficent way?

Yes, the approach you are taking is good practice. The alternative would be to create a
UIImageManagerclass which does essentially the same thing. When given these types of alternatives, I typically choose to use categories, unless I find myself adding many new methods to support my requirements. In that case I’ll create a separate class. But what you have there looks fine.There are no leaks in your code. What memory problems are you having?