IOS 4 рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрдарднреВрдорд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ

рд▓реЗрдЦ Viber рдЗрдВрдХ рдХреЗ Viber рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ iOS 4 рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрдарднреВрдорд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрднрд╡ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдЧрд╛ред Viber рдХрд╛ рдкрд╣рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг 2 рджрд┐рд╕рдВрдмрд░, 2010 рдХреЛ AppStore рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдерд╛ред рдордИ 2011 рдореЗрдВ iPhone рдХреЗ рд▓рд┐рдП Viber рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 15 рдорд┐рд▓рд┐рдпрди рд╕реЗ рдЕрдзрд┐рдХ рдереАред рдЖрд╡реЗрджрди рдореЗрдВ рдХрдИ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ:


рдПрдВрдбреНрд░реЙрдЗрдб рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдг рдЕрдм рдПрдХ рдмрдВрдж рдмреАрдЯрд╛ рдЯреЗрд╕реНрдЯ рдореЗрдВ рд╣реИред

рдкрд░рд┐рдЪрдп


IOS 4 рдХреЗ рд░рд┐рд▓реАрдЬрд╝ рд╕реЗ рдкрд╣рд▓реЗ, iPhone рдРрдк рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдкрд╛рд╕ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рд░рдВрддрд░ рд╕рдВрдмрдВрдз рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдирд╣реАрдВ рдереА, рддрд╛рдХрд┐ рд╡реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдШрдЯрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд▓реНрджреА рд╕реЗ рд╕реВрдЪрд┐рдд рдХрд░ рд╕рдХреЗрдВ рдФрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдирд╣реАрдВ рдЪрд▓ рд░рд╣реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдХрд╛рд░реА рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХреЗрдВред рд╕рд░реНрд╡рд░ рд╕реЗ рдШрдЯрдирд╛рдУрдВ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рд╕реАрдорд┐рдд рддрд░реАрдХрд╛ рдкреБрд╢ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рддрдВрддреНрд░ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдиреБрдХрд╕рд╛рди рд╣реИрдВ:
рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ: рдП) рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдФрд░ (рдпрд╛) рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЖрдВрджреЛрд▓рди рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ (рдЬреАрдкреАрдПрд╕ рдЯреНрд░реИрдЬреЗрдХреНрдЯреНрд░реАрдЬрд╝ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдирд╛); рдЦ) рд╕рд░реНрд╡рд░ рдкрд░ рдШрдЯрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рддреНрд╡рд░рд┐рдд рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛; рдЧ) рд╕рдВрдЧреАрдд рдмрдЬрд╛рдирд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрдВрдЯрд░рдиреЗрдЯ рд░реЗрдбрд┐рдпреЛ)ред

Apple рдиреЗ iOS 4 рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛рд░реНрдп рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИред рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛рд░реНрдп рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдПрдкреНрдкрд▓ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рде рдЕрдиреБрднрд╡рдЬрдиреНрдп рд░реВрдк рд╕реЗ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдпрд╣ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП iOS 4 рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рд╕реЗ рдЬреБрдбрд╝реА рд╡рд┐рднрд┐рдиреНрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИред рдпрд╣ рдЖрд▓реЗрдЦ рддреАрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкреГрд╖реНрдарднреВрдорд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдореБрджреНрджреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдЧрд╛ред iOS 4 рд╡реЙрдпрд╕ ред

IOS 4 рдореЗрдВ, рддреАрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЙрдкрд▓рдмреНрдз рд╣реИрдВ (рд╡реЗ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ):
рдЬрдм iOS рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рдбрд╛рд▓ рджреЗрддрд╛ рд╣реИ ( applicationDidEnterBackground: method рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ), рддреЛ рдЖрдк рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдп рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдордп рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╢реБрд░реБрдЖрддреА рдмреНрд▓реЙрдХрдмреИрдХрд╣рд╛рдЗрдкрд░рдкрд┐рдЯрд┐рд╢рдирд╣реИрдВрдбрд▓рд░рд╣реИрдВрдбрд▓рд░: рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдпрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдмреНрд▓реЙрдХ рдХреЗ рд╕рд╛рде рд╕рдВрджреЗрд╢ рдЬрд┐рд╕реЗ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рд╣реА рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрд╡реЗрджрди рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЬрдм рдХрд╛рд░реНрдп рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рдПрдВрдбрдмреИрдХрдЧреНрд░рд╛рдЙрдВрдбрдЯреИрд╕реНрдХ: рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ 10 рдорд┐рдирдЯ рдХрд╛ рд╕рдордп рджреЗрддрд╛ рд╣реИред

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

