AI techniques and competencies necessary for creating a Virtual Assistant
First of all, making app for mobile is not normally written in Python, but if you want it, that is possible [1].

Other non ai question is that the counting of speech recognition is so heavy, that at least Alexa etc make it on external server. Wake word recognition is done in machine because of real time needs [3]. Ofcourse your app can trigger from mobile touch event too so speech recognition implementation on mobile can be avoided. 

Using server needs knowledge about communication and web apis as well as server maintenance in cloud.

Speech recognition can be made with open source tools, but the dictionaries with enough samples may not yet exist or they're coming [2]. Also Google offers speech api, that needs mainly programming knowledge to attach speech recognition.

For questions you also need to generate answers. To form that you may reverse the flow in speech generation [4]. All the logic to find useful answers needs some more effort depending how intelligent your assistant will be. That maybe is the most challenging part where direct answer do not exist.

Of course, if you could attach to ready assistant's public api, it would be magnificent. Actually, Alexa api at least is open [5]!! Playing with it directly from mobile makes app soon ready but if you want to learn more algorihms, some pointers are on my above other points.

Sources:

[1] https://www.quora.com/Can-I-make-an-Android-app-with-Python

[2] https://research.mozilla.org/machine-learning/

[3] https://iot.stackexchange.com/questions/736/why-do-most-smart-assistants-offer-little-if-any-customisation-of-the-wake-wor

[4] How could you generate sentences from lists of facts

[5] https://github.com/alexa/alexa-avs-sample-app