Have you ever felt like managing app state keeps getting more and more complex as you add new features? Curious about what design patterns and techniques can help?
To become a complete senior iOS developer, you need to know ways to handle app transitions throughout the app lifetime seamlessly. So watch this mentoring session now 👇
https://www.essentialdeveloper.com/articles/how-senior-ios-devs-handle-state-transitions-throughout-the-app-lifetime-live-dev-mentoring
But hurry up because this video is publicly available only until June 27th, 2022. After that, it'll only be available to students of the Essential Developer Academy.
To become a complete senior iOS developer, you need to know ways to handle app transitions throughout the app lifetime seamlessly. So watch this mentoring session now 👇
https://www.essentialdeveloper.com/articles/how-senior-ios-devs-handle-state-transitions-throughout-the-app-lifetime-live-dev-mentoring
But hurry up because this video is publicly available only until June 27th, 2022. After that, it'll only be available to students of the Essential Developer Academy.
🔥2
Ever had to implement a very complex iOS app flow? For example... 👇
• The app is accessible without an account, but some content is locked behind permissions controlled by admins.
• If the user wants to access locked content and is not logged in, show the login screen with the option to create a new account.
• Once logged in, check if they have permission to access the content.
• If they have access, show the content.
• If not, show a flow for requesting permission to an admin...
• Some content may require additional flows, such as accepting terms and conditions...
And so on. Those flows can get really long and complex. And new rules may be added at any time. So if we don't manage the complexity well, we'll end up with huge classes with thousands of lines of messy code.
To become a complete senior iOS developer, you need to learn how to implement complex flows in a simple and maintainable way.
So watch this mentoring session now to learn how to design independent flows that are easy to implement, test, maintain, compose, and extend.
https://www.essentialdeveloper.com/articles/architecting-complex-ios-app-flows-with-senior-devs-live-dev-mentoring
But hurry up because this video is publicly available only until July 4th, 2022. After that, it'll only be available to students of the Essential Developer Academy.
• The app is accessible without an account, but some content is locked behind permissions controlled by admins.
• If the user wants to access locked content and is not logged in, show the login screen with the option to create a new account.
• Once logged in, check if they have permission to access the content.
• If they have access, show the content.
• If not, show a flow for requesting permission to an admin...
• Some content may require additional flows, such as accepting terms and conditions...
And so on. Those flows can get really long and complex. And new rules may be added at any time. So if we don't manage the complexity well, we'll end up with huge classes with thousands of lines of messy code.
To become a complete senior iOS developer, you need to learn how to implement complex flows in a simple and maintainable way.
So watch this mentoring session now to learn how to design independent flows that are easy to implement, test, maintain, compose, and extend.
https://www.essentialdeveloper.com/articles/architecting-complex-ios-app-flows-with-senior-devs-live-dev-mentoring
But hurry up because this video is publicly available only until July 4th, 2022. After that, it'll only be available to students of the Essential Developer Academy.
🔥11👍5
Have you ever had doubts or difficulty modularizing your iOS apps' architecture? For example... 👇
Should you separate your app vertically into feature modules?
Or maybe in horizontal layers like Models, Services, Views, etc.?
Or perhaps using a mixture of both horizontal and vertical slicing?
And which one will improve build times?
To become a complete senior iOS developer, you need to know when and how to extract your code into isolated modules that are easy to develop, test, compose, and maintain.
So watch this mentoring session now to learn when and how to use modularity to improve your codebase and your team's productivity.
https://www.essentialdeveloper.com/articles/senior-ios-dev-modular-app-architecture-review-live-dev-mentoring
Should you separate your app vertically into feature modules?
Or maybe in horizontal layers like Models, Services, Views, etc.?
Or perhaps using a mixture of both horizontal and vertical slicing?
And which one will improve build times?
To become a complete senior iOS developer, you need to know when and how to extract your code into isolated modules that are easy to develop, test, compose, and maintain.
So watch this mentoring session now to learn when and how to use modularity to improve your codebase and your team's productivity.
https://www.essentialdeveloper.com/articles/senior-ios-dev-modular-app-architecture-review-live-dev-mentoring
👍12🔥6
Many iOS devs believe they will earn a raise or get paid more if they work longer hours. But it rarely works because... 👇
1) Your boss may not perceive your extra hours as extra work. They may not even know you're doing extra hours.
Worst yet... What if they get used to your extra delivery pace? It'll be hard to go back to the normal number of hours later as they'd think you "slowed down."
When the "extra hours" becomes the norm, you actually DECREASE your hourly rate because you have to work more hours to get paid the same.
2) Fatigue. You won't be able to sustain long hours forever, and the quality of your work will decrease over time. So chances of improving and getting a significant raise will decrease.
3) It doesn't scale. We all have only 24h a day with limited time to work - so you can't keep increasing your salary by working more hours forever.
A better way of increasing our income as iOS devs is to deliver more value with less effort.
To become a complete senior iOS developer, you need to know better ways of increasing your income by delivering more value to your clients and team with less effort.
So watch this mentoring session now and learn how to increase your income sustainably without working more hours:
https://www.essentialdeveloper.com/articles/how-to-increase-your-senior-ios-dev-income-without-working-more-hours
1) Your boss may not perceive your extra hours as extra work. They may not even know you're doing extra hours.
Worst yet... What if they get used to your extra delivery pace? It'll be hard to go back to the normal number of hours later as they'd think you "slowed down."
When the "extra hours" becomes the norm, you actually DECREASE your hourly rate because you have to work more hours to get paid the same.
2) Fatigue. You won't be able to sustain long hours forever, and the quality of your work will decrease over time. So chances of improving and getting a significant raise will decrease.
3) It doesn't scale. We all have only 24h a day with limited time to work - so you can't keep increasing your salary by working more hours forever.
A better way of increasing our income as iOS devs is to deliver more value with less effort.
To become a complete senior iOS developer, you need to know better ways of increasing your income by delivering more value to your clients and team with less effort.
So watch this mentoring session now and learn how to increase your income sustainably without working more hours:
https://www.essentialdeveloper.com/articles/how-to-increase-your-senior-ios-dev-income-without-working-more-hours
👏5🔥4👍2
iOS DEV: "My CI build with 3rd-party dependencies is too slow 😱" 👇
Have you ever experienced slow CI build times - sometimes taking even longer than your local builds?!
To become a complete senior iOS developer, you need to know how to correctly configure your CI pipeline, especially with 3rd-party dependencies via Cocoapods, Carthage, and SPM.
So watch this mentoring session now to learn how to speed up a slow CI pipeline to deliver better iOS apps faster.
https://essentialdeveloper.com/articles/how-to-speed-up-slow-ios-ci-with-cocoapods-carthage-spm-dependencies-live-dev-mentoring
Have you ever experienced slow CI build times - sometimes taking even longer than your local builds?!
To become a complete senior iOS developer, you need to know how to correctly configure your CI pipeline, especially with 3rd-party dependencies via Cocoapods, Carthage, and SPM.
So watch this mentoring session now to learn how to speed up a slow CI pipeline to deliver better iOS apps faster.
https://essentialdeveloper.com/articles/how-to-speed-up-slow-ios-ci-with-cocoapods-carthage-spm-dependencies-live-dev-mentoring
👍5👏3
Did you know your iOS apps could have race conditions when refreshing Auth Tokens? 👇
To become a complete senior iOS developer, you need to know how to store and refresh access tokens securely and without race conditions.
Also, how to use the Decorator design pattern to sign requests across multiple features without duplicating code everywhere.
So watch this mentoring session now to learn how to refresh tokens correctly using Swift Async/Await and Actors:
👉 https://www.essentialdeveloper.com/articles/how-to-refresh-auth-tokens-correctly-using-swift-async-await-actors-live-dev-mentoring
But hurry up because this video is publicly available only until August 8th, 2022. After that, it'll only be available to students of the iOS Lead Essentials program.
---
P.S. Enrollment for the iOS Lead Essentials cohort #19 is open until tomorrow, July 29, 2022, or until all seats are taken. Learn more here: https://iosacademy.essentialdeveloper.com/p/ios-lead-essentials/
To become a complete senior iOS developer, you need to know how to store and refresh access tokens securely and without race conditions.
Also, how to use the Decorator design pattern to sign requests across multiple features without duplicating code everywhere.
So watch this mentoring session now to learn how to refresh tokens correctly using Swift Async/Await and Actors:
👉 https://www.essentialdeveloper.com/articles/how-to-refresh-auth-tokens-correctly-using-swift-async-await-actors-live-dev-mentoring
But hurry up because this video is publicly available only until August 8th, 2022. After that, it'll only be available to students of the iOS Lead Essentials program.
---
P.S. Enrollment for the iOS Lead Essentials cohort #19 is open until tomorrow, July 29, 2022, or until all seats are taken. Learn more here: https://iosacademy.essentialdeveloper.com/p/ios-lead-essentials/
❤8👍2🤔1
Have you considered transitioning parts of your existing app using UIKit to SwiftUI? 👇
Many iOS devs and iOS teams have difficulties migrating because of custom flows used in the app, such as navigation and UI behaviors that aren't easily reproducible with SwiftUI.
To become a complete senior iOS developer, you need to know how to dig and experiment with ideas to determine the trade-offs of such transitions, assessing the best choice for your team in the short and long term.
So watch this mentoring session now to learn how to choose the right approach/framework to maintain or even boost your team's productivity when there is a significant paradigm shift in our tools, like the adoption of SwiftUI.
https://www.essentialdeveloper.com/articles/custom-ios-app-navigation-with-swiftui-navigation-bar-view-styling-live-dev-mentoring
But hurry up because this video is publicly available only until August 15th, 2022. After that, it'll only be available to students of the iOS Lead Essentials program.
Many iOS devs and iOS teams have difficulties migrating because of custom flows used in the app, such as navigation and UI behaviors that aren't easily reproducible with SwiftUI.
To become a complete senior iOS developer, you need to know how to dig and experiment with ideas to determine the trade-offs of such transitions, assessing the best choice for your team in the short and long term.
So watch this mentoring session now to learn how to choose the right approach/framework to maintain or even boost your team's productivity when there is a significant paradigm shift in our tools, like the adoption of SwiftUI.
https://www.essentialdeveloper.com/articles/custom-ios-app-navigation-with-swiftui-navigation-bar-view-styling-live-dev-mentoring
But hurry up because this video is publicly available only until August 15th, 2022. After that, it'll only be available to students of the iOS Lead Essentials program.
🔥17
"Should I extract my code into reusable components to avoid duplication?" 👇
Well, it depends...
Usually, yes. We don't want to duplicate UI code because every time we need to make a change, we'd have to remember to update it in EVERY duplicate component. And this is inefficient and error-prone.
But in large modular apps, we also don't want to couple all feature modules with a shared UI module. Otherwise, changing the shared module because of "Feature A" will also impact "Feature B" directly. This would also be inefficient because it would increase build times and require synchronization between feature teams.
Is there a solution to this problem?
Yes! There's a specific way of creating shared UI modules without increasing coupling between modules.
To become a complete senior iOS developer, you need to know when it's the right time to extract duplicate code into a shared module and how to do it efficiently without increasing coupling between feature teams.
So watch this mentoring session now to learn when and how to create a shared UI module.
https://www.essentialdeveloper.com/articles/ios-app-architecture-when-and-how-to-create-a-shared-ui-module-live-dev-mentoring
But hurry up because this video is publicly available only until August 22nd, 2022. After that, it'll only be available to students of the iOS Lead Essentials program.
Well, it depends...
Usually, yes. We don't want to duplicate UI code because every time we need to make a change, we'd have to remember to update it in EVERY duplicate component. And this is inefficient and error-prone.
But in large modular apps, we also don't want to couple all feature modules with a shared UI module. Otherwise, changing the shared module because of "Feature A" will also impact "Feature B" directly. This would also be inefficient because it would increase build times and require synchronization between feature teams.
Is there a solution to this problem?
Yes! There's a specific way of creating shared UI modules without increasing coupling between modules.
To become a complete senior iOS developer, you need to know when it's the right time to extract duplicate code into a shared module and how to do it efficiently without increasing coupling between feature teams.
So watch this mentoring session now to learn when and how to create a shared UI module.
https://www.essentialdeveloper.com/articles/ios-app-architecture-when-and-how-to-create-a-shared-ui-module-live-dev-mentoring
But hurry up because this video is publicly available only until August 22nd, 2022. After that, it'll only be available to students of the iOS Lead Essentials program.
🔥14👍2
Ever wondered how to architect iOS apps with real-time UI updates via WebSockets? 🤔👇
To become a complete senior iOS developer, you need to know how to architect iOS apps with different networking protocols - including WebSockets!
So watch this mentoring session now to learn how to use WebSockets for real-time UI updates in a clean, composable, and testable way.
https://www.essentialdeveloper.com/articles/ios-app-architecture-for-realtime-ui-updates-via-websockets-live-dev-mentoring
To become a complete senior iOS developer, you need to know how to architect iOS apps with different networking protocols - including WebSockets!
So watch this mentoring session now to learn how to use WebSockets for real-time UI updates in a clean, composable, and testable way.
https://www.essentialdeveloper.com/articles/ios-app-architecture-for-realtime-ui-updates-via-websockets-live-dev-mentoring
👍8🔥7❤3
To become a complete senior iOS developer, you need to know how to manage complex navigation flows in your iOS apps with different UI frameworks - including SwiftUI!
So watch this mentoring session now to learn how to easily manage custom navigation flows in SwiftUI programmatically.
https://www.essentialdeveloper.com/articles/how-senior-ios-devs-do-swiftui-navigation-programmatically-patterns-flows-live-dev-mentoring
But hurry up because this video is publicly available only until September 5th, 2022. After that, it'll only be available to students of the iOS Lead Essentials program.
So watch this mentoring session now to learn how to easily manage custom navigation flows in SwiftUI programmatically.
https://www.essentialdeveloper.com/articles/how-senior-ios-devs-do-swiftui-navigation-programmatically-patterns-flows-live-dev-mentoring
But hurry up because this video is publicly available only until September 5th, 2022. After that, it'll only be available to students of the iOS Lead Essentials program.
🔥18
Learn how to become a senior iOS developer, crack the senior interview, and negotiate salary. 👇
https://www.essentialdeveloper.com/articles/how-to-crack-the-senior-ios-dev-interview-and-negotiate-salary-live-dev-mentoring
https://www.essentialdeveloper.com/articles/how-to-crack-the-senior-ios-dev-interview-and-negotiate-salary-live-dev-mentoring
🔥7👍5🥰3
Watch this live Senior iOS Developer interview code review now to learn:
- What interviewers expect from Senior iOS Developers
- And how to prepare for and pass the interview test project!
https://www.essentialdeveloper.com/articles/how-to-crack-the-senior-ios-dev-interview-test-project-review-preparation
- What interviewers expect from Senior iOS Developers
- And how to prepare for and pass the interview test project!
https://www.essentialdeveloper.com/articles/how-to-crack-the-senior-ios-dev-interview-test-project-review-preparation
🔥14
We just released a new podcast episode 🎙
Our guest today is Damian Modernell, a student of the iOS Lead Essentials program who managed to move from a regular office job to working remotely from a Caribbean Island!
Watch it now to learn how he did it 👇
https://www.essentialdeveloper.com/articles/ios-dev-journey-from-office-to-remote-job-from-caribbean-island-ios-lead-essentials-podcast-042
Our guest today is Damian Modernell, a student of the iOS Lead Essentials program who managed to move from a regular office job to working remotely from a Caribbean Island!
Watch it now to learn how he did it 👇
https://www.essentialdeveloper.com/articles/ios-dev-journey-from-office-to-remote-job-from-caribbean-island-ios-lead-essentials-podcast-042
🔥11
Watch this session now to learn how senior iOS developers use the latest
https://www.essentialdeveloper.com/articles/architecting-ios-apps-for-the-latest-uicollectionviewcell-registration-apis-live-dev-mentoring
But hurry up because this video is publicly available only until September 26th, 2022. After that, it'll only be available to students of the iOS Lead Essentials program.
UICollectionView.CellRegistration
APIs without losing modularity and testability.https://www.essentialdeveloper.com/articles/architecting-ios-apps-for-the-latest-uicollectionviewcell-registration-apis-live-dev-mentoring
But hurry up because this video is publicly available only until September 26th, 2022. After that, it'll only be available to students of the iOS Lead Essentials program.
🔥10
We don't know if you've seen it but our podcast is back 🎙!
And we have already released 3 new episodes:
• Paras Gorasiya, a student of the iOS Lead Essentials program who managed to move to a new job in Germany with a 3x salary hike 🇮🇳✈️🇩🇪: https://youtu.be/mPuSpI7jQ5E
• Damian Modernell, a student of the iOS Lead Essentials program who managed to move from a regular office job to working remotely from a Caribbean Island 🏝: https://youtu.be/QoaIAT3W53g
• Florian Tousch, a student of the iOS Lead Essentials program who got a 4x pay raise developing iOS apps and traveling at the same time ✈️🧑💻: https://youtu.be/P6yYPZlSJzU
And we have already released 3 new episodes:
• Paras Gorasiya, a student of the iOS Lead Essentials program who managed to move to a new job in Germany with a 3x salary hike 🇮🇳✈️🇩🇪: https://youtu.be/mPuSpI7jQ5E
• Damian Modernell, a student of the iOS Lead Essentials program who managed to move from a regular office job to working remotely from a Caribbean Island 🏝: https://youtu.be/QoaIAT3W53g
• Florian Tousch, a student of the iOS Lead Essentials program who got a 4x pay raise developing iOS apps and traveling at the same time ✈️🧑💻: https://youtu.be/P6yYPZlSJzU
🔥3👍1
Want to learn a technique senior iOS devs use to increase team productivity and speed up development in legacy codebases? 👇
So watch this FREE mentoring session now to learn how and when to start modularizing an existing legacy monolith iOS codebase the right way:
https://www.essentialdeveloper.com/articles/how-senior-ios-devs-modularize-legacy-monolith-codebases-live-dev-mentoring
But hurry up because this video is publicly available only until October 17th, 2022. After that, it'll only be available to students of the iOS Lead Essentials program.
So watch this FREE mentoring session now to learn how and when to start modularizing an existing legacy monolith iOS codebase the right way:
https://www.essentialdeveloper.com/articles/how-senior-ios-devs-modularize-legacy-monolith-codebases-live-dev-mentoring
But hurry up because this video is publicly available only until October 17th, 2022. After that, it'll only be available to students of the iOS Lead Essentials program.
👍5❤🔥2🔥1
Have you ever seen nested Swift closures shaped like an arrowhead (aka Pyramid of Doom)? 😱
Code shaped as an arrowhead is an anti-pattern caused by many nested structures such as nested conditions, switch statements, and even closures.
So watch this mentoring session now to learn how to eliminate nested closures (with & without Swift's async/await) to make code easier to read and maintain.
https://www.essentialdeveloper.com/articles/how-senior-ios-devs-eliminate-nested-closures-arrow-anti-pattern-in-swift-live-dev-mentoring
Code shaped as an arrowhead is an anti-pattern caused by many nested structures such as nested conditions, switch statements, and even closures.
So watch this mentoring session now to learn how to eliminate nested closures (with & without Swift's async/await) to make code easier to read and maintain.
https://www.essentialdeveloper.com/articles/how-senior-ios-devs-eliminate-nested-closures-arrow-anti-pattern-in-swift-live-dev-mentoring
🔥16
We just released a new podcast episode 🎙
Our guest today is Thiago Penna, a student of the iOS Lead Essentials program who managed to move to Germany as an iOS Team Leader in a job he really likes and with a significant salary increase!
Watch it now to learn how he did it 👇
https://www.essentialdeveloper.com/articles/brazilian-ios-dev-becomes-a-confident-team-leader-in-germany-ios-lead-essentials-podcast-044
Our guest today is Thiago Penna, a student of the iOS Lead Essentials program who managed to move to Germany as an iOS Team Leader in a job he really likes and with a significant salary increase!
Watch it now to learn how he did it 👇
https://www.essentialdeveloper.com/articles/brazilian-ios-dev-becomes-a-confident-team-leader-in-germany-ios-lead-essentials-podcast-044
❤4🔥2👍1
Do you want to know how senior iOS devs analyze legacy code before implementing new features? 🧑💻
To become a complete senior developer, you must know how to deal with legacy codebases effectively.
So watch this mentoring session now to learn how to analyze and improve legacy code.
https://www.essentialdeveloper.com/articles/architecting-legacy-ios-apps-for-remote-local-storage-like-realm-coredata-live-dev-mentoring
To become a complete senior developer, you must know how to deal with legacy codebases effectively.
So watch this mentoring session now to learn how to analyze and improve legacy code.
https://www.essentialdeveloper.com/articles/architecting-legacy-ios-apps-for-remote-local-storage-like-realm-coredata-live-dev-mentoring
👍13🔥2
We just released a new podcast episode 🎙
Our guest today is Danil Lakhtin, a student of the iOS Lead Essentials program who managed to move to a new job in Portugal with a 2x pay raise + paid relocation!
Watch it now to learn how he did it 👇
https://www.essentialdeveloper.com/articles/how-this-ios-dev-got-a-2x-pay-raise-paid-relocation-to-europe-ios-lead-essentials-podcast-045
Our guest today is Danil Lakhtin, a student of the iOS Lead Essentials program who managed to move to a new job in Portugal with a 2x pay raise + paid relocation!
Watch it now to learn how he did it 👇
https://www.essentialdeveloper.com/articles/how-this-ios-dev-got-a-2x-pay-raise-paid-relocation-to-europe-ios-lead-essentials-podcast-045
👍8🔥5❤4
Hi everyone! We just released a new podcast episode 🎙
Our guest today is Riccardo Rossi, a student of the iOS Lead Essentials program who went from feeling stuck to becoming a confident Team Lead with a 2x pay raise!
Watch it now to learn how he did it 👇
https://www.essentialdeveloper.com/articles/italian-ios-dev-promoted-to-team-lead-2x-pay-raise-ios-lead-essentials-podcast-046
Our guest today is Riccardo Rossi, a student of the iOS Lead Essentials program who went from feeling stuck to becoming a confident Team Lead with a 2x pay raise!
Watch it now to learn how he did it 👇
https://www.essentialdeveloper.com/articles/italian-ios-dev-promoted-to-team-lead-2x-pay-raise-ios-lead-essentials-podcast-046
🔥5