рдкреГрд╖реНрдарднреВрдорд┐ рд╡реАрдУрдЖрдИрдкреА рд╡рд░реНрдЧ


рдЖрдЗрдП рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдХреНрд▓рд╛рд╕ рд╡рд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдХреЙрд▓ рдФрд░ рд╕рдВрджреЗрд╢реЛрдВ рдпрд╛ рдЕрдиреНрдп рдШрдЯрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рд╕реЗ рд╕реНрдерд╛рдпреА рдХрдиреЗрдХреНрд╢рди рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЕрднреНрдпрд╛рд╕ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рд░рд┐рдореЛрдЯ рдкреБрд╢ рдХреА рджрдХреНрд╖рддрд╛ рдЕрдХреНрд╕рд░ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ tcp рд╕реЙрдХреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ iOS рдХреЗ рд▓рд┐рдП рдЪрд┐рдиреНрд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ApplicationDidEnterBackground : рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рд▓реМрдЯрдиреЗ рд╕реЗ рдкрд╣рд▓реЗред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрд╡реЗрджрди рдХреЛ рдирд┐рд▓рдВрдмрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рд╕рд┐рд╕реНрдЯрдо 3 рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рд╕рдордп рдХреЗ рд╕реНрд▓рд╛рдЗрд╕ рдЖрд╡рдВрдЯрд┐рдд рдХрд░реЗрдЧрд╛: рдП) рдЬрдм рд╕реЙрдХреЗрдЯ рдкрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ; рдЦ) рдиреЗрдЯрд╡рд░реНрдХ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рдмрджрд▓рддреЗ рд╕рдордп рдЬреЛ рд╕рд░реНрд╡рд░ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╕реЙрдХреЗрдЯ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ; рд╕реА) рдХреЛ-рдЬрд╝рд┐рдВрджрд╛ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рдХреЛрдб рдмреНрд▓реЙрдХ рдореЗрдВ рдЯрд╛рдЗрдорд░ рджреНрд╡рд╛рд░рд╛, рдиреНрдпреВрдирддрдо рд░рдЦ-рд░рдЦрд╛рд╡ рдЕрдВрддрд░рд╛рд▓ 10 рдорд┐рдирдЯ рд╣реИред рдЗрди рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕реНрдерд╛рдиреАрдп рд╕реВрдЪрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рд╕рд░реНрд╡рд░ рд╕рдВрдЪрд╛рд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡реЙрдпрд╕ рдХреНрд▓рд╛рд╕ рдПрдХ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ: рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рд╡реЙрдпрд╕ рдХреНрд▓рд╛рд╕ рдХреЗ рд╕рд╛рде рдХреЛрдИ рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд┐рд╕реНрдЯрдо рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдХреНрд░реИрд╢ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдЧрд╛ред рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ UIApplicationDelegate applicationDidEnterBackground: рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЖрд╡реЗрджрди рд╕реЗ рд▓реМрдЯрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕реЙрдХреЗрдЯ рдХреЛ рд╡реАрдУрдЖрдИрдкреА рдХреЗ рд░реВрдк рдореЗрдВ рдХрдиреЗрдХреНрдЯ рдФрд░ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ : didFishishLaunchingWithOptions: рд╡рд┐рдзрд┐, рдЕрдиреНрдпрдерд╛ рдЖрд╡реЗрджрди рдмрд╕ рдирд┐рд▓рдВрдмрд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

