Showcase: Shani Rivers

What do you do when you’re just out of college, but there aren’t any jobs in your academic field? You learn to code!

That’s what Shani Rivers did. She’s a resourceful iOS developer, a LearnAppMaking alumni, and the developer of 3 apps, including Liste, a task app. Here at LearnAppMaking she learned how to build iOS apps. This is her story.

Shani is currently working on 3 different apps: a weather app, a task app, and a project that uses Processing and Augmented Reality.

Why a weather app? Shani: “I wanted to build an app with a hefty API. The JSON you get back from openweather.org is data-intensive, and I wanted to learn how that works. I’m also making color gradients of the weather, so you can look at it and immediately know whether it’s hot or cold outside.”

In recent months, Shani has participated in the my courses, completed many LearnAppMaking tutorials, and we’ve done a few 1-on-1 calls. Did they help in mastering iOS development?

“A lot, actually. Especially things that are complicated, like passing data in segues. I became confident in using XIB files, not having to use Storyboards for everything,” she explains. “When we started our calls, I didn’t know how to use delegation. You helped me gain the ability to learn new things, like UICollectionView. When I come across something new, I now know what to do.”

It’s important to practice, Shani explains. When implementing an alert view controller, she struggled to understand how they work. Then, she built one herself from scratch, and understood the design behind what she had tried earlier.

“I think that programming is an art, in some way. You’re trying to figure out what works.”

Is there anything about iOS development that makes her smile? Shani: “Yes, how some things are interconnected. When you understand one thing, and then you try something else, you see the similarities. Going from a table view to a collection view, for instance. Both implement different functions, but knowing one helps you understand the other.”

At one point Shani made a Sticker App for her niece, with cute characters that she designed herself. That’s what makes building apps worth it for her. Going from an idea in your head, to sketching it out, creating assets, developing it, and then sharing it with others.

“Oh, and frustrations? I sometimes just want to know how to do one thing. I recently went into Core Data, and I wish someone could just say: we’re going to do this, this and this.”

Shani has a pretty cool way of dealing with that, she explained. Let’s say she wants to work with an image picker. Shani: “OK, I have the picker, the delegate, my controller, and that function to connect them all. I write that down in my notebook, my Quick And Dirty How-To’s, and highlight what I need to implement.”

The notes help her remember. It may be old-fashioned and low-tech, but it’s easy to go back to. It solidifies your understanding of coding, because you have to explain it in simple steps. And it helps you break down new concepts. “Now, when I look at code, I can say: Okay, that’s what they’re doing.”

Shani has a YouTube channel and a blog, where she explains how iOS development works. Check it out! And if you’re learning iOS development yourself, it’s a great idea to take her advice to heart and start blogging and teaching too.

Did the LearnAppMaking courses and tutorials help her overcome challenges that she faces today? Shani: “Yes. We worked on Model-View-Controller and separation of concerns, and that’s helped me a lot.”

“In the Liste app I reuse components, for UIColor for instance. Instead of putting everything in one view controller, I pull something out and put it in its own extension. It’s one of the things that definitely resonated with me.”

Looking into the future, Shani plans to make more apps. “I made the decision that I want to go ahead and start an app company.” Creating her apps first, and then branch out and offer services to other companies.

Any last advice for iOS developers starting today? “Just be patient with yourself. And have something on the side that you want to learn. When I couldn’t figure something out in the Liste app, I started learning something else: JSON and APIs. Then I came back to the Liste app, and I could figure out the problem. Taking a break helped.”

And of course writing notes and teaching what you’re learning to other people. “Write a blog or make a video. When I needed to verbalize what I’m learning, my comprehension just accelerates.”