About five years ago, I had a burnout. Or at least, something very similar to it. I had no joy programming anymore, especially programming for iOS. I wrote some stream-of-consciousness posts about it. Now, five years later, I'm a very happy programmer again. I'm writing this to figure out what happened in between.
When I realized things weren't going to well with me, the first thing that I did is taking a few months off. I hardly did any programming. In fact, I hardly did anything at all. I did start taking running a bit more serious, and really tried to put some effort into that. I believe the running was a big factor in helping me through the burnout, both because it helps against depression and it made me feel good about myself. Even at the moment I'm writing this, I have just put in a hard run and am still high on the endorphins.
I started thinking really hard about other ways to make a living, but couldn't really figure out what I wanted. I did not get excited at all about any technology-related stuff. The "best" idea was to start a trail running company that organizes trips to mountainous areas for people who live in flat places. I moved to Berlin. I had some small iOS gigs going on to pay the bills, but I wasn't too happy (although I was happier than in the beginning). Then, at some point, I decided I needed to take on some bigger gigs to make sure I could keep paying the bills, and started doing lots of things. I got busy, and at some point started working with Florian.
Working with him made things really fun again, for many different reasons. We had a challenging project and took the time to do things right. He was inexperienced on the iOS platform, but really challenged lots of my habits, and I learned a lot. At the same time, I started organizing the first edition of UIKonf. Doing all these things was just so much fun. It did "feel like work" sometimes, but because of the results we were getting, it was awesome.
Around the same time, I started objc.io, together with Florian and Daniel. I already knew working with Florian was awesome. Working with Daniel was just as awesome, but for different reasons. He is both really smart and has a lot of experience. It is so nice writing things and having Daniel say: "well, actually..." and learning so much from his explanations. He often solves problems in a very elegant way that is obvious to understand, but not so easy to come up with. Learning all this stuff made programming a lot of fun again.
Looking back, I think I might have reached a plateau when I got the burnout. Taking a long break and having a new hobby was really good. After that, learning lots of new things and accepting that I hardly knew anything really made me excited about programming again. Finally, a major part is other people: working together with people who challenge you is really great. If you're struggling with similar problems: it took me a few years, but this is what worked for me.