Empower Apps cover image

Empower Apps

iOS App Architecture with René Cacheaux and Josh Berlin

Jun 2, 2019
35:37

Guests

Book - Advanced iOS App Architecture

Links

Previous Episodes

Show Notes

Challenges with Architecture in iOS Application Development

  • Dealing with the lack of guidance from Apple
  • Slow team velocity caused By large volumes of code
  • Architecture is important when the team is large enough to benefit
 One day when the team grows more, you’re going to potentially have more problems.
Josh Berlin
  • The need to slow down and establish an architecture in an app
  • constant communication and early meeting to discuss patterns and practices (i.e. Architecture)
  • How team dynamic affects the need for leadership

Applying Patterns to iOS Application Architecture 

  • MVC vs Other Patterns such as RxSwift
  • How design patterns naturally develop
  • Using third party libraries
  • The importance of team DNA
  • The importance of dependency injection
  • Tooling - iOS and Swift vs Android and Kotlin
  • The problems with Storyboards and having healthy architecture

WWDC Hopes and Dreams

Josh Berlin - @jab2109

  • Dark Theme (iOS)

René Cacheaux - @RCachATX

Leo Dion - @leogdion

What happened to Alcatraz and Xcode Extensions?

Social Media

Twitter - @brightdigit
Facebook - BrightDigit

Brand New Instagram! - @brightdigit


Transcript

Leo Dion (Host): [00:00:00] Hello, welcome to another episode of EmpowerApps Show today. We have with us René Cacheaux and Josh Berlin. Guys, thanks for coming on. 

René Cacheaux (Guest): [00:00:08] Thanks for having us. 

Josh Berlin (Guest): [00:00:09] Yeah.

Leo Dion (Host): [00:00:09] So I've heard a lot of issues that companies have with architecture especially architecture with iOS apps and I know you guys have a book coming out as part of the Ray Wenderlich series - IOS app architecture. So this is something I'm really interested [in]. Maybe if you can kind of define the problems you've seen a lot of companies run into when it comes to architecting a successful mobile app, especially in iOS. 

René Cacheaux (Guest): [00:00:40] Yeah, one of the biggest challenges with iOS development is that there's really no strong opinion from Apple. So everyone's really kind of left to roll their own patterns. The biggest issues that I've seen is just slow in-team velocity, because we read a lot more code than we write. Everytime that we go into a code base to add a new feature, fix a bug, or something - the more tightly coupled all the pieces of your app are [and] the more you have to read to kind of understand all the things that you need to understand to make a safe change without breaking something. And so, kind of architecture really helps speed up your team because if you can kind of use the right patterns and break things up into no easy to reason about chunks. It's much much easier to find where you need to make the change and have confidence that you are not going to break something. So that's what I would say kind of like the main points on that.

Josh Berlin (Guest): [00:01:39] Yeah and another thing is like a lot of apps that are built usually start with maybe like one person or a small team and  that developer has an opinion about how to architect the app and as a team grows and the product org wants more changes [it] becomes a lot harder to make those changes if the team isn't on board with one type of architecture and everyone is going to have their own opinion. It's going to be a lot easier to make these changes. If everyone agrees on one architecture and knows where to our find everything, everything is documented because one day when the team grows more, you know, you're going to potentially have more problems - like René was saying finding things in the code base. When the app is small it's not as big of a deal but when it grows it becomes a lot more challenging, so it's good to get these architectural patterns in early on and have everyone on board.

Leo Dion (Host): [00:02:36] Maybe talk a little bit about your background and how did you guys get into iOS development? 

René Cacheaux (Guest): [00:02:40] So I got into it back in around 2008. I was doing a bunch of kind of web Java server face, you know internal it development and my wife had bought an iPhone and was kind of really trying to get me on board with the Apple ecosystem. Back then I was kind of Microsoft guy. You know, I was like, I'll try developing for this it would be interesting and I just got hooked honestly like. Working with like very abstract things kind of in the cloud and kind of in the background versus working on something that you can kind of feel and touch and look and show your friends kind of a really really cool thing. That's how I got into it. 

Leo Dion (Host): [00:03:17] How about you Josh? 

Josh Berlin (Guest): [00:03:18] Yeah. So in college, it was like maybe 10 years ago and iOS first came out. No one was really teaching this in school and I wanted a fitness tracker. So I built one for myself and ended up getting a job at a company building business products for Windows. They wanted to Android and iOS...

Get the Snipd
podcast app

Unlock the knowledge in podcasts with the podcast player of the future.
App store bannerPlay store banner

AI-powered
podcast player

Listen to all your favourite podcasts with AI-powered features

Discover
highlights

Listen to the best highlights from the podcasts you love and dive into the full episode

Save any
moment

Hear something you like? Tap your headphones to save it with AI-generated key takeaways

Share
& Export

Send highlights to Twitter, WhatsApp or export them to Notion, Readwise & more

AI-powered
podcast player

Listen to all your favourite podcasts with AI-powered features

Discover
highlights

Listen to the best highlights from the podcasts you love and dive into the full episode