IOS рдкреНрд░рджрд░реНрд╢рди - рдХреЛрд░ рдПрдиреАрдореЗрд╢рди, рдСрдлрд╕реНрдХреНрд░реАрди рд░реЗрдВрдбрд░рд┐рдВрдЧ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдЯреНрд░реЗрд╕ред рднрд╛рдЧ реи



рдХреЛрд░ рдПрдирд┐рдореЗрд╢рди рдкреНрд░реАрд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдХреИрд╕реЗ рдмрдЪреЗрдВ, рдХреЛрдб рдЕрдВрд╢реЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ 26% рд╕реЗ 0.6% рдореЗрдВ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рд╕рдВрдЪрд╛рд▓рди рдХреА рд╣рд┐рд╕реНрд╕реЗрджрд╛рд░реА рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд╛рд░реНрдп рдХрд░реЗрдВ - рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рдХреЗ MBLT DEV рд╕рдореНрдореЗрд▓рди рдореЗрдВ рд▓реНрдпреВрдХ рдкрд╛рд░реНрдЦрдо рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд▓реЗрдЦ рдХрд╛ рджреВрд╕рд░рд╛ рднрд╛рдЧ рдкрдврд╝реЗрдВ ред рд▓реЗрдЦ рдХрд╛ рдкрд╣рд▓рд╛ рднрд╛рдЧ рдпрд╣рд╛рдБ рдЙрдкрд▓рдмреНрдз рд╣реИ ред


рдмрд┐рд▓реНрд▓реА рдХреЗ рддрд╣рдд, рди рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрд╕, рдмрд▓реНрдХрд┐ рдПрдордмреАрдПрд▓рдЯреА рдбреАрдИрд╡реА 2018 рдХреЗ рд▓рд┐рдП рдирд╡реАрдирддрдо рд╢реБрд░реБрдЖрддреА рдкрдХреНрд╖реА рдЯрд┐рдХрдЯ - рдЖрдк рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдЖрдЬ рд╣реА рдЦрд░реАрдж рд╕рдХрддреЗ рд╣реИрдВред


рдХреЛрд░ рдПрдиреАрдореЗрд╢рди


рдХреЛрд░ рдПрдиреАрдореЗрд╢рди (CA) рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдореЗрдВ рдПрдХ рдкреНрд░реАрд╕реЗрдЯ рд╣реИ рдЬреЛ рдПрдлрдкреАрдПрд╕ рдорд╛рдк (рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдлреНрд░реЗрдо) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдПрдирд┐рдореЗрд╢рди рд▓реИрдЧ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдЕрдХреНрд╕рд░, рднрд▓реЗ рд╣реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рдорд╕реНрдпрд╛ рдХреНрд╖реЗрддреНрд░ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдкреНрд░рджрд░реНрд╢рди рдореБрд╢реНрдХрд┐рд▓реЗрдВ рдмрдиреА рд░рд╣рддреА рд╣реИрдВред рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдпреВрдЖрдИ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпреВрдЖрдИрд╡реАрд╡рд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреИрдЯрд░рд╢рд┐рдк рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реБрдб рдХреЗ рддрд╣рдд рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╛ рд╕рд┐рд╕реНрдЯрдо рдЦреБрдж рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИ), рдФрд░ рдпреЗ рд╕рднреА рдирд┐рд░реНрджреЗрд╢ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдХреЛ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВред рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдПрдиреАрдореЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдпрджрд┐ рдПрдХ рдПрдиреАрдореЗрд╢рди рдПрдХ UIView рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, animate(withDuration:animations:) рд╡рд░реНрдЧ рд╡рд┐рдзрд┐, рдЗрд╕реЗ рд░реЗрдВрдбрд░ рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдПрдХ рдЕрд▓рдЧ рдереНрд░реЗрдб рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕рднреА рдПрдирд┐рдореЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред


рдЖрдк рд░реЗрдВрдбрд░ рд╕рд░реНрд╡рд░ рдХреЛ рдзреАрд░реЗ-рдзреАрд░реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рдЯрд╛рдЗрдо рдкреНрд░реЙрдлрд╝рд┐рд▓рд░ рдореЗрдВ рди рджрд┐рдЦреЗ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдзреАрдорд╛ рдХрд░ рджреЗрдЧрд╛ред рдпрд╣рд╛рдБ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:







