Whether mobile projects are a career or a part-time hobby, we’re always excited to learn how developers use Xamarin, Azure, and C# to bring their ideas to life. Podly, started by two friends and former colleagues, is a prime example: frustration inspired its co-founders to create a better podcast discovery and listening experience; C# made it possible in rapid time. Podly, available for iPhone and iPad, combines social networking, discovery, and gamification, allowing users to discover, listen, sync, and share podcasts across their friends and family, and personalized monthly leaderboards challenge users to listen more.
Oren Goldfinger, Podly co-founder, joins us to share how he turned one of his favorite hobbies, podcast listening, into a community of listeners and engaged fans in just six months.
Tell us a little bit about your company and role. Have you always been a developer?
My co-founder, Kenneth Ito, and I have over two decades of software development between us. We worked together at a previous company and have always kept in touch; we’re a very balanced team who loves dreaming about the next big thing and making it real.
A few years ago, we decided to quit our full-time developer jobs to try and make a small difference. We wanted an easy way to see what podcasts our friends were listening to and to share our favorite episode, and Podly was born.
Why did you build your app?
Podcasts are great at the gym, in the car, or running errands, and we created Podly to make it easy to discover and share podcasts with friends. My co-founder and I are avid listeners, but we were frustrated with the existing podcast players. He prefers Android, I have an iPhone, and podcast listening across platforms was the same. The quality and availability of podcasts has improved tremendously, but the existing apps haven’t changed in over ten years.
Most players cost money to download or else are free but ad-cluttered. Those issues aside, it’s nearly impossible to find good podcasts; at best, there’s a single “Discover” section (buried in the UI) where you’re left at the developers’ mercy, hoping the app suggests something relevant.
We designed Podly as a social podcast player, where users connect with friends and other podcast fans to talk about their favorite podcasts, episodes, and moments. You can see which podcasts your friends are listening to, as well as their favorite episodes. When you discover a new podcast, Podly highlights the most popular episodes, so you know where to start.
Why did you choose Xamarin?
Podly is part social network, part podcast curation and streaming. To be successful, a social network can’t be isolated on a single platform, it has to reach as many users as possible. We knew we had to deliver Podly across major operating systems.
It’s well known that, years ago, Facebook tried to use a web-wrapper (HTML5) to build their mobile apps. This makes sense in theory, since it’s a single app for all devices; however, the team quickly learned there are real differences between these devices. For the best possible design and performance, you need to custom build your apps for each device and operating system. In other words, your mobile apps need to run natively.
We didn’t want to compromise on Podly’s quality. We evaluated a few popular frameworks, but, in the end, it was important that our app delivers the best experience, which to us meant running natively on Android and iOS.
We also wanted to get started immediately and share as much code as possible across platforms to ensure faster, higher quality releases. Since we both had a lot of C# experience, selecting Xamarin was an easy decision.
I’ve built iOS apps, so I was comfortable with the iOS framework, but C# has always been my preferred language. C# puts countless open-source frameworks and tools available at your fingertips, and it’s an extremely versatile language (some of the most popular video games, apps, and websites are all built with C#). My existing iOS and C# background made Xamarin straightforward, and now, it’s extremely easy to support different platforms, without learning a new language each time. We’re planning to bring Podly to Android devices (my co-founder is the biggest proponent!).
What’s the most compelling or exciting aspect of your app?
There are still a lot of people who have never listened to a podcast, and even more who don’t know about them. We worked hard to make sure our app was as easy to use as possible, and knew we needed a good understanding of our user’s journey to make everything intuitive and simple to navigate.
Podly caters to all audiences: die-hard podcast fans and first-time listeners. Newbies don’t know how or where to get started, and a great place to start is with your friends’ favorite podcasts.
For podcast listeners, Podly automatically scans users’ iTunes libraries, so it’s easy to migrate current subscriptions and start discovering new favorites.
Describe your development process.
My co-founder and I have worked together for a long time, and we balance each other out well. He focuses on the entire backend, including infrastructure, deployments, and services, while I focus on the front end, everything from initial app design to development.
With Xamarin tools for Visual Studio, we used single solution with shared libraries, which made our development process extremely easy. PCLs are one of my favorite features to use; sharing code between server and client just makes everything easier and faster.
I ran Visual Studio for Mac, Kenneth used Visual Studio on his Windows machine, and we integrated Visual Studio Team Services for source control to stay in sync. We run unit tests for backend test coverage, and use TestFlight to distribute and test new features with our beta users. People have increasingly zero-tolerance for buggy apps; if it doesn’t work well, it won’t be enjoyable for us or our customers.
To start, we created wireframes to storyboard the entire app; we’d sometimes spend weeks discussing which core features we needed to support in the first release and the best way to build them. During the design phase, we paid close attention to the smallest details. For example: people often listen to podcasts when it’s inconvenient or difficult to look at a phone (driving into the office or during a workout), so we made sure certain buttons were extremely easy to find and click with a quick glance.
We released our first iteration six months after we started, and our development was divided into two phases. We spent three or four months designing and building our beta, as noted above. From there, we distributed to a small group of power users (initially friends and family, and gradually expanding to include our extended network), captured their feedback, and continuously tweaked and improved the experience over a period of twelve weeks.
Building with Xamarin was surprisingly easier than iOS.
I knew that C# is a more mature and powerful language than Objective-C or Swift, but what I didn’t expect was for Visual Studio for Mac to be so much better than Xcode. It surpasses Apple’s native development environment and was immediately more valuable. From the IDE to debugging experience, I felt like I was developing C# in Visual Studio on a Windows machine.
How (and why) are you using Microsoft Azure?
We evaluated Amazon AWS and Microsoft Azure, but Azure was a much better fit for what we needed, and getting started with the NuGet SDKs and libraries was a snap. We’re using Cloud Services, Application Insights, Continuous Integration/Deployment, Storage, SQL Server, SQL DB, and Redis Cache.
What have your users said about your app?
The first thing I do is look at our day’s analytics, app reviews, and social media accounts. I love hearing from the community and seeing their reactions (both good and bad!). The best feedback is when someone shares that Podly has helped them discover new podcasts. There are so many great podcasts out there, but a lot people just can’t find them or don’t know where to start.
We’re very proud of our five-star rating in the iOS App Store, and we were featured on Product Hunt. One of our fans submitted Podly, and we only found out after we were on the homepage. Knowing our community was actively spreading the word was extremely validating.
Our public store reviews are great. We have one user who was with us in the beta, who shared that, “I loved it then and I love it even more now! The social aspect of Podly makes it the clear choice when listening to podcasts. No longer are you just a consumer of podcasts but you can now become immersed in podcasts.”
We take this feedback to heart. We’re a small team with a large backlog, but user-generated feedback and bugs are added to our list and prioritized with our own additions.
What are you building next?
We’re starting to work on AI and Machine Learning to make even better podcast suggestions and to help our users discover new podcasts. This is our first time dabbling with it, but we’re excited about what it makes possible.
We launched our business simply to develop this product. We’re already getting great reviews, and now, we need to keep iterating and growing the community.
What advice do you have for developers who are just starting out or investigating mobile development?
Stack Overflow is always a great developer resource, and we’ve been quite active in various forums. We’ve also relied on and contributed to a several open source frameworks on GitHub, including MZFormSheetPresentationController, RSKImageCropper, and CNPPopupController, which helped us get to our MVP quickly.
My advice is simple: just start however is easiest for you. There’s a steep learning curve when developing for a new platform, so cut corners where you can (without impacting user experience), so you can fail and learn as fast as possible.