1. Hi! I'm just getting into wow programming, so i'm quite of a noob.

    I'd like to build a healbot/clique-like addon that allows you to cast spells clicking on some custom UI; but reading the API reference turned out that functions like 'CastSpellByName' or 'FocusUnit' are protected.

    How do healbot or clique manage this if you can't cast spells from lua? I did try to dig in the healbot source code, but I didn't understand so much. Specifically, what I'd like to do is this: you have a custom icon that represents an enemy nearby, then click on a spell from my toolbar and click on the addon icon to cast that action/spell to the given enemy.

    Is this actually possible? 

    Hi! I'm just getting into wow programming, so i'm quite of a noob.

    I'd like to build a healbot/clique-like addon that allows you to cast spells clicking on some custom UI; but reading the API reference turned out that functions like 'CastSpellByName' or 'FocusUnit' are protected.

    How do healbot or clique manage this if you can't cast spells from lua? I did try to dig in the healbot source code, but I didn't understand so much. Specifically, what I'd like to do is this: you have a custom icon that represents an enemy nearby, then click on a spell from my toolbar and click on the addon icon to cast that action/spell to the given enemy.

    Is this actually possible? 

    Hi! I'm just getting into wow programming, so i'm quite of a noob.

    I'd like to build a healbot/clique-like addon that allows you to cast spells clicking on some custom UI; but reading the API reference turned out that functions like 'CastSpellByName' or 'FocusUnit' are protected.

    How do healbot or clique manage this if you can't cast spells from lua? I did try to dig in the healbot source code, but I didn't understand so much. Specifically, what I'd like to do is this: you have a custom icon that represents an enemy nearby, then click on a spell from my toolbar and click on the addon icon to cast that action/spell to the given enemy.

    Is this actually possible? 

    What you're trying to do is create unit frames, it sounds.  The secure attribute system is detailed in Chapter 17, specifically on page 248.  You should review this chapter, as it contains most of the details you need.