Creating content as an iOS dev pt. 2: How and where to start | iOS Lead Essentials Podcast #018

In this episode, we pick up the discussion from episode #017 “Creating content as an iOS dev” to respond to common questions we received, such as:

  • “I want better iOS gigs, but there’s a lot of competition. How can I effectively create iOS content to get better iOS opportunities?”
  • “How can I get immediate returns in my iOS career from creating content?”
  • “I want to start an iOS dev blog and YouTube channel. Should I use my name, a brand name, or a business name?”
  • “I want to start my iOS dev blog. Where should I post my content?”
  • “What is mandatory to have on my iOS dev website, blog, or channel?”
  • “Should I use GitHub, or can I use other version control hosts for my online portfolio of iOS projects?”
  • “Should I write blog posts or record videos?”
  • “How to make my iOS videos stand out more and/or be more efficient in getting the message across?”
  • “I want to open source my iOS apps to help others and promote my skills. Should I be concerned with private details?”
  • “Should I build my iOS dev website in Swift with a portfolio and a blog? I could use Vapor or another framework and make it open source.”
  • “I want to create content, but I only work on projects at work, and I can’t publish my employer’s work.”

Moreover, we received comments highlighting that many companies discard candidates without a blog or an active GitHub account.

Building a powerful and trustworthy online presence can help you immensely with finding good opportunities around like-minded people that share your values.

The content within this podcast will help you get started quickly, and it can make all the difference in your career.

Subscribe now to our Youtube channel and Podcast to catch new episodes.

Notes

Creating content as an iOS dev: The path to better opportunities | iOS Lead Essentials Podcast #017

In this episode, you'll learn one of the best investments you can make for your iOS dev career, regardless of your experience level:

Creating content!

You'll find answers to common problems preventing iOS devs from taking advantage of content creation, including:

  • "I don't see how creating content is an investment in my iOS career."
  • "I'd like to create content, but I don't have time."
  • "I tried, but no one likes/reads/watches my content."
  • "I'm not experienced enough to write quality content."
  • "It's hard to create content in English. It takes me twice the time to write an article."
  • "There are a lot of people publishing content already. I don't want to have just another blog talking about the same things."

Moreover, we'll share and how we, Caio and Mike, met.

