With a 29 gallon tank you can get away with a skimmer (actually on any tank you can, but I would not suggest it), since 29 gallons is easy to do good water changes. If you changed out 5 gallons a week, you would have great water quality unless you were overfeeding the tank.
A skimmer is a great investment for a reef tank, it will react to changes faster than anything else and can help save you from many problems. A canister filter is not needed on a reef tank, and can be bad for the tank depending on how you set it up. You want the rock/sand to do the biological filtration and if you have bio media in the canister it will try to do bio filtration as well, causing higher nitrate levels. Plus a canister filter will be acting as a mechanical filter on your tank traping pods, food etc, and not allowing your corals to eat them. Plus all the food etc that is trapped will start breaking down causing nitrate in your tank.
Kim