Teaching programming is a topic that has generated a high level of interest among researchers in recent decades. In particular, multiple approaches to teaching visual programming have been explored, from the use of tools such as Scratch, robots, unplugged programming or activities for the development of computational thinking. Despite the wide range of resources used, students generally tend to perform poorly academically and perceive learning visual programming as a complex and demotivating task.In this article, the TutoApp system is proposed together with a new methodology based on "Learning by Teaching", where students create tutorials in their mobile devices to explain programming concepts to their peers. The hypothesis of this paper is that the use of this tool improves learning outcomes and the level of student satisfaction. An experiment with a pre-posttest design has been carried out with 57 university students in an introductory programming course, 30 belonging to a control group (did not use TutoApp) and 27 belonging to the experimental group (used TutoApp). The findings indicate that the creation of tutorials with TutoApp significantly improved students' academic performance over those who did not use it, specifically in learning the loops and conditional control structures. However, it was observed that anxiety increased in all students while learning visual programming.The results of this study open the door to the validation of the use of systems and methodologies for creating tutorials for teaching visual programming to university students.