IOS рдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрд┐рд╕ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдореЙрдирд┐рдЯрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдиреЗрдЯрд╡рд░реНрдХ API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕ рдЖрдзрд╛рд░ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрдИ рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рд╣реИрдВред рдЙрдЪреНрдЪрддрдо-рд╕реНрддрд░реАрдп NSMutableURLRequest рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдмрд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП setNetworkServiceType рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ : NSURLNetworkServiceTypeVoIP рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рдеред рдпрджрд┐ рдХрд╛рдо NSInputStream / NSOutputStream рд╕реНрддрд░ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ NSStreamNetworkServiceTypeVoIP рдорд╛рди NSStreamNetworkServiceType рдЧреБрдг рдХреЗ рд▓рд┐рдП рдорд╛рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдореЗрдВ, рдиреЗрдЯрд╡рд░реНрдХ рдкрд░рдд рдХреЛ рдЕрдзрд┐рдХрддрдо рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдирд┐рдпрдорд┐рдд рдмреАрдПрд╕рдбреА рд╕реЙрдХреЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмреАрдПрд╕рдбреА рд╕реЙрдХреЗрдЯреНрд╕ рдХреЛ рд╡реЙрдпрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдПрдкреАрдЖрдИ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ CFStreamCreatePairWithSocket рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╣рд▓реЗ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд┐рдП рдЧрдП рд╕реЙрдХреЗрдЯ рд╕реЗ рд╕реНрдЯреНрд░реАрдо рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдзрд╛рд░рд╛рдУрдВ рдХреЗ kCFStreamNetworkServiceTypeVoIP рдкрд░ kCFStreamNetworkSypeType рдЧреБрдг рд╕реЗрдЯ рдХрд░реЗрдВред

рд╡реЙрдЗрд╕ рд╕реЙрдХреЗрдЯ рдХрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рд▓реМрдЯрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП : didFinishLaunchingWithOptions: рдФрд░ applicationDidEnterBackground: рддрд░реАрдХреЗ (рд╕рд╛рде рд╣реА рд╕рд╛рде рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВрдбрд▓рд░ рд╕реЗ рд▓реМрдЯрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рдЕрдЧрд░ рдпрд╣ рд╕рд░реНрд╡рд░ рд╕реЗ рдлрд┐рд░ рд╕реЗ рдЬреБрдбрд╝ рдЬрд╛рдП), рддреЛ рдЖрдкрдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬреЛ рдЕрдХреНрд╕рд░ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрддрд╛ рд╣реИ, рдпрд╛ рддреЛ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдЕрд▓рдЧ рдереНрд░реЗрдб рдореЗрдВ рд╡рд╛рдЗрдк рд╕реЙрдХреЗрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХрдиреЗрдХреНрд╢рди рдкреВрд░рд╛ рд╣реЛрдиреЗ рддрдХ рдореБрдЦреНрдп рдереНрд░реЗрдб рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ NSConditionLock рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдпрд╣ рдкреЙрдЬрд╝рд┐рдХреНрд╕ рд╕рд╢рд░реНрдд рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рдПрдХ рд╕рд╛рдзрд╛рд░рдг NSLock рдпрд╛ рдкреЙрдЬрд╝рд┐рдХреНрд╕ рдореНрдпреВрдЯреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдПрдХ рдереНрд░реЗрдб рдореЗрдВ рдмреНрд▓реЙрдХ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ рдЕрдирд▓реЙрдХ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХрдиреЗрдХреНрд╢рди рдХреЛрдб:

// <br/>
enum { <br/>
EConnecting,<br/>
EConnected,<br/>
} ;<br/>
<br/>
// , <br/>
NSConditionLock * waitForConnectionLock = nil ;<br/>
<br/>
// , <br/>
// application:didFinishLaunchingWithOptions:, applicationDidEnterBackground: <br/>
// keep-alive <br/>
waitForConnectionLock = [ [ NSConditionLock alloc ] initWithCondition : EConnecting ] ;<br/>
<br/>
// <br/>
[ server performSelectorInBackground : @selector ( connect ) withObject : waitForConnectionLock ] ;<br/>
<br/>
// <br/>
тАж<br/>
// EConnected - <br/>
// - <br/>
if ( [ waitForConnectionLock lockWhenCondition : EConnected beforeDate : timeout ] ) { <br/>
[ waitForConnectionLock unlock ] ;<br/>
// -, , , <br/>
// voip <br/>
[ server markSocketAsVoIP ] ;<br/>
} <br/>
// <br/>
[ waitForConnectionLock release ] ;<br/>
// <br/>
return ;<br/>
<br/>
//----------------- <br/>
// connect <br/>
// , , EConnecting <br/>
[ waitForConnectionLock lock ] ;<br/>
// <br/>
тАж<br/>
// , EConnected <br/>
// <br/>
[ waitForConnectionLock unlockWithCondition : EConnected ] ;

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

рдирд┐рд╖реНрдХрд░реНрд╖


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

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


All Articles