Inside iOS dev is a weekly show about real world iOS development. Your hosts, Alex Bush and Sandeep Aggarwal, draw from their experiences ranging from 4+ year old legacy codebases, to small startup green field projects, to working on apps at places like Uber, Wayfair, and Upkeep with millions of active users. They discuss everything from implementing specific features, to creating flexible designs, to utilizing refactoring techniques, and more. This is THE show for professional iOS developers.
In this episode we have legendary Robert Uncle Bob Martin come over to talk about Clean Code, professionalism, and courage. We cover:
- the impact of Clean Code on businesses' ability to change software and make money
- management pushback on applying Clean Code practices and how to handle it
- how managers get to the truth and how developers get to the truth
- professionalism, courage to take risk and saying NO despite potentially being fired
- writing tests to reduce risks working with legacy (and not legacy) code
- code ownership and pair programming
- following the code rules you establish
- a rapid questions round
- ask listeners' questions
- and much more
Clean Code: Architecture & Design Masters Class for Software Developers . It starts September 6th: https://cleancodemastercourse2023.eventbrite.com/
More Uncle Bob's events can be found here: http://thecleancoder.eventbrite.com/
Clean Coders video courses: http://www.cleancoders.com/
---
If you're looking for to simplifying software development with Clean Code reach out to: https://www.linkedin.com/company/clean-code-ventures/
Prepping for a system design interview? Check out Alex's iOS System Design Interview video course: https://iosinterviewguide.com/system-design-interview
Need to prepare for an iOS Engineer Interview?
https://iosinterviewguide.com
Connect with us:
https://twitter.com/insideiosdev
https://www.linkedin.com/in/alexvbush/
https://www.linkedin.com/in/sandeep-aggarwal-629ab45a/
https://twitter.com/alex_v_bush
https://twitter.com/sandeepCool77
Email us at [email protected]
Sandeep and Alex talk to Aaina Jain and Muralidharan Kathiresan about interviewing in current layoffs prone market, interview stages and tips to be more successful in each.
Aaina's medium: https://medium.com/@aainajain
Murali:
https://unknowndefault.com/
https://topmate.io/murali_k
https://www.linkedin.com/in/muralidharankathiresan/
Prepping for a system design interview? Check out Alex's iOS System Design Interview: video course: https://iosinterviewguide.com/system-design-interview
Need to prepare for an iOS Engineer Interview?
https://iosinterviewguide.com
Connect with us:
- https://twitter.com/insideiosdev
- https://www.linkedin.com/in/alexvbush/
- https://www.linkedin.com/in/sandeep-aggarwal-629ab45a/
Comments or questions? Email us at [email protected]
In this episode Alex and Sandeep react to WWDC 2022 Platform State of The Union. This is our very raw, unresearched reaction/opinion on what we heard on latest WWDC changes for iOS development. Some things are just emotions and unfiltered opinions, some are things we already looked into.
We'll be doing deep dives in other videos into some of the stuff we covered that we're not sure or don't know much about or stuff that deserves more attention.
You can find the video we covered here: https://developer.apple.com/videos/play/wwdc2022/102/
Sign up for Alex's upcoming video course about iOS System Design Interview: https://iosinterviewguide.com/system-design-interview
Sign up for Alex's upcoming video course about RIBs Architecture: http://ribsarchitecture.com/video-course-waitlist
Need to prepare for an iOS Engineer Interview?
https://iosinterviewguide.com
Connect with us: https://twitter.com/insideiosdev
Email us at [email protected]
Alex and Sandeep share 10 iOS development tips that you can add to your knowledge base in less than 10 minutes for a better development experience.
Sign up for Alex's upcoming video course about iOS System Design Interview: https://iosinterviewguide.com/system-design-interview
Need to prepare for an iOS Engineer Interview?
Connect with us: https://twitter.com/insideiosdev
Email us at [email protected]
In this episode Sandeep and Alex showcase how mocks can be used in production code to substitute upcoming unfinished or unreleased backend changes. They use dependency injection and Liskov Substitution Principle to inject a service object implementation that uses local hardcoded data instead of fetching it from the network.
Sign up for Alex's upcoming video course about iOS System Design Interview: https://iosinterviewguide.com/system-design-interview
Need to prepare for an iOS Engineer Interview?
Connect with us: https://twitter.com/insideiosdev
Email us at [email protected]
Alex and Sandeep introduce Swift Sourcery, a code generation tool to automatically create mock implementations for interfaces in your code.
Sourcery on github: https://github.com/krzysztofzablocki/Sourcery
Sign up for Alex's upcoming video course about iOS System Design Interview: https://iosinterviewguide.com/system-design-interview
Need to prepare for an iOS Engineer Interview? https://iosinterviewguide.com
Connect with us: https://twitter.com/insideiosdev
Email us at [email protected]
In this episode Sandeep and Alex refactor a class with a large initializer into something easier to use. This is part one of this series.
Sample code was taken from Fred’s tweet: https://twitter.com/frederickohen/status/1413595709471875072
Sign up for Alex's upcoming video course about iOS System Design Interview: https://iosinterviewguide.com/system-design-interview
Sign up for Alex's upcoming video course about RIBs Architecture: http://ribsarchitecture.com/video-course-waitlist
Need to prepare for an iOS Engineer Interview?
Connect with us: https://twitter.com/insideiosdev
Email us at [email protected]
RIBs Resources:
- [Original RIB repository](https://github.com/uber/RIBs)
- [Uber RIB wiki](https://github.com/uber/RIBs/wiki)
- General video: [Uber's new mobile architecture that scales to hundreds of engineers by Tuomas Artman](https://youtube.com/watch?v=FfwZSk6VRVY)
- Video 1: [Architecture rewrite](https://youtube.com/watch?v=bB9e7ZYVYCo)
- Video 2: [Deep Scope Hierarchies](https://youtube.com/watch?v=LWu1HcFIRnQ)
- Video 3: [Introduction to RIBs](https://youtube.com/watch?v=Q5cTT0M0YXg)
- Video 4: [Plugins in RIBs](https://youtube.com/watch?v=vIdsYLXClZs)
- Blog: [Engineering the Architecture Behind Uber’s New Rider App](https://eng.uber.com/new-rider-app/)
- Blog: [Engineering Scalable, Isolated Mobile Features with Plugins at Uber](https://eng.uber.com/plugins/)
- Blog: [Why We Decided to Rewrite Uber’s Driver App](https://eng.uber.com/rewrite-uber-carbon-app/)
- Blog: [Building a Scalable and Reliable Map Interface for Drivers](https://eng.uber.com/building-a-scalable-and-reliable-map-interface-for-drivers/)
- Blog: [Architecting a Safe, Scalable, and Server-Driven Platform for Driver Preferences with RIBs](https://eng.uber.com/carbon-driver-app-preferences-ribs/)
- Blog: [Activity/Service as a Dependency: Rethinking Android Architecture for the Uber Driver App](https://eng.uber.com/activity-service-dependency-android-architecture/)
- Blog: [Harnessing Code Generation to Increase Reliability & Productivity on iOS at Uber](https://eng.uber.com/code-generation/) ***Not directly RIBs but good to read***
- Blog: [Exploring RIBs](https://medium.com/swlh/ios-architecture-exploring-ribs-3db765284fd8)
- Podcast: [Opinion about RIBs from somebody at Uber](https://overcast.fm/+JAbhB0-c0)
- Podcast: [Alex on Uber's RIB Architecture](https://insideiosdev.com/episodes/alex-on-ubers-rib-architecture-2d362fd3)
- Screencast : [RIBs Architecture on iOS by Alex Bush](https://alexbush.podia.com/ribs-architecture-on-ios)
Sign up for Alex's upcoming video course about iOS System Design Interview: https://iosinterviewguide.com/system-design-interview
Sign up for Alex's upcoming video course about RIBs Architecture: http://ribsarchitecture.com/video-course-waitlist
Need to prepare for an iOS Engineer Interview? https://iosinterviewguide.com
Connect with us: https://twitter.com/insideiosdev
Email us at [email protected]
Alex and Sandeep talk to Michael DeGothsier about challenges developers and designers face working with each other and what approaches and perspectives they might take to improve collaboration.
Sandeep's twitter: https://twitter.com/sandeepCool77
New Inside iOS Dev YouTube channel: https://www.youtube.com/c/InsideiOSDev
Sign up for Alex's upcoming video course about iOS System Design Interview: https://iosinterviewguide.com/system-design-interview
Need to prepare for an iOS Engineer Interview? https://iosinterviewguide.com
Connect with us: https://twitter.com/insideiosdev
Email us at [email protected]
Alex and Sandeep talk to Jeff Gilbert, the author of VIPER architecture, about evolving understanding of VIPER, complex VIPER apps and compare different way to understand and implement VIPER on projects of all sizes.
VIPER Architecture Diagram from the web: https://1drv.ms/u/s!AneU_VTSiGUE5Rvln8cBdVj0Ztja?e=IWt1hn
VIPER Architecture Diagram from its author Jeff Gilbert: https://1drv.ms/b/s!AneU_VTSiGUE5R9MBCMLgr8talep?e=z87kEG
Diagram of two ways of implementing VIPER: https://1drv.ms/u/s!AneU_VTSiGUE5B7WZZE5mLiFtLNh?e=QITm0b
Jeff Gilbert's twitter: https://twitter.com/heyjeffg
Sandeep Aggarwal's twitter: https://twitter.com/sandeepCool77
YouTube video version of this episode can be found here: https://youtu.be/EhsrS6vjuds
In this episode I walk you through how to create an extension on Optional String type to default nil strings to an empty string. This little shortcut can greatly reduce the amount of ifelsing and if let unwrapping on optional strings in your Swift codebase.
This episode's video screencast: https://youtu.be/qzuFvUVuH9U
This episode's audio podcast: https://insideiosdev.com/episodes/swift-optional-string-or-empty-extension
Inside iOS Dev YouTube Channel: https://www.youtube.com/channel/UC6zcA3dAMUWN8E2_dlg_WyQ
Your feedback is valuable to us. Should you encounter any bugs, glitches, lack of functionality or other problems, please email us on [email protected] or join Moon.FM Telegram Group where you can talk directly to the dev team who are happy to answer any queries.