As you see above, "keen" has two rather different meanings, so you're both right. You are right if you're thinking of the meaning of strong,very good. Your friend is right if he is thinking of the meaning eager.
Please note that "keen" is used more often in British English than American English. To my AmE ears, I would have throught "a keen swimmer" meant a good swimmer, but according to the Cambridge example above (in the first entry), that would not be the usual meaning.
However, if we run a concordance check (
www.edict.com.hk/scripts/WConcApp.dll) on "keen" we find that the word seems to be used frequently with both meanings (of being good at something ot liking something). I suggest that you run a concordance yourself and draw your own conclusion!