How to crack the senior iOS dev interview and negotiate salary | Live Dev Mentoring

  Рет қаралды 13,197

Essential Developer

Essential Developer

Жыл бұрын

Learn how to become a senior iOS developer, crack the senior interview, and negotiate salary.
Get the Xcode project at github.com/mahi1995/top-stori...
Join the iOS Lead Essentials program iosleadessentials.com
Like and share this content with someone that you believe will benefit from it. See you in the next episode.
---
Update/Correction
At ~47min we replaced `@main` with `@UIApplicationMain`, but that wasn't needed. We only had to remove the UISceneSession life-cycle methods from the AppDelegate to make it work.
Background:
On iOS 12 and before, we managed app life-cycle events through the UIApplicationDelegate. On iOS 13, Apple introduced the new UISceneDelegate APIs to respond to life-cycle events occurring within a scene.
New Xcode projects already come configured with an AppDelegate and a SceneDelegate. However, a requirement of this interview challenge was for the app to support iOS 12 and above (and iOS 12 doesn't support UISceneDelegate).
On iOS 12 and before, we had only the UIApplicationDelegate. So the project had duplication in the AppDelegate and SceneDelegate to be able to support both iOS 12 and 13+.
Since this app doesn't require managing scenes, our goal was to remove the UISceneDelegate and use only the UIApplicationDelegate, which works with iOS 12 and iOS 13+. This way, the code works with all iOS versions without duplication or doing more work than needed.
To remove the UISceneDelegate setup, we need to (1) remove the `Application Scene Manifest` entry from the `Info.plist` and (2) remove the UISceneSession life-cycle methods from the AppDelegate. And that's it!
---
How to Build iOS Apps with Swift, TDD & Clean Architecture series↴
www.essentialdeveloper.com/pr...
Caio & Mike's Book Suggestions ↴
www.essentialdeveloper.com/bo...
---
Subscribe to our channel ↴
kzfaq.info...
You can also find us on ↴
Twitter ☛ / essentialdevcom
Facebook ☛ / essentialdeveloper
Instagram ☛ / essentialdeveloper
LinkedIn ☛ / essentialdeveloper
Caio ↴
Twitter ☛ / caiozullo
LinkedIn ☛ / caiozullo
Mike ↴
Twitter ☛ / mrmichael
LinkedIn ☛ / mapostolakis
Join the iOS Lead Essentials program ↴
iosleadessentials.com
Visit our website ↴
essentialdeveloper.com

Пікірлер: 16
@EssentialDeveloper
@EssentialDeveloper Жыл бұрын
Join our free crash course to learn how to Master Scalable iOS App Architecture Patterns and Be One of The Most Wanted Senior Developers in The World: iosacademy.essentialdeveloper.com/p/ios-architect-crash-course-orga0eb/?
@krishnakirana8399
@krishnakirana8399 Жыл бұрын
Which tool is used to keep track of notes here?
@EssentialDeveloper
@EssentialDeveloper Жыл бұрын
Hello! That's the default TextEdit Mac app.
@GioDoganiero
@GioDoganiero Жыл бұрын
I'm going to start applying to jobs very soon. I was wondering if it's totally fine to use dependencies made by me? I don't want to write the same code for each test project I get assigned
@studeapps9676
@studeapps9676 Жыл бұрын
Just imagine if it wasn't fine to use your own code. Whether dependencies or not, it's your code! Do make your outlets private, though!
@Carlos.Damiao
@Carlos.Damiao Жыл бұрын
That @UIApplicationMain input from Bogdan was insane ahah
@EssentialDeveloper
@EssentialDeveloper Жыл бұрын
Hi Carlos! Replacing `@main` with `@UIApplicationMain` was actually not needed. Check the video description for more details ✅
@VirenderDall
@VirenderDall Жыл бұрын
Hi Guys, I don't think @UIApplicationMain is required. You might missed to delete the Application Scene Manifest in the target info tab. I never used @UIApplicationMain and it worked for me, Please share your thought.
@EssentialDeveloper
@EssentialDeveloper Жыл бұрын
Hello! We updated the Info.plist ~44min, so it seemed to be required because of the project setup. Our goal was to remove the SceneDelegate and *not* load a Main storyboard on startup ✅
@VirenderDall
@VirenderDall Жыл бұрын
​@@EssentialDeveloper ok I tried to follow your steps except to replace @main with @UIApplicationMain, still it's working in XCode 13.4.1. Is there any change Apple have made in XCode version for it? Also how @Main is different from @UIApplicationMain, like for me both are same and work like entry point for the app. However it's possible for multiplatform app UIApplicationMain & NSApplicationMain take care under the Main. Love to understand why @Main didn't work in your case, great if you can share the code version which you were using the time of recoding the session.
@EssentialDeveloper
@EssentialDeveloper Жыл бұрын
Hi! Here's the project where you can try it out: github.com/mahi1995/top-stories-app
@VirenderDall
@VirenderDall Жыл бұрын
@@EssentialDeveloper This also working for me as well.
@EssentialDeveloper
@EssentialDeveloper Жыл бұрын
Found it! If we remove the SceneDelegate class and entry in the Info.plist, BUT the AppDelegate implements the UISceneSession lifecycle methods, it doesn't work. Removing the UISceneSession lifecycle methods from the AppDelegate made it work (that's what we did at the same time we replaced @main) ✅
I'm Excited To see If Kelly Can Meet This Challenge!
00:16
Mini Katana
Рет қаралды 29 МЛН
Задержи дыхание дольше всех!
00:42
Аришнев
Рет қаралды 3,8 МЛН
Clown takes blame for missing candy 🍬🤣 #shorts
00:49
Yoeslan
Рет қаралды 49 МЛН
Опасность фирменной зарядки Apple
00:57
SuperCrastan
Рет қаралды 12 МЛН
Why Agent Frameworks Will Fail (and what to use instead)
19:21
Dave Ebbelaar
Рет қаралды 34 М.
Multithreading and Concurrency in iOS apps | iOS Dev Live Mentoring
35:40
Essential Developer
Рет қаралды 8 М.
Design Uber Eats - iOS System Design Interview
14:00
Andrey Tech
Рет қаралды 18 М.
I'm Excited To see If Kelly Can Meet This Challenge!
00:16
Mini Katana
Рет қаралды 29 МЛН