The Model-View-Controller Pattern (MVC) is exceptionally basic in iOS improvement. The thought is, that there are fundamentally three layers:
- The model layer is the information and business rationale layer. This layer shouldn’t converse with the perspective layer straightforwardly.
- The perspective layer comprises of the items that fabricate the UI. Great case for this are UIButton, UITableView and UILabel. The perspective layer is not permitted to address the model layer and it ought not have any business rationale.
- The controller layer remains in the middle of the model and view layer. Since the model and view layer are not permitted to address each other, it is the occupation of the controller layer to give the model and view a chance to layer cooperate.
In any case, as a general rule the controller layer significantly more than it ought to do. All the time a considerable measure of business rationale and stuff that the perspective ought to do can be found in perspective controllers. Subsequently, see controllers have a tendency to end up exceptionally enormous. This is an awful programming outline. So it’s vital to tolerate this at the top of the priority list.
UI operations other than the fundamental string
On the off chance that you are experiencing extremely peculiar bugs that are hard to replicate, it is likely that there is a multithreading issue in your application. Truth be told, UIKit is not string safe. Most designers think about this, yet despite everything it happens regularly that UI stuff is done offside the principle string since it’s anything but difficult to neglect to hop back to the primary string. So be cautious, in the event that you are executing simultaneous code.
Testing just on the test system
The iOS test system is quick and very usable. By utilizing the iOS test system you can accelerate your advancement and it’s much simpler to get to the record arrangement of your application. In any case, the iOS test system is not a genuine gadget so that there are circumstances where gadget and test system act in an unexpected way. What’s more, the iOS test system has a great deal more execution than a genuine gadget, so that the test system is not the ideal decision to test the execution of your application.
Testing just on the most up to date gadget
So it’s a smart thought to utilize the test system as well as a genuine gadget. In any case, that is not all. It’s additionally not a smart thought to test just on the most up to date and snappiest gadget. Envision you are building up an iPad application and you are trying just on the iPad Pro. In any case, you need to consider that iOS 9 still backings the iPad 2 and that the execution of the iPad Pro is greatly improved than the execution of the iPad 2. So it could happen that your application carries on great on the iPad Pro yet terrible on the iPad 2. Obviously you don’t have constantly all gadgets, yet you ought to hold up under that at the top of the priority list. What’s more, on the off chance that you have a few gadgets, you shouldn’t utilize only the most up to date one.
Not thinking about memory utilization
It’s actual that the compiler and iOS does the vast majority of the memory taking care of for you. Nonetheless, this doesn’t imply that you shouldn’t think at all about memory utilization. It’s still conceivable to have memory spills. This could happen because of alleged hold cycles. Particularly on the off chance that you are utilizing delegates this could happen rapidly. So you ought to pay consideration on this issue. Furthermore, you ought to likewise consider the memory use of your application. You can do this either in instruments or in the “investigate pilot” tab in Xcode:
Power Unwrapping Optionals
One of the primary reasons for Swift is to make extremely safe code. One fundamental part to accomplish this are optionals: Non-discretionary qualities need to have a worth and must not get to be nil. So in the event that you need a quality to have the likelihood to end up nil, you need to announce the worth as a discretionary:
Not staying up and coming
iOS advancement is changing rapidly. Consistently the stage has new innovations and that is obviously reflected in the improvement instruments too. So there is no point where an iOS engineer knows enough. Rather, he needs to learn all the time keeping in mind the end goal to stay a la mode. There are a few approaches to do as such: For instance, you could read online journals, listen to podcasts or watch video courses. Books are still a decent approach to learn things and there are a great deal of good iOS advancement books out there. Here only a little rundown to give you an impression:
iOS Programming: The Big Nerd Ranch Guide: Very great prologue to iOS advancement. Some programming background is required. In the event that you don’t have any programming knowledge by any means, you ought to begin with the accompanying book:
- Quick Programming: The Big Nerd Ranch Guide: Excellent book for amateurs.
- Center Data: An exceptionally reasonable manual for Core Data.
- Delicate Skills by John Sonmez. This book is not about iOS improvement. Be that as it may, on the off chance that you need to enhance your vocation, you ought to peruse it.
Wrong UITableViewCell reuse
To wrap things up I wanna notice the UITableView cell reusing trap. UITableView is an essential segment that is utilized as a part of verging on each iOS application. It additionally has great execution. It accomplishes this by reusing cells, that implies that cells are reused when the client is looking over. Along these lines new cells don’t need to be made, which would have a greater execution cost. In any case, if not all properties are reseted accurately, unusual things can happen.