IOS how advanced is a senior engineer?

Want to focus on me, please poke right:
my debut:

Q: I have been engaged in iOS for two years, I feel that I will only build view, with third party libraries, but also some mechanical code? Really confused. Would like to advance, specifically from what point?
A: to tell the truth, only two years to build view, the use of third party libraries, really can not be called a qualified iOS development engineer!

1 first say OC part

  • Now that you have been doing this for two years, do you know enough about Objective-C? OC is based on C to carry out the package? What do you mean by explaining these two lines of code?
Typedef __attribute__ ((NSObject)) CGGradientRef GradientObject; @property (nonatomic, strong) GradientObject storedGradient;
  • Protocol category, such a thing should be easy is it? Multi threaded part of the knowledge is solid? Runtime has this black magic been studied? Is the code elegant and easy to follow? A variety of design patterns will be?

2 say UI part

  • Since the two years of writing view, then the market can quickly imitate these mainstream App UI? The use of Reveal analysis of WeChat, watercress, NetEase news, know peace, QQ, Suning, Taobao, Alipay UI? Use Charles to grab their interface?
  • UI research a little deeper, such as how to achieve the sideslip menu? If you’re going to do this, you need to understand the relationship between UIView and UIViewController, UIViewController and UINavigationController, right? I le a grass, a bunch of UIView method, UIViewController pile method, in the end is what ah? Aren’t you curious? This knowledge has been your blind spots, you can endure? I can’t stand it!
  • UIView went deep, there are CALayer below, you have not studied? Why do some property modifications to CALayer have an animation by default?
    so Animation, UIKit Dynamics, Drawing, Graphics these casually pick up a, enough to study for a while, right? You look at the news, such as NetEase, in the news details on the page pull back to the list of pages of the animation to do it? You look at the QQ in the telephone communication page, click the lower right corner zoom icon, zoom into a head of the animation, you will do?

3 and these big function points

  • Since the use of the third – party libraries, such as the image cache, such as the source code has not seen? If you come true, what are the Caching Algorithms? How to choose? A variety of commonly used third party library you have studied the principle?
  • How safe is your App communicating with the server? Do you want to study encryption and decryption? HTTP understand clearly enough? Want to write their own interface? Or even some of them to write a simple HTTP server? The interface can be implemented with CGI!
  • To write a server, it is necessary to understand the network part, right? Familiar with the TCP/IP agreement? Then Wireshark will capture?
  • After the adoption of this network, instant chat class App what technology? Choose XMPP or mqtt or write? Just take advantage of it!
  • IOS SDK inside a variety of API you grasp to what extent? These function modules exclude maps, contacts, such as high-level, such as CloudKit, Extensions, TextKit, AirDrop, PassKit? Do you think these modules are not used in the company’s projects? But look at your App!

4 other professional direction

  • Audio and video processing done? Such as watercress FM, shrimp music, Himalaya, QPlayer such App you have to study them? And like the VoIP, I practice when done this. (like _ person) with
  • Is there any interest in game development? Have you ever studied it? (this is really not, anyway, I (like _ person) with)

5 project safety optimization

  • Write unit tests in the project? UI Automation automated testing how to do? Continuous integration platform such as Jenkins will be used?
  • App a variety of performance optimization, Crash statistical analysis, and so you do not?
  • App is it safe to store local data? How much do you know about reverse? Does the sensitive part code obfuscation?

6 knowledge system to be updated

  • Official documents, foreign related books using the language are Swift, you are not ready to learn? In addition to native, and now the HTML5 is also very fire ah, are not ready to learn?
  • How are you doing in English? All the official developer documentation and the WWDC video over the years? So many books, so many big cattle blog, you have nothing?

Add a very important advanced knowledge plate: APP architecture design

  • MVC you’re familiar with it, MVVM. You’re not going to get to know?

Author: Jia Yi
source: know almost
copyright belongs to the author. Commercial reprint please contact the author to obtain authorization, non-commercial reprint please indicate the source.