How and when did you get into programming? And into iOS?
It took me a while to get into programming. Although I had two years of computer science at school, I had little to no interest in it. But somehow I always got good grades… After graduation, I wanted to study “something with media” and discovered a study course called “Media Engineering” with only 50 students at the university in my city. I learned about a mix of design, engineering and computer science. Again, I had good grades in the computer science parts, but I still wanted to focus on design somehow. It took me a six-months internship as a designer to realize, that “making things pretty” wasn’t one of my core competences.
I wanted to program! While working on a project during my studies, I got involved with a group of students who wanted to develop an iOS app for exhibitions using iBeacons. I learned the hard way that you need a MacBook to develop iOS apps. Everyone in my group already had a MacBook, except me! Luckily, I got temporary access to some iMacs at my university and started learning Swift. A few weeks later, I applied for a working student job as a mobile developer. They asked me if I wanted to focus on Android or iOS, but it didn’t really matter to me at that point. I just wanted to learn how to make apps and I was glad they gave me a chance. They decided to go with iOS, even though I had an Android smartphone at the time. 😅
It wasn’t long before I got my first iPhone. It was an iPhone 5 and I remember admiring the compact size! Since then, the platform has excited me more and more and I especially like the good integration between different kind of devices.
Sounds like these were the early days of Swift right? Did you have any learning resources that were particularly helpful?
Yes, Swift was in its first version and just released a year ago! My main resource was the iOS Stanford Course CS193p by Paul Hegarty. I really liked his teaching style and it helped me focus on one topic and not feel overwhelmed by all the things I didn't know yet! There is also a SwiftUI course published in 2020 which is also a great resource to learn SwiftUI.
Around this time, I also created my Twitter account and started following some impressive developers, like @NatashaTheRobot, @mattt (@NSHipster) and @KrauseFx. Twitter has become one of my main resources when it comes to learning from others and getting new ideas.
Do you remember what was challenging in the beginning when learning iOS?
Mhmm... 🤔
At the very beginning, definitely one of the challenges for me was to understand how to properly set up constraints for a view in storyboards. I remember using the “Add missing constraints” button to silence all the thousands of constraint warnings but it always led to more errors and a very broken layout 😁 But I also struggled with closures, delegates and protocols and how to manage the data flow… I was one of the people who just put everything into the AppDelegate to access it from anywhere 🙈
And it took me a while to pronounce and write “segue” correctly 😁
Yea the "Add missing constraints" gives false sense of hope 😃 I am curious how the Cineaste App got started? Was it plan since beginning to have it open source?
Yes! Two friends of mine (Chris @NorbiBraun and Marcel @mgr071990 👋) developed the Android version of Cineaste App in 2016 and started with iOS a year later and I was lucky enough that they let me help.
The code for both apps has been available on GitHub since the beginning. I love that they’re open source because there’s nothing to hide and especially as a beginner, it’s great to look into the code of other apps, learn from the projects and see how they’re built and organized.
The possibility for developers from all over the world to contribute and help is soooo cool! I love collaborating with others and would be more than happy to review any pull requests. 😉
Got it! Did you use it a reference when looking for a job?
I don't have any info about it in my CV, but if someone wants to know about my previous experience in a job interview, for example, I always think it's good to be able to show code you’ve written. Especially if you’re not allowed to talk about projects from your last company due to non-disclosure agreements...
Let's turn to the sketchnotes you create. What is the origin story? 🙂
For all those who don’t know what sketchnoting is… Sketchnotes are rich visual notes created from a mix of handwriting, drawings, hand-drawn typography, shapes, and visual elements like arrows, boxes, and lines. They don’t require special drawing skills.
It all started in 2019, I was at a two-day developer conference in Munich and took part in a sketchnoting workshop by @lariki and @MiBLT. I fell in love with this technique from the first moment. The best thing about the workshop was the timing, because I was able to practice my newly learned skill right after the workshop and create my first sketchnotes of the next talks. Sketchnoting helps me to stay focused and listen more actively during talks. You can let your creativity run free and it’s just sooo fun! 😁 All you need is a pen and some paper!
Before this workshop, I only took pictures of a few slides at conferences or made very quick notes on my phone, if at all. But to be honest, I rarely looked at them after the conference. With sketchnotes, it’s completely different for me. I can remember much more from the talks and with quick glance I remember even more details.
I now do sketchnotes whenever I have the opportunity. Because I’m so enthusiastic about sketchnoting, I have already given a few workshops in my last company and passed on what I’ve learned. Definitely one of my highlights was the workshop I gave at NSSpain 2020 last year! Nearly 100 people took part and created their first sketchnote with me 😍
Thats great! The ones you are currently sharing are made on iPad with Procreate right? Do you still also sketch on paper?
Yes that’s right! I have an iPad with Apple Pencil for half a year now and I always use it with Procreate for my sketchnotes at the moment. But I still have some blank pages left in my sketchbooks, which I’ll definitely fill sooner or later.
It has some advantages, but also disadvantages compared to making them on paper. When you do sketchnotes on paper, you have to plan the remaining space on the page. You never know how many important ideas are in the talk, so it has often happened to me that I ran out of space on the page but the talk was still running, and it also happened to me that I saved too much space and then the talk suddenly ended. But both situations are perfectly fine. If the idea or topic is really important and you run out of space, just start a new page... 🤷♀️ and if it’s not that important, you have some time to relax. Blank spaces can easily be filled with a few drawings or you can just accept the blank space. If you do sketchnotes with the iPad, you can scale the content and make it smaller or bigger, that’s great 😁 but it takes extra time to position everything after the talk. If you do a live sketchnote on paper, you are done as soon as the talk is over.
Interesting! I wouldn't have thought about the advantages of paper.. Let's say someone wants to start doing their own sketchnotes. Do you have any recommendations or tips to start?
I think the most important tip is to just start. Try it out! Don’t think about the result and perfection kills! (And I still have to remember this tip too 🙈)
If you’re able to draw a line, a point, a rectangle, a triangle and a circle (it doesn’t even have to be round 😁), you know the visual alphabet. You can draw almost any object with these basic geometric shapes. Remember the time you were in kindergarten. Very few of the children could write words, but they could all draw! Our brain loves visuals. Maybe you need a change in your way of thinking. Next time you hear something about new iPhones. Instead of writing “iPhone” in your notes, you could try to draw one. It would be enough to draw a rectangle with a line at the bottom for the home bar or a small circle for the home button. At least all iOS devs will recognize what you’ve drawn!
Like anything new, it’s a process. It takes time to improve your visual library. Don’t feel intimidated and don’t compare your sketchnotes to others. Every sketchnote is unique and just perfect as it is 😉
If you want, you can share your sketchnote on twitter and mention the speaker and the conference. They’ll really appreciate that you listened to the talk and that you got useful and interesting information from it. Sharing is caring!
I would maybe add that patience is probably required. You recently shared timelapse of one of the sketchnotes and that (about GCD) took like 6 hours right? I assume this wasn't in one sitting? 😃
The sketchnotes I’m currently doing as a summary for possible iOS interview topics are a bit more time-consuming than usual. Normally I consume content from others and make the sketchnote about the perfectly prepared content. But for these sketchnotes, I also do the preparation and the gathering of all the information. Depending on how complex the topic is, I need about half a day of making really rough and simple sketchnotes to gather all the information.
After that I have to decide which information is most important, how to visualize it well and how to structure the sketchnote. For the sketchnote about GCD, it took me about 6 hours. I started in the morning and finished it in the afternoon. Normally I take breaks after a few hours to relax my hand a bit, get some fresh air and think about how to continue and what I should change. But the GCD sketchnote was the most complex in the series so far. The others took me about a day, including research.
Although creating these sketchnotes is quite time-consuming, I like doing them because the information is just easier to keep in my head when I write it down, and I love having these summaries of various basic iOS topics. If they even help others, it’s an absolute win-win situation 😊
You also contribute a lot to the Critical Maps iOS app. I am curious what's the project about? How did you find it and start contributing?
Critical Maps is an app to organize and track the monthly critical mass movement around the world. The idea of critical mass is to come together and make it safe for each other to cycle through the streets. 🚲 One evening a month, hundreds or even thousands of people get together and ride their bicycles together (during the pandemic only if it’s really safe and with masks and distance 😷).
The event should also make others aware that roads are not only for cars and that many cities (at least in Germany) need to drastically improve their cycling infrastructure to make it safe to cycle without risking your life!
The main feature of the app is that you can see on a map where the critical mass is currently riding in your city, so you can easily join them if you want to.
I discovered the Critical Maps app during Hacktoberfest in 2019! It was the first time for me to participate in Hacktoberfest. The goal of this event is to submit at least four pull requests to open source projects and get more people to contributing. If you manage to reach the number of pull requests, you win a t-shirt and stickers. In 2020, you could also choose to plant a tree instead of the t-shirt. 🌳
It was fun to contribute to the CM app and get feedback from other contributors. One of the main contributors invited me to join their organization. Now, I can also review pull requests, merge them and discuss in their slack channel, which has really motivated me to contribute more. I love that they are so open to new contributors. Like I said earlier, it's so much fun to work on open source with others! 😊
That's great!
You have a magic wand... and can change one thing about iOS development. What?
Mh... this isn’t an easy question!
I would’ve said making iOS development more accessible, but that’s already mentioned twice, I think 😁
So... I’d really like to see further improvements to the tooling, so something like being able to configure code style rules without having to integrate third party services like SwiftLint or SwiftFormat. Even though these are great tools, you have to think about the setup in each project. I would like to be able to configure the rules directly in Xcode and have an option to apply rules with a shortcut, similar to “Re-Indent”, or when building/running the app.
Yea, well you would've been the fourth vote 😃
To step away from coding and sketchnoting.. What do you do to relax?
I recently bought my first longboard and am now learning to ride it 😁 I also love to go rock climbing on the weekends and try to meditate a little every day. Meditation helps me a lot to focus on myself and break out of stressful periods.
Awesome! 🛹 Thanks so much for taking the time! Do you want to give someone or something a shoutout?
Thanks for having me! It was really fun to chat with you. So.. you, Filip @nemecek_f, will receive my first shoutout! Keep up your great work! I’m excited to read more iOS chats! 😉
Shoutout to Stefan @stefanjblos who surprises me every time with his brilliant blog posts, even some youtube videos(!) and his continuous will and motivation to learn new things! Thanks also for constantly reminding me and finally getting me to participate in the #iOSDevHappyHour! This is a great community event which you definitely should check out if you haven’t already! 😉
And finally a shoutout to my former iOS colleagues and friends who always support me and believe in me even when I don’t 🤗 I miss you folks!