рд╕рдмрд╕реЗ рдКрдкрд░ рдлреНрд░реЗрдо рд░реЗрдЯ рд╕реЗрдВрд╕рд░ рд╣реИред рдиреАрдЪреЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ - рдбрд┐рдмрдЧрд┐рдВрдЧ рд╡рд┐рдХрд▓реНрдкред рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдХреБрдВрдЬреА рдФрд░ рдЕрднреА рддрдХ рдЖрд╕рд╛рди рд╣реИрдВред рдкрд╣рд▓реЗ color blended layers ред рдЗрд╕реЗ рдареАрдХ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, iMessage, Apple рдХреЗ рд╕рд░реНрд╡-рдкреНрд░рд┐рдп рдРрдк рдореЗрдВ рднреА рд╕рдорд╕реНрдпрд╛рдПрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВред




рд▓рд╛рд▓ рдПрдХ рд╕рдлреЗрдж рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд╕рд╛рде рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╡реЗ рдПрдХ рдЕрдиреНрдп рд╕рдлреЗрдж рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд╕рд╛рде рдУрд╡рд░рд▓реИрдк рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдкрд╛рд░рджрд░реНрд╢реА рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЗрди рд░рдВрдЧреЛрдВ рдХреЛ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛рддрд╛ рд╣реИ - рд╕рдлреЗрдж рдХреЗ рд╕рд╛рде рд╕рдлреЗрдж, рдФрд░ рдкрд░рд┐рдгрд╛рдо рдлрд┐рд░ рд╕реЗ рд╕рдлреЗрдж рд╣реИред рдирддреАрдЬрддрди, рд▓рд╛рд▓ рд░рдВрдЧ рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рд▓рд┐рдП, рдЕрддрд┐рд░рд┐рдХреНрдд рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдЬреЛ рдХреЛрдИ рд▓рд╛рдн рдирд╣реАрдВ рд▓рд╛рддреА рд╣реИ - рдПрдХ рд╕рдлреЗрдж рдкреГрд╖реНрдарднреВрдорд┐ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИред


рдирд┐рдпрдо # рей


рдЬрдм рднреА рд╕рдВрднрд╡ рд╣реЛ рдкрд░рддреЛрдВ рдХреЛ рдЕрдкрд╛рд░рджрд░реНрд╢реА рдмрдирд╛рдПрдВ - рдмрд╢рд░реНрддреЗ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рд╕рдорд╛рди рд░рдВрдЧ рд╣реИрдВ рдЬреЛ рдУрд╡рд░рд▓реИрдк рдХрд░рддреЗ рд╣реИрдВред рдкрд░рдд рдореЗрдВ opacity рдЧреБрдг рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдПрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдореЗрд╢рд╛ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛ рд░рдВрдЧ рд╕реЗрдЯ рд╣реИ рдФрд░ рдпрд╣ рдЕрдкрд╛рд░рджрд░реНрд╢реА рд╣реИред




рдСрдлрд╕реНрдХреНрд░реАрди рдкреНрд░рддрд┐рдкрд╛рджрди


рдЕрдЧрд▓рд╛ рд╡рд┐рдХрд▓реНрдк рдСрдл-рд╕реНрдХреНрд░реАрди рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрдиреБрднрд╛рдЧ рдкреАрд▓реЗ рд░рдВрдЧ рдореЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред

рдХреЛрд░ рдПрдиреАрдореЗрд╢рди рдХреА рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рдЖрдк рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдЪрд╛рд▓реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реЛ рд░рд╣рд╛ рд╣реИред рд╢реАрд░реНрд╖ рдкрд░ рдЗрдВрд╕реНрдЯрд╛рдЧреНрд░рд╛рдо рдореЗрдВ рд╕реНрдХреНрд░реАрди рдкрд░ рдЫреЛрдЯреЗ рдкреАрд▓реЗ рд╡реГрддреНрдд рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдХрд╣рд╛рдирд┐рдпрд╛рдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВред




рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, iPhone 6s рдкрд░, рд╡реЗ рдзреАрд░реЗ-рдзреАрд░реЗ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдЕрдЧрд░ рдЖрдк рдЙрдиреНрд╣реЗрдВ iPhone 5 рдпрд╛ рдкреБрд░рд╛рдиреЗ iPod рдореЙрдбрд▓ рдкрд░ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдбрд╛рдЙрдирд▓реЛрдб рднреА рдзреАрдорд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЗрдВрдЯреНрд░рд╛-рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рддрд┐рдкрд╛рджрди рдЕрд▓реНрдлрд╛ рд╕рдореНрдорд┐рд╢реНрд░рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЦрд░рд╛рдм рд╣реИред рдпрд╣ GPU рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рдирддреАрдЬрддрди, рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкреНрд░реЛрд╕реЗрд╕рд░ рдФрд░ рдХреЗрдВрджреНрд░реАрдп рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдмреАрдЪ рдЕрддрд┐рд░рд┐рдХреНрдд рдЧрдгрдирд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рджреЗрд░реА рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдмрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рдирд┐рдпрдо # 4


cornerRadius рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред рдСрдлрд╕реНрдХреНрд░реАрди рд░реЗрдВрдбрд░рд┐рдВрдЧ рдореЗрдВ viewLayer.cornerRadius рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЖрдк UIBezierPath рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде CGBitMap рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдРрд╕рд╛ рд╣реА рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ JPEG рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╣реБрдЖ рдерд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, UIGraphics context ред




рдпрд╣ UIImage рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рддрд░реАрдХрд╛ рд╣реИред рдпрд╣рд╛рдВ рдЖрдк рдЖрдХрд╛рд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЧреЛрд▓ рдХреЛрдиреЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред Bezierpath рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдЫрд╡рд┐ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рдЯреБрдХрдбрд╝рд╛ UIImageContext рд╕реЗ рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдореЗрдВ рдлрд╝реНрд░реЗрдо рдХреЛ рдЧреЛрд▓ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЧреЛрд▓ рдХреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдЫрд╡рд┐ рдорд┐рд▓рддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЫрд╡рд┐ рдбрд╛рд▓реА рдЬрд╛рдПрдЧреАред




рдЬреАрдЖрдИрдПрдл рдкрд░ - рдЯреНрд╡рд┐рдЯрд░ рдкреЗрдЬред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рдЪрд┐рддреНрд░ред рдкреГрд╖реНрда рдХреЛ рдЦреЛрд▓рдиреЗ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╛рда рдФрд░ рд╕реНрдХреНрд░реАрди рдХреЗ рдЕрдиреНрдп рддрддреНрд╡ рдСрдл-рд╕реНрдХреНрд░реАрди рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдПрдирд┐рдореЗрд╢рди рдмрд╣реБрдд рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВред


рдирд┐рдпрдо # 5


shouldRasterize рд╕реЗрдЯ рд╕реЗ shouldRasterize рдХреНрд▓рд╛рд╕ рдХреА рдкреНрд░реЙрдкрд░реНрдЯреА рдЖрдкрдХреЛ shouldRasterize рдЧрдП shouldRasterize рдХреЛ рдХреИрд╢ рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рджреЗрддреА рд╣реИред рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИред рдпрджрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП shouldRasterize рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХреИрд╢ рдЫреЛрдбрд╝ рджреЗрдЧрд╛ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдлреНрд░реЗрдо рдХреЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреА рдкреЗрд╢рдХрд╢ рдХрд░реЗрдЧрд╛ред рддреЛ рдЗрд╕рд╕реЗ рдЕрдЪреНрдЫреЗ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рд╣реЛрддреА рд╣реИрдВред


рдЧрддрд┐ рдмрдврд╝рд╛рдУ


  • рдкрд╛рд░рджрд░реНрд╢реА рдкрд░рддреЛрдВ рдХреЗ рдСрдл-рд╕реНрдХреНрд░реАрди рдкреНрд░рддрд┐рдкрд╛рджрди рдФрд░ рд╕рдореНрдорд┐рд╢реНрд░рдг рд╕реЗ рдмрдЪреЗрдВред
  • рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рддрдм рдХрд░реЗрдВ рдЬрдм рдЖрдк рдЙрдирдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдЫрд╛рдпрд╛, рдЧреЛрд▓ рдХреЛрдиреЛрдВ, рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдХрд╛рд░рдг рдСрдл-рд╕реНрдХреНрд░реАрди рдкреНрд░рддрд┐рдкрд╛рджрди рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред
  • рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЕрдкрд╛рд░рджрд░реНрд╢реА рдмрдирд╛рдУред
  • рдХреЛрдиреЗрд░реЗрдбрд┐рдпрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ, рдмреЗрдЬрд┐рдпрд░ рдХрд░реНрд╡реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
  • рдкрд╛рда рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдкрд░рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВредрд╢реЗрдбреЛ рдкреНрд░реЙрдкрд░реНрдЯреА, рдЗрд╕реЗ NSShadow рд╕реЗ рдмрджрд▓реЗрдВред


рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛


рдПрдХреНрдЯрд┐рд╡рд┐рдЯреА рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдЯрд╛рдЗрдо рдкреНрд░реЛрдЗрд▓рд░ рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЫреЛрдЯреЗ рдкреИрдорд╛рдиреЗ рдкрд░ред рдпрд╣ рдЖрдкрдХреЛ рдкреНрд░рд╡рд╛рд╣ рдФрд░ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдЙрдирдХреА рдмрд╛рддрдЪреАрдд рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдирд┐рдпрдо # 6


рд╡рд┐рд╢рд┐рд╖реНрдЯ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдордп рдЕрд╡рдзрд┐ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдЯреНрд░реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЖрдк рдШрдЯрдирд╛рдУрдВ рдпрд╛ рдХреЛрдб рдХреЗ рдЕрдиреБрднрд╛рдЧреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рд╕рд╛рде рдЖ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрд╡реЗрджрди рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдп рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдХрд┐рддрдирд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рд╕рд┐рд╕реНрдЯрдо рдЯреНрд░реЗрд╕ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:


  • "рд╕рд┐рдВрдЧ рдкреЛрд╕реНрдЯ" рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рд░рд╣рд╛ рд╣реИред
  • рдорд╛рд░реНрдХреНрд╕ рдПрдХрд▓ рдШрдЯрдирд╛рдПрдВ рд╣реИрдВ рдЬреЛ рджреЗрдЦрдиреЗ рд▓рд╛рдпрдХ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдПрдиреАрдореЗрд╢рди рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ред
  • рдШрдЯрдирд╛ рдХреЗ рдЕрдВрддрд░рд╛рд▓ рддрдХ, рдЖрдк рдЯреНрд░реИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рдХрд┐рддрдирд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред




рдЗрд╕рд▓рд┐рдП, рдкреНрд░реЛрдЧреНрд░рд╛рдо рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддрд╛ рд╣реИред


рд╕реНрдХреНрд░реАрди рдкрд░ рд╕рд┐рд╕реНрдЯрдо рдЯреНрд░реЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:


  • 1 - рдЫрд╡рд┐ рдЕрдкрд▓реЛрдб
  • 2 - рдЫрд╡рд┐ рдбрд┐рдХреЛрдбрд┐рдВрдЧ
  • 3 - рдЭреБрдХрд╛рд╡ рдПрдирд┐рдореЗрд╢рдиред

рд░рдВрдЧ рдХреНрдпрд╛ рдирд┐рдХрд▓реЗрдЧрд╛, рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреБрдЫ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдиреЗ рд╣реЛрдВрдЧреЗред рдЖрдорддреМрд░ рдкрд░, рдЙрдиреНрд╣реЗрдВ 1 рдпрд╛ 2 рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдПрдБ рджреА рдЬрд╛рддреА рд╣реИрдВ, рдФрд░ рд╡реЗ рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд▓рд╛рд▓ рдпрд╛ рд╣рд░реЗ рд░рдВрдЧ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВред рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдкрд░, рдЖрдкрдХреЛ kdebug_signpost рд▓рд┐рдП #import рдХрдорд╛рдВрдб kdebug_signpost ред рд╕реНрд╡рд┐рдлреНрдЯ рдореЗрдВ, рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрд▓рдмреНрдз рд╣реИрдВред




рдлрд┐рд░ рдЖрдкрдХреЛ kdebug_signpost рдпрд╛ kdebug_signpost_start рдФрд░ kdebug_signpost_end kdebug_signpost рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред




рд╣рдо рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде 3 рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдХреЛрдб рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдШрдЯрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдореБрдЦ рддрддреНрд╡ рд╣реИред рдЕрдВрддрд┐рдо рд╕рдВрдЦреНрдпрд╛ рд░рдВрдЧ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 2 рд▓рд╛рд▓ рд╣реИред


