What Every Beginner iOS Developer Should know!
Roadmap to becoming an iOS developer
Introduction:
To become a iOS Developer we need clear concept with some topics first .Today I m listing down those topics and small description about those .Hope it will help you to make your journey easy.
Xcode :
First we need to a IDE for develop Apps .Apple build this great IDE For MacOS ,iOS and all others Apple flat-from development.So Before We Start development we need to know how to use this IDE .Here is a useful article about Xcode :
Language — Swift or Objective C :
Apple have Language for develop iOS Apps Objective C and Swift . I personally prefer Swift but you have atlist basic of objective C .
Swift :
Some topics we need to have clear concept . These are
- Closure
- Protocol
- Generic
- Class and struct
- extension
- property observer
Here is Apple official document for Using Swift Language :
UIDesign :
First thing to build an App you have to design app User interface either storyboard ,Xib or Programmatically . So For this we need to know implement of Xcode provided Component or custom component and their functionality .We need to fix these component position by Auto layout on story board or add constraint by programmatically. There this three way to add component on apps screen for design user interface . By
- Storyboard
- Xib file
- Programmatically
We Can give their responsive position by
- Auto Layout
- Add Constraint
UIComponent :
Apple Provided some very important component for developer which need in every apps like Button,Label,Text field etc . Here i am listing down these component which we need in every app.
- Button
- label
- Text filed and text view
- slider
- tableView
- collectionView
- View
Application Life cycle :
iOS App have life cycle .iOS app have 5 state there are : Not running , inactive , active,background and suspended. How and when app go through these five state are called app life cycle . Every iOS Project have a file called app delegate this file manage all these five state :
You can find more information about this important issue on this blog :
View Controller life cycle :
iOS app foundation an structure is view controller .Every app have atlist one view controller but most of apps have more than one view controller .view controller manage all event and user interface . so We have to clear concept on view controller life cycle how data pass one view to another view and when view will appear and when disappear when initialized.
Here is an article i wrote before about iOS View Life cycle :
Architecture Patterns :
Its very important to know about architectural design pattern before professionally start iOS Developer career. Design pattern help us to code testable,manageable ,Reusable and optimize Apps. Here is some architectural design Pattern are most popular and good like :
- MVC
- MVP
- MVVM
- VIPER
Here is a great article about Design pattern :
Network (Data transfer through Network):
Now a day almost 95% of apps connected to internet . App need to pass data over internet (back-end saver )) or download data from internet .So We You need to know how to to connect with internet and call back-end server than download raw data from internet .There is many third party library from connect to internet and also apple have native API For this .Personally i like native thing So you can use apple own API NSURLSession which in included i UiKit.Here is listing of third party API :
- AFNetworking
- Alamofire
Data Parsing :
Transferred data from network are row format. Those data are JSON format or xml format its based of bakedend sarver .Restful backend service provide JSON formatted data and Soap web service provide XML formatted data. So We Need to parse coming data to usable data and when we send data to backend we need to convert data ta to JSON ,XMl formate. For this conversation Apple have own API NSSterilization and Codable protocol.Personally I prefer codable . There is also many good third parity open source API .
- Codable
- NSSerialization
- Argo
- SwiftyJSON
- SWXMLHash
- SwiftyXML
Database:
For the saving data locally we need to know about database . iOS have some native solution for this and this are :
- SQLite databse with C API or Swift swlite wrapper
- Use Core data
SQlite come to iOS Direcly we dont need to import or insall if we use code data than also we are using SQlite . If we want to use SQlite by Swift API We can use this useful open source API
Here is artcle how to use SQlite directly and Core data :
Data passing Between View controller to View Controller
Its very neccecary to pass data from one view controller to another view controller .There is several way to pass data view controller to another view controller
- Using instance property
- Using segues
- Using instance properties and functions
- Using Delegation pattern
- BUsing closure or completion handler
- Using
NotificationCenter
and the Observer pattern
Here is a very useful artcle about passing data :
Source Control :
When you are going to work with a team you need to work with source control .Source control or version control is the practice of tracking and managing changes to code
If you very beginner than you can just read this article about version control(source control):
Here is a list of Source Control management system :
GIT
CVS
SVN
Dependency Manager :
What is dependency i can explain like this way : Dependency manager two word depencany when we use any third party API and integrate to large app than we need a software manager who will intimidate this API its called dependency manger. There many dependency manger out there :
- CocoaPods
2.Carthage
3.Swift Package Manager
Here is a article about dependency manager
Conclusion
Thank you for staying with me .If this article help you than don’t forget to clap ,share and fallow me .It will give me inspiration.