iOS Roadmap to Professional Developer: Skills you MUST have!

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hey what is up guys welcome back to another exciting episode on the channel I really hope you guys are doing well out there in today's video we are going to try to spend a little bit of time here to discuss something called an iOS roadmap which is what you're seeing on the top left of your screen right over there and the basic idea in today's video is to go over a lot of these topics over here and try to discuss which ones are very very important for you to actually understand if you want to call yourself a very competent iOS developer so the first thing I would like to do here is actually show you what is inside of this iOS roadmap diagram and so let me just scroll all the way down to the bottom here you can see that we have a lot of different various topics and the last thing that any iOS developer really needs to know how to do is to launch an application into the iOS App Store right so after we go over all these topics I want to be able to answer the question of whether or not you can actually get yourself an iOS job if you learn all of these different skills within a time frame of let's say 2 to 3 years so we're going to answer that question at the very end of today's video and the first thing I would like to do here is to actually go over the various topics inside of this iOS a roadmap diagram now if you're interested in downloading this diagram you can check it out using a link in the description below and this diagram I actually did not create it and this was posted instead of our Facebook group which you can also check out below and so let's gonna start here by going over some of these various basic topics and also the common topics over here topics that are actually instead of the yellow here are things that are kind of the recommendations by this author the ones that are in the gray are the possibilities to learn and for the orange ones such as core data or realm and viper these are the extra topics that you should study but aren't exactly required to becoming an iOS developer ok so the first question here is what exactly is inside of the basics well some of these things are topics that you actually need to know as that iOS developer obviously and you're going to have to learn how to use the Xcode IDE without question I don't think you should actually know what the playground tool does if you don't want to learn it this is pretty much it used to just practice your Swift programming skills very useful to know but not exactly what I would call crucial ok so moving on to the left side of the diagram tree we have objective-c and the Swift programming language right in 2018 you should probably be studying these Swift language I know a lot of big companies such as Facebook they are still using Objective C so if you want to work at larger corporations you probably want to know both objective-c and also the Swift programming language right and you probably don't need to learn Objective C plus plus even I I've never used this programming language at all so moving on here and down inside of the common topics let's kind of go over some of these topics and I'm going to start off with mobile human interface guidelines which is more commonly referred to as the hig and the reason why this is important is because when you're making iOS applications such as our Instagram firebase app over here you need to know how to put together UI that makes your user actually want to interact with your application right so some of the things like the sizing and the buttons and actually the scroll ability of your application that all comes from the hig alright so moving down on one level we have iOS technologies and obviously you need to know how to architect your iOS applications and you need to know how to manage all of your classes all your view controllers and how to put them together so that you can create your application application life cycle so whatever your application enters the foreground or enters the background you actually need to know when to handle that instead of your app delegate file the other life cycles are when your view controller is actually load when they appear and what they actually disappeared so you know viewdidload view will disappear those are all some methods that you have to understand for view and a view controller programming I don't know exactly what they are referring to here but they want you to learn how to use auto layout which is super super important to making your application actually work on multiple devices multi-touch event handling I guess they're referring to gestures which you're going to become a competent developer you need to know how to use things such as UI tap gesture UI pan gestures swipe gesture and all those different types of event handlers now moving down we want to actually learn about cocoa design patterns and this is a question that I will actually like to present to you instead which one of these topics do you think are actually important to learn right well obviously MVC is super important because Apple has decided to kind of throw you into MVC the moment you create a new single view application so you need to know what models are what views are and actually what your controllers what the purpose they actually serve inside of your app now Singleton's are actually very important as well because instead of iOS development and UI kit programming you actually access a lot of different types of Singleton's such as UI application and Notification centers and things like that and then next we have the delegation pattern right and whenever you're creating multiple components inside of iOS you actually need to sometimes have them interact with each other and one great way of doing that is to use the delegation pattern so for example instead of our Instagram firebase app in order to communicate this comment button which is inside of one of these rows we want to be able to know when that button is tapped right so click into that we use the delegation pattern to figure out when that event occurs and so that's a super super important for Iowa development I don't know exactly what a responder chain is it sounds important so make sure you look that up for the observer pattern I think they're referring to things such as observing for when values change inside of your iOS app and also things such as NS Notification centers so that you can post notifications and observe when those events occur now moving on here we have network programming and so this is also super super crucial because when you're developing applications such as this over here IDE you actually need to pull data from external services whether it be firebase or some kind of restful api you actually need to know how to consume that data and how to present it such that your application doesn't hang and doesn't freeze right so make sure you are aware of used something called JSON decodable so you actually figure out how to consume your data okay so obviously the basics and the common topics are things that are super important that you have to understand before you can call yourself a competent iOS developer and now it's kind of time to get into the more interesting parts of this iOS roadmap and we're going to dive a little bit deeper into things such as Swift and objective-c and also some system frameworks okay so I'm going to probably ignore the objective-c side for now because in 2018 we mostly are kind of focused on Swiss programming I guess so the first thing we want to look at are the additional topics here and I personally don't think that protocol oriented programming is all that important to know as a junior developer it's a very very great topic to understand and you'll learn more about this as you dive deeper and deeper into your organization's code base so don't worry too much about this but definitely do your research if you have the time - now the more important things to focus on is actually concurrent programming and this deals with something I mentioned a little bit or right when you have your iOS application kind of pulling data and reading data and presenting data all that stuff should happen concurrently and what that means is when you are fetching data from the network you don't want your application to hang so you want to make sure that you can use multiple threads to get your application running perfectly and one really good way to access multiple threads is to use the GCD in library and tools and that's kind of what dispatch q is referring to now a lot of these and advanced design patterns down here they're called advanced and they're in this orange color and I actually don't think they're super important to know if you're just a junior developer so things like Viper and bbm rx Swift unreactive Coco definitely nice to actually understand but not super crucial and what I actually find in a lot of software organizations is that they use a combination of all this stuff here to make their application and perform and make them very very maintainable as well so let's kind of move on to the next topic over here again we're going to skip objective-c over here these topics are actually very important like memory management concurrent GCD and blocks so make sure to study this as well when you have the time to do so now slip standard and Swift foundation I think this is just referring to these standards Swift programming language so things such as declaring variables and how to execute for loops and write functions you obviously need to know how to do that before you can give your iOS job right for a core foundation cocoa touch I don't know exactly what that I was referring to but I guess this is just basic UI kit now that's gonna move on to data persistence over here and one thing that I would like to focus on is something called core data and so the reason why I think core data is actually really important is because even though we don't use core data in all of our iOS applications it's actually super super nice to have our developer understand how to set up a database correctly and so core data allows you to kind of create your application based on the data structures that you need inside of your app and so for a developer to understand how to break down that logic I think kind of shows a certain aptitude for creating an application and making it as maintainable as possible now sequel Lite is actually what is most commonly used to power core data so you don't have to know what sequel Lite does but if you know how to write queries that's very very beneficial for you on the right side over here we have things such as a realm serialized key target Eyre archiver cloud keychain JSON pilas none of this stuff is all that important except for JSON I guess for the cloud database architectures I recommend learning both iCloud and firebase so if you want to learn firebase and how to keep data on a external service make sure to check out the Instagram firebase course link in the description below all right so let's kind of get into the even more interesting aspects of iOS development and let's start off with the left side of the tree first and then we'll dive into all this stuff on the right side over there and so for the project and workspace every application I guess you'll get more comfortable with how your application is actually built out using your various tools such as the build config the scheme of your actual application and then how to create multiple targets so that you can build your application faster a couple of things that you have to learn as such as the dependency libraries of iOS are the Swift package manager cocoa pause and also Carthage now I personally use cocoa pods a lot I don't think I've ever used these with package manager for anything serious but these are three things that are used more and more in the iOS community so definitely alert at least these top two and now let's kind of dive into this huge mess over here and so what's the importance of learning instruments testing and debugging all right well starting off with instruments whenever you have an application that's a very very complex sophisticated and contains a lot of different features right some things that you are not going to be able to monitor manually are things such as memory leaks and how much energy how much network and how your layout is performing in cyber application so one easy way to monitor that stuff is actually use instruments which will kind of tell you automatically what is doing what so make sure to spend some time to at least learn the allocations tool the leaks still is super important and also the time profiler and I think networking is also very very important and a beneficial to learn one thing that is super nice to have as a junior developer is something called testing not all junior developers are going to have this under their belt but it's super impressive if they do XC testing is just Xcode testing this is one of the libraries that you'll use to write out unit tests inside of your application to make sure that you don't you know break your app into anyway TDD stands for test-driven development and then we have something called mocks so what is TDD well this is something that's kind of a philosophy of programming and the idea is to write out all of your tests before you write out any of your application code not everyone uses this as their common practice inside of their application development process but it's important to understand at least what the point of this is and so mocks right over here I think this topic is pretty advanced and use this to make sure that you can actually write some of your tests instead of your Xcode application not super important to know as a junior developer and these two topics I feel like you'll get more and more comfortable with as you become more and more at as a programmer UI tests and code covers nice to have but not super important for now and so let's now move on to the debugging topic of this iOS roadmap and I feel like a lot of junior developers don't utilize the debugger enough so whatever I'm building out my applications right whatever I experience some kind of bug or some kind of unexpected behavior of my app I always go into the debugger to figure out what my variable values are and how my actual code is performing so these are very very important concepts to know make sure you actually have practice in setting up breakpoints and using the lldp to figure out what's going on inside of your app now we are kind of nearing the end of this iOS roadmap over here and let's kind of talk about build and deployment briefly here and so whenever you're talking about building out your application and deploying it it's nice to have something called continuous integration to actually execute your tests automatically and so for example if you have you know a code base with a million lines of code and you introduce two lines right well you want to know if those two lines after you broke your application and so continuous integration allows your unit tests or run automatically every time you submit a change to your code base and one way that it actually does that is to use some of these tools such as Jenkins Travis fast lane and Xcode server so and my last couple of companies we use Jenkins which is an open-source a CI tool fastly I believe was recently acquired by Google X code server it says something that you can install on a Mac machine that will execute all of your unit tests for you now the important thing about this section is actually the analytic tools that you install for your iOS apps so the reason why this is important is because when you're launching and deploying your application into production right it's very hard to monitor if your app is performing it the way you expected to and so one way to actually monitor and track events is to install something called GA which stands for in Google Analytics and this allows you to kind of tell how many users are currently on your application which version is being upgraded to and then we have fabric over here which tells you how are you is actually crashing so this is something that's always very interesting because when application is in production it actually crashes for some very unknown reasons sometimes and getting your crash reports is super super nice to have through the fabric tool and so test flight over here allows you to deploy your application without going through the entire review process of the App Store so make sure you are familiar with how that works I'm not exactly sure what user habit is so make sure to do your own google research on that now the final thing that we have inside of this iOS roadmap is to actually know how the review guidelines work and how to actually publish your application using iTunes Connect I don't know exactly what the lucky reviewer is but I know whenever you submit your applications sometimes you can actually get through that entire process really really quickly and the more experience you have going through the review process I think the better you are going to become in terms of you know making sure applications are delivered quickly and all right so that's kind of the end of the iOS roadmap and the question still remains after learning all this stuff do you think it's possible to actually earn yourself an iOS job in the Silicon Valley well I think if you spend enough time let's say two to three years learning all of these topics in iOS development you have a pretty good chance of actually impressing an employer and make sure you can show them a couple of different portfolio projects that incorporates a lot of these different concepts and you should be able to land yourself an iOS job okay so that's going to be it for today's video hopefully you found it helpful make sure to give it a thumbs up and also consider subscribing to the channel that's gonna be it for me today keep on coding guys and I'll see you in the very next video bye bye
Info
Channel: Lets Build That App
Views: 114,263
Rating: undefined out of 5
Keywords: ios, swift, development, tutorial, learn, xcode, programming, code
Id: pbhLZMVBlp0
Channel Id: undefined
Length: 19min 42sec (1182 seconds)
Published: Mon Aug 13 2018
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.