рдЕрдЧрд▓реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдШрдЯрдирд╛рдПрдВ, рд╡рд┐рд╢реЗрд╖ рд╡рд╕реНрддреБрдПрдВ рд╣реИрдВред рд╕реНрд╡рд┐рдлреНрдЯ рдкрд░ рд▓реНрдпреВрдХ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рд╕рд░рд▓ рдЖрд░реЗрдЦ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред


рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдЯреНрд░реЗрд╕ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ рддреЛ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЬреИрд╕реЗ рд╣реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрд░реИрд╢ рд╣реЛрддрд╛ рд╣реИ, рд╣рдо рдЧрдгрдирд╛ рджреЗрдЦреЗрдВрдЧреЗред




рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ 200 рдорд┐рд▓реА рд╕реЗрдХреЗрдВрдб рд▓рдЧрддреЗ рд╣реИрдВред рдлрд┐рд░ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдЖрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд▓рдЧрднрдЧ 40 рдорд┐рд▓реА рд╕реЗрдХреЗрдВрдб рд▓рдЧрддреЗ рд╣реИрдВред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХрдИ рдСрдкрд░реЗрд╢рди рд╣реЛрдиреЗ рдкрд░ рдЗрд╕ рдбреЗрдЯрд╛ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реИред рдЖрдк рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЙрдирдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдХрд┐рддрдирд╛ рд╕рдордп рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдФрд░ рдХреИрд╕реЗ рд╡реЗ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред


рдЕрддрд┐рд░рд┐рдХреНрдд рдЙрдкрдХрд░рдг


рд╕реНрдХреНрд░реАрди рдкрд░ - рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдХреА рдзреАрдореА рдЧрддрд┐ рдХреА рд╢реВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдЖрд░-рдкреНрд░реЛрдЬреЗрдХреНрдЯред рдЖрд╡реЗрджрди рд╕реНрдиреИрдкрдЪреИрдЯ рдХреЗ рд╕рдорд╛рди рд╣реИред рдЗрд╕рдиреЗ рдлреЛрдЯреЛ рд░реАрдЯрдЪрд┐рдВрдЧ рдкреНрд░рднрд╛рд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдлреНрд░реЗрдо рдХреЗ рд▓рд┐рдП рд╕рднреА рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдСрдкрд░реЗрд╢рди рдХреЗ 26.4% рдЗрд╕ рдкрд░ рдЦрд░реНрдЪ рдХрд┐рдП рдЧрдП рдереЗред рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рдХреИрдорд░рд╛ рдзреАрд░реЗ-рдзреАрд░реЗ рд╢реВрдЯрд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓рдЧрднрдЧ 10 рдлреНрд░реЗрдо рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдбред рдЬрдм рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдмрд╕реЗ рдКрдкрд░ рдХреА рд░реЗрдЦрд╛ рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ред рд╡рд╣ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдереАред рдпрджрд┐ рдЖрдк рдкреНрд░рджрд░реНрд╢рди NSDispatchData рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдмрд┐рдВрджреБ NSDispatchData рдХрд╛ рднрд╛рд░реА рдЙрдкрдпреЛрдЧ рд╣реИред




NSData рдХрд╛ рдпрд╣ рдЙрдкрд╡рд░реНрдЧ рдХреЗрд╡рд▓ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрдВрддрд░рд╛рд▓ рдореЗрдВ getBytes рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдПрдХ рдЕрдиреБрдХреНрд░рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реНрдерд╛рди рдкрд░ getBytes ред рдпрд╣ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╕рдм рдХреБрдЫ рдЬреЛ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ 26% рдЧрдгрдирд╛ рдХрд╛ 18% рд▓реЗрддрд╛ рд╣реИред




рдирд┐рдпрдо # 1


NSData рдФрд░ getBytes рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдкрд░ рдПрдХ рд╕рд░рд▓ рдСрдкрд░реЗрд╢рди рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд╕рд╛рджреЗ рд╕реА рдкрд░ рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЪреВрдВрдХрд┐ рд╕рдорд╕реНрдпрд╛ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рд╣реИ, рддреЛ рдЖрдк рдХреЙрдкреА рдореЗрдореЛрд░реА рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рд╕рд╛рде, рдЖрдк рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рджреВрд╕рд░реЗ рд╕реНрдерд╛рди рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд╢рдХреНрддрд┐ рдХреЛ рдмрд╣реБрдд рдмрдЪрд╛рддрд╛ рд╣реИред