(Yes, the story is related to creating content, so you don't want to miss it!)

The ideas in this podcast can be the jump-start you need to help others, improve your skills, and receive better offers to work on exciting projects with like-minded people.

Subscribe now to our Youtube channel and Podcast to catch new episodes.

Notes

Clean iOS Architecture: The foundation for sustainable codebases | iOS Lead Essentials Podcast #016

In this episode, you'll learn how you can develop modular and sustainable iOS codebases by applying Clean iOS Architecture concepts to your projects.

You'll find answers to frequently asked questions about Clean iOS Architecture, including:

  • What's considered a Clean iOS Architecture?
  • What are the desired traits of a Clean iOS Architecture?
  • How can I design a Clean iOS Architecture for my iOS app?
  • What practices and patterns support a Clean iOS Architecture?
  • What's the goal of a Clean iOS Architecture? Why should I bother?
  • How can I evaluate my iOS app architecture?
  • How does MVC, MVVM, or MVP fit in a Clean iOS Architecture? Which one should I use?
  • What's an iOS architect, and how can I become one?
  • How can I learn how to design a clean architecture for my iOS apps?
  • How can I refactor a legacy iOS project into a clean architecture?

A Clean iOS Architecture is integral for establishing a win-win-win scenario for the iOS team, the business, and the customers. It's the foundation for developing sustainable codebases and achieving a long, fulfilling, and remarkable dev career.

Subscribe now to our Youtube channel and Podcast to catch new episodes.

Notes

iOS Composition Root: A key concept for achieving loose coupling | iOS Lead Essentials Podcast #015

When applying Dependency Injection (DI) principles in your iOS codebases, you rightly end up pushing and deferring the instantiation of dependencies up the chain.

For example, instead of coupling a ViewModel with a concrete Service by instantiating it directly:

struct BooksViewModel {
  let service = BooksAPIService() ❌
}

Your ViewModels will depend on abstractions (e.g., protocol or closure) passed via initializer injection:

protocol BooksService { ... }   

struct BooksViewModel {
  let service: BooksService ✅
}

This way, you can easily develop, maintain, and test your implementations in isolation. You also gain the ability to inject different kinds of services, making your codebase more composable and Open/Closed.

A common question now is...

"Where should I instantiate and inject the Service and any other dependencies?!"

In the Composition Root!

And in this podcast episode, you’ll find answers to frequently asked questions about the Composition Root and how you can leverage it on your iOS apps, including:

  • What’s a Composition Root?
  • Why do I need a Composition Root in my iOS apps?
  • Where should I create objects to achieve a clean and modular design?
  • Do I need a Composition Root if I use a DI container?
  • Should I use Dependency Injection for a global static struct used for Styling the app with colors/fonts/icons?
  • Is the Main Storyboard the Composition Root of my iOS app?
  • Can I use storyboards for instantiating my View Controllers or should I use only code from the Composition Root?
  • Can you give an example of a simple app with a Composition Root?
  • Wouldn’t the Composition Root negatively impact memory usage and performance if all components were instantiated upfront?
  • How can I test the Composition Root?
  • Do I need the Composition Root for simple apps with a couple screens?
  • Is the Composition a single component, or how many classes or structs make up the Composition Root?

This episode is full of insights you can apply in your current projects to help you and your team achieve loose coupling in the codebase, drastically improve your productivity, and deliver much more value to your company and customers.

Subscribe now to our Youtube channel and Podcast to catch new episodes.

Notes

Design Patterns in iOS/Swift: Standing on the shoulder of giants | iOS Lead Essentials Podcast #014

In this episode, you’ll learn some of the most common design patterns, how to use them, and how they are being used on iOS.

You’ll find answers to frequently asked questions, including:

  • What are design patterns?
  • Where can I find the best catalog of design patterns?
  • What’s an anti-pattern?
  • What is the Adapter design pattern?
  • What is the Composite design pattern?
  • What is the Decorator design pattern?
  • What is the Facade design pattern?
  • What is the Strategy design pattern?
  • What is the Chain of Responsibility design pattern?
  • What is the Observer design pattern?
  • What is the Singleton design pattern?
  • What’s the Builder pattern?
  • Should I memorize all design patterns?

Design patterns capture simple and elegant solutions to recurring problems, so you don’t have to lose valuable time and risk making mistakes by reinventing the wheel.

Knowing how to apply those key design patterns is essential for a remarkable and high-paying career in iOS development. And we believe you can apply the exact ideas and insights in this podcast to speed up your progress.

Subscribe now to our Youtube channel and Podcast to catch new episodes.

Notes

iOS Automated Testing Strategies Q&A (Unit, Integration, UI...) | iOS Lead Essentials Podcast #013

This podcast is all about automated testing strategies to improve your productivity and continuously deliver high-quality apps.

You’ll learn effective testing strategies in iOS as we reply to frequently asked questions, including:

  • What is Unit Testing?
  • What is Integration testing?
  • What is UI testing?
  • What is Acceptance testing?
  • What is End-to-end testing?
  • What is Black-box testing?
  • What is Snapshot testing?
  • Which testing strategy is best, which one should I choose?
  • I read about the benefits of testing, but it takes too long to implement. Am I doing something wrong? Should I abandon the idea of testing?
  • I work on a legacy codebase with no tests. What testing strategies do you suggest to use?
  • My tests sometimes pass and sometimes fail. Can you suggest how I can improve them?
  • My tests take a long time to run, and I’m thinking about stopping testing altogether. Is there any way to speed them up?

Automated testing is a must-have skill for a remarkable and high-paying career in iOS development. And chances are that you can apply the exact ideas and insights in this podcast to speed up your progress.

Subscribe now to our Youtube channel and Podcast to catch new episodes.

Notes

MVC, MVVM, MVP & iOS: Common UI Architectural Design Patterns Q&A | iOS Lead Essentials Podcast #012

In this podcast, we explore the MVC, MVVM, and MVP UI Architectural Design Patterns as we reply to frequently asked questions we receive, including:

  • What's MVC?
  • What's MVVM?
  • What are the differences between MVC and MVVM?
  • What's MVP, and how's it different from MVC and MVVM?
  • When should I use MVP or MVVM over MVC?
  • Which UI design pattern is best?
  • What is the best design pattern for creating reusable components?
  • A lot of job postings I see require MVVM skills. Should I learn only MVVM or all UI design patterns?
  • I see different uses for ViewModels. How can I decide the correct usage for a ViewModel?
  • Should I use only MVC if I want to use Storyboards?
  • Can an MVVM ViewModel work with multiple Views and Models?
  • Should I test Controllers in MVC, ViewModels in MVVM, or the Presenters in MVP or testing the UI in Integration is fine?
  • How can I learn MVC/MVVM/MVP fast?

MVC, MVVM, and MVP are the most common UI patterns in iOS.

Understanding and applying the insights in this podcast will help you create easily maintainable, testable, reusable, and extendable UI components and earn high-paying roles in exciting iOS projects.

Subscribe now to our Youtube channel and Podcast to catch new episodes.

Notes

Lead iOS Developer Q&A: Thriving as a proficient lead developer | iOS Lead Essentials Podcast #011

In this podcast, we dive into the topic of Leadership and what it means to be a remarkable Lead iOS Developer.

Throughout this episode, you’ll find the answers to some of the most frequently asked questions we get from students of the iOS Lead Essentials program, including:

  • What’s a Lead iOS Developer?
  • What does a Lead iOS Developer do?
  • How can I become a Lead iOS Developer?
  • How can I succeed as a Lead iOS Developer?
  • Why would I want to become a Lead iOS Developer and take more responsibilities?
  • Does a Lead iOS Developer make more money than a Senior iOS Developer?
  • Can I become a Lead developer without having amazing technical skills?

You don't need to wait to be awarded a lead title to become a good leader. You can start now.

If you're serious about achieving a remarkable iOS career, learning and applying the insights in this podcast can make all the difference.

Subscribe now to our Youtube channel and Podcast to catch new episodes.

How to Crack iOS Interview Code Tests (Q&A) | iOS Lead Essentials Podcast #010

In this podcast, we share how you can maximize your chances of passing every iOS coding challenge!

If you’re looking for or you believe you’ll eventually be on the search for a remarkable iOS dev role, this episode is for you.

You’ll find the answers to some of the most frequently asked questions we get from students of the iOS Lead Essentials program, including:

  • What should my goal be during the coding challenge stage of an iOS interview?
  • What can I do to improve my chances of passing the coding challenge?
  • What if I don’t have time to implement a good test project?
  • Should my solution be super performant?
  • Should I write tests?
  • Should I create super decomposed modules and classes?
  • Should I use 3rd party frameworks?
  • I was asked to use Storyboards. I never use Storyboards. What should I do?
  • Should I write documentation?
  • Should I create a complex solution to demonstrate my skills if the requirements are too simple?
  • What should I do if I don’t know how to implement some of the requirements?
  • How can I improve the situation if I feel comfortable doing a coding challenge on my own, but not pairing with the interviewer?

Watching and studying the topics in this episode can make all the difference in passing your next iOS coding test, receiving high-paying offers, and working with great people!

Subscribe now to our Youtube channel and Podcast to catch new episodes.

TDD: Ultimate productivity, high salary, and a remarkable career | iOS Lead Essentials Podcast #009

This podcast is all about Test-Driven Development (TDD).

You’ll find the answers to some of the most frequently asked questions we get from students of the iOS Lead Essentials program, including:

  • What’s TDD?
  • What’s the TDD cycle?
  • Why follow TDD?
  • How can I learn to test first?
  • How can I write the test first if I don’t know what I want to test?
  • Can I write the test RIGHT after the implementation in TDD?
  • Can I write the test after if I already have the implementation?
  • What if I have a tight deadline? Can I write my tests after?
  • What if I have implemented the code in the past and I know it works?
  • What if I know what I’m doing, can I skip writing tests then?
  • Why is there so much resistance from experienced developers that don’t want to test their code first or even after?

Test-Driven Development is an extremely valuable skill that more and more iOS teams seek. TDD can significantly increase productivity and software quality, eliminate regressions, and contribute to developer happiness.

All remarkable iOS Developers we know practice TDD. All of them! So, we highly suggest you study the ideas and books discussed in this podcast and start applying them in your workplace to get the most out of your career.

Subscribe now to our Youtube channel and Podcast to catch new episodes.

Notes

Tech Debt: Low short-term risk with High long-term rewards | iOS Lead Essentials Podcast #008

Dealing effectively with debt is essential to an enriching life and career.

And, as software developers, we must also master the art of dealing with a special kind of debt…

Tech Debt!

So, in this podcast, we dive deep into this often misunderstood topic.

You’ll find the answers to some of the most popular Tech Debt questions we get from students of the iOS Lead Essentials program, such as:

  • What’s Tech Debt?
  • Should I never create Tech Debt?
  • Why would I ever want to create Tech Debt in my iOS codebase?
  • Why do I need to understand the concept of Tech Debt? Isn’t Debt a business Responsibility?
  • What are some side-effects of unsustainable Tech Debt in iOS teams?
  • How can I prevent tech-debt?
  • What are some examples of tech-debt on iOS/Swift?
  • How to improve legacy iOS projects full of Tech Debt?

We strongly believe you should apply the ideas in this podcast. Using Tech Debt in your favor can give you an edge and help you receive iOS offers well beyond the market average.

Subscribe now to our Youtube channel and Podcast to catch new episodes.

Notes

Composition in iOS/Swift: A key element of clean app architecture | iOS Lead Essentials Podcast #007

In this podcast, we explore the topic of Composition on iOS and Swift.

You’ll find the answers to some of the most popular questions we get from students of the iOS Lead Essentials program and viewers on our YouTube channel, such as:

  • What’s Composition?
  • How can you compose components in iOS/Swift?
  • What does Composition over Inheritance means?
  • Why is Composition better than Inheritance?
  • What’s the problem with Inheritance?
  • Why should we “Prefer Composition over Inheritance”?
  • What’s the Composite design pattern?
  • What are some valuable traits of composability?
  • What prevents you from creating composable components?

We believe the answers within this podcast are essential to achieving a remarkable, long-lasting, and fulfilling iOS career.

Great companies are looking for talented individuals that can develop clean and sustainable iOS codebases.

So, building the skills to create composable and flexible codebases is a tremendous career asset that can help you find fantastic job opportunities to work in interesting iOS projects.

Subscribe now to our Youtube channel and Podcast to catch new episodes.

Notes

Average vs High iOS Dev Salaries: Breaking free from market caps | iOS Lead Essentials Podcast #006

In this podcast, we address a topic that’s hard to talk about even with friends and family: salary.

The problem is… when a topic is a taboo, you don’t talk about it often or even at all.

As a result, many iOS developers don’t know what to expect and end up leaving a lot of money on the table (we definitely did).

To achieve a remarkable career, this needs to change.

So, in this episode, you’ll find out a common pattern when analysing the average and top 10% salaries for some cities around the globe along with a framework on how to position yourself better in any city (and even score a highly-paid remote job!).

Understanding the concepts in this podcast can be a turning point in your career. It’s the foundation to stop leaving money on the table and get on the path to financial freedom and a fulfilling iOS career.

Subscribe now to our Youtube channel and Podcast to catch new episodes.

Notes

SOLID iOS/Swift Apps: 5 ways to become a well-paid iOS dev faster | iOS Lead Essentials Podcast #005

In this podcast, we examine the SOLID principles with examples and violations in iOS/Swift app development.

The SOLID principles serve as the foundation for you to over-deliver remarkable iOS apps. So, you can ultimately progress faster in your career!

In this episode, you'll learn:

  • What are the SOLID principles
  • What are some concrete examples of each SOLID principle in iOS
  • What are some violations of each SOLID principle in iOS
  • How the SOLID principles can help you flourish in your career
  • The most straightforward way to learn and apply the SOLID principles

In our experience, understanding and applying the SOLID principles is a must-have skill for your journey to a remarkable and fulfilling iOS career.

Subscribe now to our Youtube channel and Podcast to catch new episodes.

Notes

How to never suffer from deadlines, pressure & lack of time again | iOS Lead Essentials Podcast #004

In this podcast, we dive deep into how to have more time, go faster, collaborate better, and always over-deliver exceptional iOS apps.

You'll find the answers to hard challenges, including:

  • “I want to test, but I don’t have time.”
  • “I have to deliver features fast at my job. How can I deliver features faster?”
  • “I want to improve my code, but we have very short deadlines.”

Moreover, we explore the most valuable trait you must cultivate to achieve a remarkable iOS career (and life!): Resourcefulness.

You'll learn ideas that will help you unlock the next level in your career. In our experience, those lessons take many years for individuals to develop on their own.

Subscribe now to our Youtube channel and Podcast to catch new episodes.

Notes

iOS, Swift & DI: The antidote to legacy code and stagnant careers | iOS Lead Essentials Podcast #003

In this podcast, we go deep into Dependency Injection principles, practices, and patterns for overdelivering fantastic iOS applications. So, you can get on the path to achieving an enriching and fulfilling iOS dev career.

You’ll find the answers to some of the most asked questions, including:

  • “What is Dependency Injection?”
  • “What’s the difference between Dependency Injection and Dependency Inversion?”
  • “What are the main Dependency Injection patterns?”
  • “What is Initializer Injection?”
  • “What is Method Injection?”
  • “What is Property Injection?”
  • “What is Composition Root?”
  • “What is a DI Container?”
  • “What’s the best way to learn Dependency Injection and Dependency Inversion?”
  • “Why bother using Dependency Injection instead of globals?”
  • “What are some Dependency Injection Anti-patterns?”
  • “Why is Ambient Context an Anti-pattern?”
  • “Why is Default Initializer Parameters an Anti-pattern?”
  • “Why is Service Locator an Anti-pattern?”
  • “What’s Temporal Coupling?”
  • “What’s the Control Freak Anti-pattern?”
  • “How to decouple CoreData types from the rest of the system?”
  • “How to decouple Networking from the rest of the system?”
  • “How to manage Cocoapods and external libraries in iOS projects regarding Dependency Injection?“

In our experience, Dependency Management is one of the most essential skills to achieving a remarkable iOS career. And the answers to these questions can make all the difference in how fast you can get there.

Subscribe now to our Youtube channel and Podcast to catch new episodes.

Notes

iOS Architecture & Fast Career Growth: Find people who care | iOS Lead Essentials Podcast #002

In this episode of the iOS Lead Essentials Podcast, we go deep into the importance of good architecture for your iOS apps and how good software architecture and design are essential skills to achieving an enriching and fulfilling iOS dev career.

Moreover, we reply to some of the most asked questions including:

  • “What is the best software architecture?”
  • “What is the best pattern? MVC, MVVM, MVP, or VIPER?”
  • “What are the key elements of good architecture?”
  • “How can I learn how to create good software architecture?”
  • “Speed is important where I work. Does it take longer to create good architecture?”
  • "Should I fear over-engineering my architecture solution?”
  • “I’m not a software architect. Should I learn how to create good software architecture?”

In our opinion, the answers to these questions are crucial to achieving a remarkable iOS career and can make all the difference in how fast you can get there.

Subscribe now to our Youtube channel and Podcast to catch new episodes.

Notes

19 "Should I test my iOS apps if…" Questions | iOS Lead Essentials Podcast #001

In every iOS Lead Essentials Podcast, we’ll go deep into an essential iOS dev topic to help you in your journey towards a remarkable iOS career.

The topic for this first episode is Testing. More specifically, the pains and benefits of writing automated tests for your iOS apps.

Understanding the answers in this Podcast can make all the difference in how fast you progress your iOS career.