Making Quality Software: 12 non functional requirements every app should have.
A functional specification describes how a product will work entirely from the user's perspective. It doesn't care how the thing is implemented. It talks about features. It specifies screens, menus, dialogs, and so on.
A technical specification describes the internal implementation of the program. It talks about data structures, relational database models, choice of programming languages and tools, algorithms, etc.
Painless Functional Specifications 1/4
User Interface Prototypes, User Interface Prototyping Tips and Techniques