NSData рдХреЗ рдХрдИ рдСрдкрд░реЗрд╢рди рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рд▓рд╛рд▓ рд░рдВрдЧ рдореЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред getBytes рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, getBytes рдбреЗрдЯрд╛ рдХреЛ рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж getBytes рд╕рдХрддреЗ рд╣реИрдВред рдореЗрдореЛрд░реА рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд▓рдЧрднрдЧ рдПрдХ рдЬреИрд╕рд╛ рд╣реИред рдпрд╣ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ рдФрд░ рдкрд░рд┐рдорд╛рдг рдХреЗ рдХрдо рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдХреНрд░рдо рдХрд░рддрд╛ рд╣реИред




рдпрджрд┐ рдЖрдк рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рд╕реЗ рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдлреЛрдЯреЛ рдХреЛ рдмрджрд▓рдиреЗ рдкрд░ рдЦрд░реНрдЪ рдХрд┐рдП рдЧрдП рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдСрдкрд░реЗрд╢рди рдХрд╛ рдкреНрд░рддрд┐рд╢рдд 26% рд╕реЗ рдШрдЯрдХрд░ 0.6% рд╣реЛ рдЧрдпрд╛ред рдФрд░ рдпрд╣ рдореЗрдореЛрд░реА рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдб рдХреА рдХреЗрд╡рд▓ рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдХрд╛рд░рдг рд╣реИред рдлреНрд░реЗрдо рджрд░ рдореЗрдВ рдХрд╛рдлреА рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИред




рдирд┐рдпрдо # реи


рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рддреЗ рд╕рдордп рдПрдХ рджреВрд╕рд░реЗ рдкрд░ рдУрд╡рд░рд▓реИрдкрд┐рдВрдЧ рдкрд┐рдХреНрд╕рд▓ рд╕реЗ рдмрдЪреЗрдВред

рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдпрд╣ 60 рдлреНрд░реЗрдо рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд╕реЗ рдКрдкрд░ рдХреА рдЖрд╡реГрддреНрддрд┐ рдкрд░ рд╣реЛрдЧрд╛ред CADisplayLink рдХрд╛ рдЙрдкрдпреЛрдЧ CADisplayLink , рдЖрдк UI рдХреЗ рдЕрджреНрдпрддрди рдХреЛ рдзреАрдорд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ preferredFramesPerSecond рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ iOS 10 рдФрд░ рдмрд╛рдж рдореЗрдВ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдкреБрд░рд╛рдиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЖрдИрдУрдПрд╕ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдлрд╝реНрд░реЗрдо рдХреА рд╡рд╛рдВрдЫрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, 15 рдлреНрд░реЗрдо рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдпрд╛ рддреЛ, рддрд╛рдХрд┐ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд╢рдХреНрддрд┐ рдХреЛ рдмреЗрдХрд╛рд░ рди рдХрд░реЗрдВ рдФрд░ рдЖрд╡реЗрджрди рдореЗрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХрд╛рдо рди рдЬреЛрдбрд╝реЗрдВред




рдирд┐рдпрдо # рей


рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдЖрдИрдПрдордкреА рдкреЙрдЗрдВрдЯрд░реНрд╕ (рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдкреЙрдЗрдВрдЯрд░реНрд╕) рдХреЗ рдХреИрд╢рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИред рдЬрдм under the hood рд╡рд┐рдзрд┐ рдХреЗ under the hood рдЙрджреНрджреЗрд╢реНрдп-рд╕реА рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ objc_msgSend() рдлрд╝рдВрдХреНрд╢рди рдХреЛ objc_msgSend() ред рдпрджрд┐ рдЯреНрд░реЗрд╕ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдХреЙрд▓ рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдПрдХ рдХреИрд╢ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдХреБрдЫ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдирд╛рдо рджрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╣рд░ рдмрд╛рд░ рдЗрд╕ рдЦреЛрдЬ рдХреЛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХреИрд╢рд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ: рдлрд╝рдВрдХреНрд╢рди рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ рдХреИрд╢ рдореЗрдВ рдбрд╛рд▓реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕реАрдзреЗ рдХреЙрд▓ рдХрд░реЗрдВред рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рджреЛ рдмрд╛рд░ рдЙрдкрд╡рд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред




