Question: Is it possible to declare variable in @protocol? Just to force programmers to add those variable in implementing class's(classes which implements this protocol) header and implementation?

Thanks

Answer: 
Short answer: **No, it isn't possible to do that**. You can enforce the availability of methods and properties at most.
You could make the objects a concrete subclass. That would be the only way to ensure that they contained the internals that you needed. Of course if you are interested in how the classes are storing their data internally... That is violating some oop paradigms.