
рдЖрдИрдУрдПрд╕-рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХрд╛рдо рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рднрд┐рдиреНрди рдЯреНрд░рд┐рдХреНрд╕ рдФрд░ рдЯреНрд░рд┐рдХреНрд╕ рд╣реИрдВ, рдЬрдм рдПрдХ рдХрд╛рд░реНрдп рдХреЛ 16.67 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдореЗрдВ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдо рдЖрдкрдХреЛ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдореБрдЦреНрдп рдзрд╛рдЧреЗ рдХреЛ рдХреИрд╕реЗ рдЙрддрд╛рд░рдирд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдХреЙрд▓ рд╕реНрдЯреИрдХ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реЗ рдЙрдкрдХрд░рдг рдмреЗрд╣рддрд░ рд╣реИрдВред
тАЬрджреЛрд╕реНрддреЛрдВ, рдЖрдЗрдП рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдк рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЗ рд╕рдордп рдХреЛ 10 рд╕реЗрдХрдВрдб рддрдХ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕реЗ 5 рдорд┐рд▓рд┐рдпрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЧреБрдгрд╛ рдХрд░рддреЗ рд╣реБрдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рддрд┐рджрд┐рди 50 рдорд┐рд▓рд┐рдпрди рд╕реЗрдХрдВрдб рд╣реЛрдВрдЧреЗред рдПрдХ рд╡рд░реНрд╖ рдореЗрдВ рдпрд╣ рд▓рдЧрднрдЧ рджрд╕ рдорд╛рдирд╡ рдЬреАрд╡рди рдХреА рд░рд╛рд╢рд┐ рд╣реЛрдЧреАред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбрд╛рдЙрдирд▓реЛрдб 10 рд╕реЗрдХрдВрдб рддреЗрдЬ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХрдИ рджрд╕рд┐рдпреЛрдВ рдЬреАрд╡рди рдмрдЪрд╛рдПрдВрдЧреЗред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реИ, рд╣реИ рдирд╛? тАЭ
рдкреНрд░рджрд░реНрд╢рди рдкрд░ рд╕реНрдЯреАрд╡ рдЬреЙрдмреНрд╕ (Apple II рдХрдВрдкреНрдпреВрдЯрд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп)ред
рдпрд╣ рд▓реЗрдЦ рдлреНрдпреВрдЬрди рдЖрдИрдУрдПрд╕ рдбреЗрд╡рд▓рдкрд░ рд▓реНрдпреВрдХ рдкрд░рдо рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рдПрдордмреАрдПрд▓рдЯреА рдбреАрдИрд╡реА рдЗрдВрдЯрд░рдиреЗрд╢рдирд▓ рдореЛрдмрд╛рдЗрд▓ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЙрдиреНрдлреНрд░реЗрдВрд╕ рдореЗрдВ рдмрд╛рдд рдХреА рдереАред
MBLT DEV 2018 28 рд╕рд┐рддрдВрдмрд░ рдХреЛ рдорд╛рд╕реНрдХреЛ рдореЗрдВ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЯрд┐рдХрдЯ рдЕрднреА рд╕рдмрд╕реЗ рд╕рд╕реНрддрд╛ рд╣реИред рдкрд░рдВрдкрд░рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЬрдмрдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рдорд┐рддрд┐ рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рддреА рд╣реИ, рдЖрдк рдХреЛрдирдл рдХреЗ рд▓рд┐рдП рд╢реБрд░реБрдЖрддреА рдкрдХреНрд╖реА рдЯрд┐рдХрдЯ рдЦрд░реАрдж рд╕рдХрддреЗ рд╣реИрдВред рдЕрдм рдЗрд╕ рдЕрд╡рд╕рд░ рдХреЛ рд▓реЗрдВред 29 рдЬреВрди рд╕реЗ рдЯрд┐рдХрдЯ рдФрд░ рдорд╣рдВрдЧреЗ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред
рдлреНрд░реЗрдо рдХрд╛ рдиреБрдХрд╕рд╛рди
рдореБрдЦреНрдп рдереНрд░реЗрдб рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕реНрдкрд░реНрд╢ рдкреНрд░рдХрд╛рд░ рдХреА рдШрдЯрдирд╛рдУрдВ рдФрд░ UI рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рд╡рд╣ рд╕реНрдХреНрд░реАрди рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд░рддрд╛ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рдЖрдзреБрдирд┐рдХ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди 60 рдлреНрд░реЗрдо рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдкрд░ рд░реЗрдВрдбрд░ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХрд╛рд░реНрдп 16.67 рдорд┐рд▓реАрд╕реЗрдХрдВрдб (1000 рдорд┐рд▓реАрд╕реЗрдХрдВрдб / 60 рдлреНрд░реЗрдо) рдореЗрдВ рдкреВрд░рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП, рдореЗрди рдереНрд░реЗрдб рдореЗрдВ рддреНрд╡рд░рдг рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
рдпрджрд┐ рдХреБрдЫ рдСрдкрд░реЗрд╢рди рдореЗрдВ 16.67 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рдлрд╝реНрд░реЗрдо рд▓реЙрд╕ рдЕрдкрдиреЗ рдЖрдк рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдирд┐рдореЗрд╢рди рдЦреЗрд▓рддреЗ рд╕рдордп рдЗрд╕реЗ рдиреЛрдЯрд┐рд╕ рдХрд░реЗрдВрдЧреЗред рдХреБрдЫ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░, рдкреНрд░рддрд┐рдкрд╛рджрди рдФрд░ рднреА рддреЗрдЬ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, iPad Pro 2017 рдкрд░, рд╕реНрдХреНрд░реАрди рд░рд┐рдлреНрд░реЗрд╢ рджрд░ 120 рд╣рд░реНрдЯреНрдЬ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдлреНрд░реЗрдо рдореЗрдВ рд╕рдВрдЪрд╛рд▓рди рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ 8 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рд╣реИрдВред
рдирд┐рдпрдо # 1
CADisplayLink
рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЯрд╛рдЗрдорд░ рд╣реИ рдЬреЛ рд╡рд░реНрдЯрд┐рдХрд▓ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди (Vsync) рдХреЗ рджреМрд░рд╛рди рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рд╡рд░реНрдЯрд┐рдХрд▓ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ 16.67 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рд╕реЗ рдЕрдзрд┐рдХ рдХрд┐рд╕реА рдлреНрд░реЗрдо рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред AppDelegate рдореЗрдВ рдПрдХ рдЪреЗрдХ рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк CADisplayLink
рдХреЛ рдореБрдЦреНрдп рд░рди рд▓реВрдк рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╝рдВрдХреНрд╢рди рд╣реЛрдЧрд╛ рдЬреЛ рдЧрдгрдирд╛ рдХрд░реЗрдЧрд╛ред рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдЕрд╡рдзрд┐ рдХреЛ рдЯреНрд░реИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрддрд┐рдо рд▓реЙрдиреНрдЪ рдХреЗ рдмрд╛рдж рдХрд┐рддрдирд╛ рд╕рдордп рдмреАрдд рдЪреБрдХрд╛ рд╣реИред
ред
рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкреНрд░рдХрдЯ рд╣реЛрддреА рд╣реИред рдпрджрд┐ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдСрдкрд░реЗрд╢рди рдХрд┐рдП рдЧрдП рдЬреЛ рдореБрдЦреНрдп рдзрд╛рдЧреЗ рдХреЛ рдУрд╡рд░рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди 100 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреА рджреЗрд░реА рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЙрд╕ рд╕рдордп рдХрд░реНрдорд┐рдпреЛрдВ рдХрд╛ рдиреБрдХрд╕рд╛рди рд╣реБрдЖ рдерд╛ред
рдпрд╣рд╛рдВ рдХреИрдЯрд╕реНрдЯрд╛рдЧреНрд░рд╛рдо рдРрдк рд╣реИред рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╕рдордп, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдзреАрдорд╛ рд╣реЛрдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдлреНрд░реЗрдо рджрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдмрд┐рдВрджреБ рдкрд░ рдХрдо рд╣реЛ рдЧрдИ, рдФрд░ рд▓реЛрдбрд┐рдВрдЧ рд╕рдордп рд▓рдЧрднрдЧ 200 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рддрдХ рдЪрд▓рд╛ред рдХреБрдЫ рдЬреНрдпрд╛рджрд╛ рд╕рдордп рд▓рдЧ рд░рд╣рд╛ рд╣реИред
ред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕рд╕реЗ рдЦреБрд╢ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреБрд░рд╛рдиреЗ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдЪрд▓рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ iPhone 5 рдпрд╛ рдкреБрд░рд╛рдиреЗ iPod рдореЙрдбрд▓, рдЖрджрд┐ред
рд╕рдордп рдкреНрд░реЛрдлрд╛рдЗрд▓рд░
рдЗрд╕ рддрд░рд╣ рдХреЗ рдореБрджреНрджреЛрдВ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдг рдЯрд╛рдЗрдо рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рд╣реИред рдЕрдиреНрдп рдЙрдкрдХрд░рдг рднреА рдЙрдкрдпреЛрдЧреА рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдВрддрддрдГ 90% рдлрд╝реНрдпреВрдЬрд╝рди рдореЗрдВ рд╣рдо рдЯрд╛рдЗрдо рдкреНрд░реЛрдЗрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЖрдорддреМрд░ рдкрд░, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╕реНрдХреНрд░реЙрд▓рд╡реНрдпреВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрддреА рд╣реИрдВ, рдкрд╛рда рдФрд░ рдЫрд╡рд┐рдпреЛрдВ рд╡рд╛рд▓реЗ рдХреНрд╖реЗрддреНрд░ред
рдЫрд╡рд┐рдпрд╛рдБ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВред рд╣рдо UIImage
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ JPEG рдкреНрд░рд╛рд░реВрдк рдХреЛ рдбрд┐рдХреЛрдб рдХрд░рддреЗ рд╣реИрдВред рд╡реЗ рдЗрд╕реЗ рдзреАрд░реЗ-рдзреАрд░реЗ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рд╕реАрдзреЗ рдЙрдирдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдЯреНрд░реИрдХ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред UIImageView
рдореЗрдВ рдЫрд╡рд┐ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕ рдкрд▓ рдХреЛ рдЯрд╛рдЗрдо рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдореЗрдВ рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдкрд╛рда рд╕реНрд╡рд░реВрдкрдг рдПрдХ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рд╣реИред рдпрд╣ рддрдм рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ "рдЬрдЯрд┐рд▓" рдкрд╛рда рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрд╛рдкрд╛рдиреА рдпрд╛ рдЪреАрдиреА рдореЗрдВред рдкрд╛рда рдХреЗ рд╕рд╛рде рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЖрдХрд╛рд░ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдореЗрдВ рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдорд╛рд░реНрдХрдЕрдк рднреА рдЖрд╡реЗрджрди рдореЗрдВ рдкреНрд░рддрд┐рдкрд╛рджрди рдзреАрдорд╛ рдХрд░ рджреЗрддрд╛ рд╣реИред рдпрд╣ AutoLayout рдЯреВрд▓ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдЪ рд╣реИред AutoLayout рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореИрдиреБрдЕрд▓ рдорд╛рд░реНрдХрдЕрдк рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмрд╣реБрдд рдзреАрдорд╛ рдХрд░ рджреЗрддрд╛ рд╣реИред рд╣рдореЗрдВ рд░рд┐рдпрд╛рдпрддреЗрдВ рдмрдирд╛рдиреА рд╣реЛрдВрдЧреАред рдпрджрд┐ AutoLayout рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдзреАрдорд╛ рдХрд░ рджреЗрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдЫреЛрдбрд╝рдиреЗ рдФрд░ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдорд╛рд░реНрдХрдЕрдк рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЯреНрд░реЗрд╕ рдкреИрдЯрд░реНрди

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдХреЙрд▓ рдЯреНрд░реА рдореЗрдВ, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕реАрдкреАрдпреВ рдХрд┐рд╕ рддрд░рд╣ рдХрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЯреНрд░реЗрд╕ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдзрд╛рдЧреЗ, рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдорддреМрд░ рдкрд░ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЯреНрд░реЗрд╕ рдХреЛ рдереНрд░реЗрдб рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ рдФрд░ рдореБрдЦреНрдп рдзрд╛рдЧреЗ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░реЗрдВред
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЯреНрд░реЗрд╕ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЬрдЯрд┐рд▓ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред рд╣рдореЗрд╢рд╛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рдХрд┐ FRunLoopDoSource0
рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИред
рдЯреНрд░реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдлрд╡рд╛рд╣ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╕рдм рдХреБрдЫ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдЖрдк рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдХреЛ рдЯреНрд░реИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрди рд╕рднреА рд╕рд┐рд╕реНрдЯрдо рддрддреНрд╡реЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдиреЗ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдиреАрдЪреЗ рдЖрдкрдХрд╛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣реИред
рдкреЗрдбрд╝ рдХреЛ рдмреБрд▓рд╛рдУ
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдЖрд╡реЗрджрди рд╣реИред рдЗрд╕рдореЗрдВ рдореБрдЦреНрдп рдлрд╝рдВрдХреНрд╢рди рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдХрдИ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рдЯрд╛рдЗрдо рдкреНрд░реЛрдЗрд▓рд░ рдХреЗ рдХрд╛рдо рдХрд╛ рд╕рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдорд┐рд▓реАрд╕реЗрдХрдВрдб (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ) рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╕реНрдиреИрдкрд╢реЙрдЯ рд▓реЗрддрд╛ рд╣реИред рдПрдХ рдФрд░ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж, рд╡рд╣ рдЯреНрд░реЗрд╕ рдХрд╛ рд╕реНрдиреИрдкрд╢реЙрдЯ рд▓реЗрддрд╛ рд╣реИред рдпрд╣ рдореБрдЦреНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ " foo
" рдХрд╣рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдлрд╝рдВрдХреНрд╢рди " bar
" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдиреАрдЪреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрди рдЖрдВрдХрдбрд╝реЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╡рд┐рдкрд░реАрдд, рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдЗрдВрдЧрд┐рдд рдХреА рдЧрдИ рд╣реИ: 1, 1, 1ред

рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдХ рдмрд╛рд░ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдлрд┐рд░, рдПрдХ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рд╕реНрдЯреИрдХ рдХрд╛ рдПрдХ рдФрд░ рд╢реЙрдЯ рдорд┐рд▓рддрд╛ рд╣реИред рдЗрд╕ рдмрд╛рд░ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рджрд┐рдЦрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рднреА рд╕рдВрдЦреНрдпрд╛ 1 рд╕реЗ рдмрдврд╝ рдЬрд╛рддреА рд╣реИ, рдФрд░ рд╣рдореЗрдВ 2, 2, 2 рдорд┐рд▓рддреЗ рд╣реИрдВред

рддреАрд╕рд░реА рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рджреМрд░рд╛рди, рд╣рдорд╛рд░реА рдХреЙрд▓ рд╕реНрдЯреИрдХ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рджрд┐рдЦрддреА рд╣реИред рдореБрдЦреНрдп рдлрд╝рдВрдХреНрд╢рди bar
рд╕реАрдзреЗ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдПрдХ рдФрд░ рдЗрдХрд╛рдИ рдХреЛ рдореБрдЦреНрдп рдлрд╝рдВрдХреНрд╢рди рдФрд░ " bar
" рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрдирдХрд╛ рдорд╛рди 3 рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдЧрд▓рд╛, рдЬреБрджрд╛рдИ рд╣реЛрддреА рд╣реИред рдХрднреА-рдХрднреА рдореБрдЦреНрдп рдХрд╛рд░реНрдп " foo
" рдХреЛ рд╕реАрдзреЗ рдХрд╣рддреЗ рд╣реИрдВ, рдХрднреА-рдХрднреА " bar
" рдХреЛ рд╕реАрдзреЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдмрд╛рд░ рдРрд╕рд╛ рд╣реБрдЖред рдПрдХ рд╕рдорд╛рд░реЛрд╣ рджреВрд╕рд░реЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЕрдЧрд▓рд╛, рдПрдХ рдлрд╝рдВрдХреНрд╢рди рджреВрд╕рд░реЗ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рддреАрд╕рд░рд╛ рдлрд╝рдВрдХреНрд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ " baz
" рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджреЛ рдмрд╛рд░ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдЗрддрдирд╛ рдорд╣рддреНрд╡рд╣реАрди рд╣реИ рдХрд┐ рдЗрд╕реЗ рдПрдХ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рд╕реЗ рдЕрдзрд┐рдХ рддреЗрдЬ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
Time Profiler рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдордп рдЕрдВрддрд░рд╛рд▓ рдирд╣реАрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдпрд╣ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рдЯреАрдХ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╡рд╣ рдХреЗрд╡рд▓ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЪрд┐рддреНрд░реЛрдВ рдореЗрдВ рдпрд╣ рдХрд┐рддрдиреА рдмрд╛рд░ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЕрд╡рдзрд┐ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдЕрдиреБрдорд╛рдирд┐рдд рдореВрд▓реНрдп рджреЗрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдХреБрдЫ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд╛рдлреА рддреЗрдЬ рд╣реЛрддреА рд╣реИрдВ, рд╡реЗ рдЪрд┐рддреНрд░реЛрдВ рдкрд░ рдХрднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВред

рдХрдВрд╕реЛрд▓ рдореЛрдб рдореЗрдВ рдХреЙрд▓ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдлреНрд░реЗрдо рджрд░ рдореЗрдВ рдХрдореА рдХреЗ рд╕рднреА рдХреНрд╖рдгреЛрдВ рдХреЛ рджреЗрдЦ рдФрд░ рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдлреНрд░реЗрдо рдХреА рд╣рд╛рдирд┐ рдХрдИ рдмрд╛рд░ рд╣реБрдИ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЧрдпрд╛ред

MacOS рдкрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рд╕реЗ рдЕрдиреБрднрд╛рдЧ рдФрд░ рдЙрдк-рд╡рд░реНрдЧреЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реЛрдЧрд╛, рди рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рдЪрдпрдирд┐рддред рд╡реЗ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдп рдХреА рдорд╛рддреНрд░рд╛ рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред 90% рдорд╛рдорд▓реЛрдВ рдореЗрдВ, CFRunLoopRun
рдЖрддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рдмрд╛рдж рдХреЙрд▓рдмреИрдХ рдЖрддрд╛ рд╣реИред
рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд┐рдВрдЧрд▓ рд░рди рд▓реВрдк рдХрд╛рд░реНрдп рдирд┐рд╖реНрдкрд╛рджрди рдЪрдХреНрд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдПрдХ рдЕрдВрддрд╣реАрди рджреЛрд╣рд░рд╛рд╡ рдЪрдХреНрд░ рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░, рдХреЙрд▓рдмреИрдХ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЗрди рдХреЙрд▓рдмреИрдХ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╢реАрд░реНрд╖ рдмрд╛рдзрд╛рдУрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрди рдЪреБрдиреМрддрд┐рдпреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╕рдордЭ рдкрд╛рдПрдВрдЧреЗ рдХрд┐ рд╡реЗ рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпреЗ рд░реЗрдВрдбрд░, рдЗрдореЗрдЬ рдкреНрд░реЛрд╡рд╛рдЗрдбрд░, рдЖрдИрдУ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╕рд┐рд╕реНрдЯрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡реЗрджрди рдХреЗ рд╕рдорд╕реНрдпрд╛ рдХреНрд╖реЗрддреНрд░ рд╣реИрдВред
рдРрд╕реЗ рдореАрдЯрд░ рд╣реИрдВ рдЬреЛ рдкреНрд░рддрд┐рд╢рдд рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдп рдпрд╛ рдСрдкрд░реЗрд╢рди рдХрд┐рддрдирд╛ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдпрд╣рд╛рдВ рдореВрд▓реНрдп - 34% рджреЗрдЦреЗрдВрдЧреЗред рдпрд╣ Apple jpeg_decode_image_all
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИред рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЬреЗрдкреАрдИрдЬреА рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдореБрдЦреНрдп рдзрд╛рдЧреЗ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ рдлреНрд░реЗрдо рд▓реЙрд╕ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИред

рдирд┐рдпрдо # реи
рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдЬреЗрдкреАрдЖрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдзрд┐рдХрд╛рдВрд╢ рддреГрддреАрдп-рдкрдХреНрд╖ рд▓рд╛рдЗрдмреНрд░реЗрд░реА (AsyncDisplayKit, SDWebImage, рдЖрджрд┐) рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк UIImage
рдкрд░ рдПрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдПрдХ рд╕рдВрджрд░реНрдн рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдПрдХ рдЫрд╡рд┐ рдмрдирд╛рддреЗ рд╣реИрдВред

рдЬрдм рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдореБрдЦреНрдп рдереНрд░реЗрдб рд╕реЗ decodeImage
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╣рдореЗрд╢рд╛ рдПрдХ рдбреАрдХреЛрдб рдХреА рдЧрдИ рдЫрд╡рд┐ рд▓реМрдЯрд╛рдПрдЧрд╛ред рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ UIImage рдЫрд╡рд┐ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рд╕реЗ рдЧреБрдЬрд░реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рд╣рдореЗрд╢рд╛ рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рд╡рд┐рдзрд┐ рд╕реЗ рдЧреБрдЬрд░рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдбреЗрдЯрд╛ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХреИрд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреЛрдИ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред
рддрдХрдиреАрдХреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдпрд╣ рдХрдо рдкреНрд░рднрд╛рд╡реА рд╣реИред UIImageView
рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдиреБрдХреВрд▓рд┐рдд рдФрд░ рдХреБрд╢рд▓ рд▓рдЧрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рднреА рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреА рдХрдорд┐рдпрд╛рдВ рднреА рд╣реИрдВред рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде, рдЖрдкрдХреА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдзреАрд░реЗ-рдзреАрд░реЗ рдбрд┐рдХреЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрдЪреНрдЫреА рдЦрдмрд░ рд╣реИ - рдЖрдк рдЫрд╡рд┐ рдХреЛ рдЙрдкрд░реЛрдХреНрдд рддрд░реАрдХреЗ рд╕реЗ рдбрд┐рдХреЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдореБрдЦреНрдп рдзрд╛рдЧреЗ рдкрд░ рдирд╣реАрдВ, рдФрд░ рдлрд┐рд░ рдореБрдЦреНрдп рдзрд╛рдЧреЗ рдкрд░ рд▓реМрдЯреЗрдВ рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред

рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕реЗ рдореБрдЦреНрдп рдереНрд░реЗрдб рдкрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЯреЗрдк рдХреА рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдХреЛ рдзреАрдорд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд▓рд╛рднрджрд╛рдпрдХ рд╕рдорд╛рдзрд╛рдиред
рдореЗрдореЛрд░реА рдЕрд▓рд░реНрдЯ рд╕реЗ рдмрд╛рд╣рд░
рдХрдо рдореЗрдореЛрд░реА рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рде, рдореИрдВ рд╕рднреА рдЕрдкреНрд░рдпреБрдХреНрдд рдбреЗрдЯрд╛ рдХреЛ рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рд╕рдВрднрд╡ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рд╕реНрдЯреНрд░реАрдо рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡реЙрд▓реНрдпреВрдореЗрдЯреНрд░рд┐рдХ рдбрд┐рдХреЛрдб рдХрд┐рдП рдЧрдП JPEG- рдЪрд┐рддреНрд░ рдЙрди рдкрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЦрд╛рд▓реА рд╕реНрдерд╛рди рд▓реЗ рд▓реЗрдВрдЧреЗред
рдлрд╝реНрдпреВрдЬрд╝ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдРрд╕реА рд╕рдорд╕реНрдпрд╛ рд╣реБрдИред рдпрджрд┐ рдореИрдВрдиреЗ рдЕрдкрдиреА рд╕рднреА JPEG рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рддреГрддреАрдп-рдкрдХреНрд╖ рд╕реНрдЯреНрд░реАрдо рдкрд░ рдбрд┐рдХреЛрдб рдХрд┐рдпрд╛ рдерд╛, рддреЛ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреБрд░рд╛рдиреЗ рдлреЛрди рдореЙрдбрд▓ рдкрд░, рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рддреБрд░рдВрдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреЛрдбрд╝ рджреЗрдЧрд╛ред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ рдХрд┐ рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рдЯрд╛рд╕реНрдХ рдлрд╝реНрд▓реЛ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдЕрдкрд░реНрдпрд╛рдкреНрдд рдореЗрдореЛрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рдХрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рдЬреИрд╕реЗ "рдЕрд░реЗ, рдЕрдирд╛рд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рд╣рдЯрд╛рдПрдВ!"ред рдирд┐рдореНрди рд╕реНрдерд┐рддрд┐ рд╣реЛрддреА рд╣реИ: рдкрд╣рд▓реЗ рдЖрдк рдЗрди рд╕рднреА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рддреГрддреАрдп-рдкрдХреНрд╖ рдзрд╛рд░рд╛рдУрдВ рдкрд░ рд░рдЦ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рдЧрд╛рддрд╛рд░ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рдереНрд░реЗрдб рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореБрдЦреНрдп рдереНрд░реЗрдб рдХреЛ рд╕рд┐рдЧреНрдирд▓ рднреЗрдЬрддреЗ рд╣реИрдВ, рддреЛ рдРрд╕реА рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред
рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░реЗрдВ

рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ, рдореБрдЦреНрдп рдзрд╛рдЧрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рдПрдХ рдХрддрд╛рд░ рд╣реИред рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рдереНрд░реЗрдбреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдХрдорд╛рдВрдб performSelectorOnMainThread:withObject:waitUntilDone:
рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЙрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдореБрдЦреНрдп рдзрд╛рдЧреЗ рдкрд░ рдХрддрд╛рд░ рдХреЗ рдЕрдВрдд рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдореБрдЦреНрдп рдереНрд░реЗрдб рд╕реНрдореГрддрд┐ рд╕реВрдЪрдирд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡реНрдпрд╕реНрдд рд╣реИ, рддреЛ рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдЖрдк рд╕рднреА рд╕реВрдЪрдирд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛрдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреЗ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рд░рдЦрдиреЗ рдХреА рдЬрдЯрд┐рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред рд╕реНрд╡рд┐рдлреНрдЯ рдореЗрдВ, рдпрд╣ рдереЛрдбрд╝рд╛ рд╕рд░рд▓ рджрд┐рдЦрддрд╛ рд╣реИред DispatchQueue.main.sync
рдореБрдЦреНрдп рдереНрд░реЗрдб рдкрд░ рд╕реНрдерд╛рди рдЦрд╛рд▓реА рдХрд░рддрд╛ рд╣реИред
рдпрд╣рд╛рдБ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рд╣реИред рд╣рдордиреЗ рддреГрддреАрдп-рдкрдХреНрд╖ рдзрд╛рд░рд╛рдУрдВ рдкрд░ рдореЗрдореЛрд░реА рдФрд░ рдбрд┐рдХреЛрдб рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдореБрдХреНрдд рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдиреЗрддреНрд░рд╣реАрди рд░реВрдк рд╕реЗ рдЯреЗрдк рдХреЛ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛ рдЧрдпрд╛ рд╣реИред рд╣рдо рдЕрднреА рднреА рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдлреНрд░реЗрдо рдЦреЛ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЖрдЗрдкреЙрдб 5 рдЬреА рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рдкрд░реАрдХреНрд╖рдг рдореЙрдбрд▓ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬреЛ рдЕрднреА рднреА iOS 10 рдФрд░ 11 рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреЗ рдлреНрд░реЗрдо рд▓реЙрд╕ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрднреА рднреА рдЯреЗрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдРрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдмрдиреА рд╣реБрдИ рд╣реИрдВ рдЬреЛ рдХрд░реНрдорд┐рдпреЛрдВ рдХреЗ рдиреБрдХрд╕рд╛рди рдХрд╛ рдХрд╛рд░рдг рдмрдиреА рд╣реБрдИ рд╣реИрдВред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреЗрдЬрд╝реА рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рддрд░реАрдХреЗ рд╣реИрдВред
рдмреЗрд╢рдХ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рд╣рдореЗрд╢рд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдРрд╕реЗ рдХрд╛рд░реНрдп рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рдзрд╛рдЧреЗ рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдпреЗ рдХрд╛рд░реНрдп UI рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдХрдИ UIKit рдХрдХреНрд╖рд╛рдПрдВ рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд, рдЖрдк рдЙрдиреНрд╣реЗрдВ рдмреИрдХрдПрдВрдб рдореЗрдВ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рддреГрддреАрдп-рдкрдХреНрд╖ рд╕реНрдЯреНрд░реАрдо рдкрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдХреЛрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд╕рд┐рд╕реНрдЯрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХреЗ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ рди рдЫреБрдкрд╛рдПрдВред рдореЗрдореЛрд░реА рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рдпрд╛рдж рд░рдЦреЗрдВред
MBLT DEV 2018 рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ
рдорд╛рд╕реНрдХреЛ рдореЗрдВ 28 рд╕рд┐рддрдВрдмрд░ рдХреЛ 5 рд╡реЗрдВ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдп рдПрдордмреАрдПрд▓рдЯреА рдбреАрдИрд╡реА 2018 рдореЛрдмрд╛рдЗрд▓ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕рдореНрдореЗрд▓рди рдореЗрдВ рдЖрдПрдВ ред рдкрд╣рд▓реЗ рд╕реНрдкреАрдХрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд╛рдЗрдЯ рдкрд░ рд╣реИрдВ, рдФрд░ рдирд╡реАрдирддрдо рд╢реБрд░реБрдЖрддреА рдкрдХреНрд╖реА рдЕрднреА рднреА рдмрд┐рдХреНрд░реА рдкрд░ рд╣реИред рдЯрд┐рдХрдЯ рдХреА рдХреАрдорддреЗрдВ 29 рдЬреВрди рдХреЛ рдмрдврд╝реЗрдВрдЧреАред рдЕрдм рд╕рдмрд╕реЗ рдХрдо рдХреАрдордд рдореЗрдВ рдЯрд┐рдХрдЯ рдЦрд░реАрджреЗрдВ ред

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