рдпрджрд┐ рдХреЛрдИ рдкреЙрдЗрдВрдЯрд░ рдирд╣реАрдВ рд╣реИ, рддреЛ рдореЗрдердб рдлреЙрд░ рд╕реЗрд▓реЗрдХреНрдЯрд░ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдзрд┐ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рдХреЙрд▓ рдлрд╝рдВрдХреНрд╢рди рдХреА рдорджрдж рдХреЗ рдЗрд╕ рддрд░реАрдХреЗ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЪрдпрдирдХрд░реНрддрд╛ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо рджрд░реНрдЬ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рддреЗрдЬрд╝ рддрд░реАрдХрд╛ рд╣реИред


рдирд┐рдпрдо # 4


рдПрдЖрд░рд╕реА (рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рдВрджрд░реНрдн рдЧрд┐рдирддреА) рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред рдПрдЖрд░рд╕реА рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рдо рдЬреЛрдбрд╝рддрд╛ рд╣реИред


рдЬрдм ARC рд╕рдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕рд╣реА рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рд╕реНрдХреИрдЯрд░ рдХреЛ retain / release рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рдРрд╕реА рдЬрдЧрд╣реЗрдВ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ ARC рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдРрд╕рд╛ рдХрд░реЗрдВ рдпрджрд┐ рдЕрдиреБрдХреВрд▓рди рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧреЗрдЧрд╛ред


рдХрднреА-рдХрднреА рдпрд╣ рд╕реНрд╡рд┐рдлреНрдЯ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рднреА рд╣реЛрддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░рджрд░реНрд╢рди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдкреНрд░рддрд┐ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИред рд╕реНрд╡рд┐рдлреНрдЯ рдореЗрдВ рдХреБрдЫ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЫреЛрдЯреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреА рдмрд╣реБрдд рд╕реА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд▓рд┐рдЦрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред


рдЙрдкрдпреЛрдЧреА рд╕рд╛рдордЧреНрд░реА


рд▓реЗрдЦ рдХрд╛ рдкрд╣рд▓рд╛ рднрд╛рдЧ рдпрд╣рд╛рдБ рдЙрдкрд▓рдмреНрдз рд╣реИ ред рд╡рд┐рд╖рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рд▓реНрдпреВрдХ рдкрд░рдо рдиреЗ " рдЖрдИрдУрдПрд╕ рдФрд░ рдореИрдХрдУрдПрд╕: рдкреНрд░рджрд░реНрд╢рди рдЯреНрдпреВрдирд┐рдВрдЧ " рдкреБрд╕реНрддрдХ рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рдЕрдкрдиреЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреАред


MBLT DEV 2017 рдкрд░ рд▓реНрдпреВрдХ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХреА рд╡реАрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдЕрдм рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдбреЛрдореЗрди рдореЗрдВ рд╣реИ:



MBLT DEV 2018 рдкрд░ рдЕрдзрд┐рдХ рдЬреНрдЮрд╛рди рдФрд░ рд╕реБрдЭрд╛рд╡


рдкрд╣рд▓реЗ рд╡рдХреНрддрд╛рдУрдВ рдиреЗ рдШреЛрд╖рдгрд╛ рдХреА:


  • рдиреЗрдЯрдлреНрд▓рд┐рдХреНрд╕ рдХреЗ рдЬреЙрди рд╕реАред рдлреЙрдХреНрд╕ рдЖрдХреНрд░рд╛рдордХ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдФрд░ рдП / рдмреА рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред
  • Krzysztof Zab┼Вocki, рдж рдиреНрдпреВрдпреЙрд░реНрдХ рдЯрд╛рдЗрдореНрд╕, iOS рдореЗрдВ рдкреИрдЯрд░реНрди рдкрд░ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рддреИрдпрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИред
  • рдЧреВрдЧрд▓ рдбреЗрд╡рд▓рдкрд░ рдПрдХреНрд╕рдкрд░реНрдЯ рд▓реМрд░рд╛ рдореЛрд░рд┐рдирд┐рдЧреЛ рдиреЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдлрд╛рдпрд░рдмреЗрд╕ рдкреНрд░рдерд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреАред

рдирд╡реАрдирддрдо рд╢реБрд░реБрдЖрддреА рдкрдХреНрд╖реА рдЯрд┐рдХрдЯ рдЖрдЬ рдЙрдбрд╝ рдЬрд╛рдПрдВрдЧреЗред


Source: https://habr.com/ru/post/hi415543/


All Articles