Recently, I was asked to write a tutorial and build an iOS app prototype to teach high-school students how to write iOS apps. The goal was to create a basic project that will include all the basic iOS concepts they've learned so far and build the app on these foundations.
It's a good feeling that you're building something that's helping other folks to learn things. But I underestimated how much work it will involve and how tricky it is. Writing apps is simple. Write the code, run the app, verify the functionality and designs, and make sure everything is in order.
Writing video tutorials, explaining things and well documenting them is much harder and involves more time and concentration if you want to deliver them professionally.
Here are some things that I didn't realize are involved in app tutorials but they were of utmost importance when it comes to the final product delivery.
- Live coding is harder than it sounds
When I am writing code by myself without anyone watching, I am much more at ease. But if someone is looking at the screen while I am writing or when I am recording the videos and talking and writing code simultaneously, I need to be more conscious of my actions, the things I do, and the surrounding distractions. If something went wrong, I needed to cut off and start all over again. So perfection was the key and failure was not an option.
2. Creating transcription is hard
At the end of the tutorial, I was also asked to provide a transcript of the audio. I thought I can easily do that by listening to myself and simultaneously typing what I was hearing in the headphone. But turned out, I was talking faster than I could write and had to pause every 5 seconds. This is fine for short videos, but the final video was 3 hours long and this definitely wasn't feasible.
Fortunately, there are many online AI tools that extract transcripts from audio files. You need to use them with caution. First, the free plans are limited and beyond that, you need to pay per minute - Which in my case was going to be too expensive for 180 minutes.
Second, these tools aren't perfect and may produce a slightly different transcript. So you still need to check it all out before publishing the transcript
3. Coming up with an idea for an app
When I am building a random app of my own, I don't care about its viability, clarity, or its adoption by real-world users. However, when you're building something to teach, you need to convince learners about its usage, real-world benefit it offers, and ease of understanding as to why this app would be accepted by users.
For example, if I had built a prototype app of say, a toast sandwich, that caters to a niche population, not a lot of people may relate to it. But if I tackle a real-world problem such as a grocery items list, movie rating app, or trash finder, folks can relate to it and will use it as an inspiration to build other practical apps helping people around them.
4. Building features vs. Keeping it simple
It is very easy to fall into the trap that you're cramming every API and every concept there is to help students learn faster. But that won't do good. You need to keep things simple as they are still learning the foundations of iOS development.
But if you keep it too simple, they won't learn anything either. So how do you strike that balance? In my case, I reached out to the instructor and went through their goals and learning objectives. Made a list of things they were taught and I incorporated them. On some occasions, I went slightly beyond what was taught in the course to give them a holistic understanding but complemented well with what they already knew.
5. Beware of online file transfer tools
Not all tools are created equally. When I was finished recording, I had around 35 video files. I thought managing them individually is a tedious task, so I combined them all using QuickTime and sent them over to the instructor in one giant file.
When they downloaded this huge file on their end, they reported that the audio and video were out of sync. I figured something might have gone wrong during the uploading and processing of this huge file.
I had to go back and cut this file into smaller chunks before sending it again. This approach worked and the files were received without any corruption.
6. Divide the video into logical segment
Giving a single video file or random chunks without logical segments can easily overwhelm the person who has no context on the topic. In my case, although the video was divided into several segments, it wasn't divided logically. For example, when you build a house, you build a foundation, then walls, then roof, then install heating and water connections, etc. In my case, the division didn't really make sense.
I had to go back and watch the full video, split it into logical segments, and provide timestamps for each of these segments. For example, creating a new project, Xcode UI overview, adding a new file, building a screen, adding navigation, and so on. It made learning so much smooth and if students wanted to skip any of the sections for later, they could easily do that with the help of provided timestamps.
In summary, I would say teaching is hard. Just because you know something in detail or you've been working in the field for a while doesn't translate into your ability to convey that knowledge in a clear and concise manner.
However, after going through this experience, I have now realized my (many) mistakes, and received nice feedback at the end with this foundation, I am prepared to create many such videos to make iOS Development Learning easier and accessible to students all around the world.
Support and Feedback
If you have any comments or questions, please feel free to reach out to me on LinkedIn.
If you like my blog content and wish to keep me going, please consider donating on Buy Me a Coffee or Patreon. Help, in any form or amount, is highly appreciated and it's a big motivation to keep me writing more articles like this.