SPPermission Library рдФрд░ hater рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ

- " рдХрд┐рд╕реА рддрд░рд╣ рдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА, рдХрд┐рд╕реА рдиреЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ ... рд╣реИрдЯрд░ рдХрд╛ рдЗрд╕рд╕реЗ рдХреНрдпрд╛ рд▓реЗрдирд╛-рджреЗрдирд╛ рд╣реИ?" рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдбреЗрд╡рд▓рдкрд░, рдореБрдЭреЗ рдЗрд╕ рд▓реЗрдЦ рдкрд░ рд╕рдордп рдмрд┐рддрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? "

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

рдЪрд▓реЛ рдореБрдЦреНрдп рдмрд╛рдд рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ - рд░реАрдмреНрд░рд╛рдВрдбрд┐рдВрдЧ! рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ SPPermission рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдорд╛рдорд▓рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рджреВрд╕рд░реЗ рд╕рдкреНрддрд╛рд╣ рдХреЗ рд░реВрдк рдореЗрдВ рдЧрд┐рдЯрд╣рдм рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд▓рдЯрдХрд╛ рд╣реБрдЖ рд╣реИред рд╣рд╛рдВ, рдРрд╕рд╛ рдПрдХ рд╢реАрд░реНрд╖ рд╣реИ, рдпрд╣ рд╕рд╢рд░реНрдд рд╣реИ, рд▓реЗрдХрд┐рди рджрд┐рд▓рдЪрд╕реНрдк рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдЕрднреА рднреА рд╡рд╣рд╛рдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред рд▓реЗрдЦрдХ (рдПрдХ рд░рд╣рд╕реНрдпрдордп рд╡реНрдпрдХреНрддрд┐) рдиреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреГрд╖реНрда рдкрд░ рдмреИрдирд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛, рдПрдХ рд╡рд┐рд╡рд░рдг, рдбреЛрдиреЗрдЯ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рднрд╛рдЧ рдбрд╛рд▓рд╛ред рдХреНрдпрд╛ рдПрдХ рд▓рд╛рд▓рдЪреА!

рд▓реЗрдХрд┐рди рдЪрд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╣реА рдЖрдЧреЗ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ:



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

рд╕реНрдерд╛рдкрд┐рдд


рдЖрдк рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдХреЗрд╡рд▓ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рд╕рдВрд░рдЪрд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рд╣реИред рдФрд░ рдЖрдк SocoaPods рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдХрд╡рд╛рд╕ рд╕реЗ рдкреАрдбрд╝рд┐рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗред рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ, рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рд╡рд┐рдкрдХреНрд╖реЛрдВ рдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ред рдкреЙрдб рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд╛рдЗрди рдЬреЛрдбрд╝реЗрдВ:

pod 'SPPermission' 

рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЕрджреНрдпрддрди рдХрд░реЗрдВред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдпрд╣ рд╕рднреА рдЖрдиреЗ рд╡рд╛рд▓рд╛ рд╕рдмрд╕реЗ рдХрдард┐рди рдХрджрдо рд╣реИ)

рдЙрдкрдпреЛрдЧ


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

 import SPPermission 

рдЕрдм ViewDidAppear рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд░реНрдорд╛рдг рдХреЛ рдХрд╣рддреЗ рд╣реИрдВ:

 override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) SPPermission.Dialog.request( with: [.camera, .calendar, .notification], on: self ) } 

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

рдЕрдиреБрдХреВрд▓рди


рдпрджрд┐ рдЖрдк, рдкреНрд░рд┐рдп рдорд┐рддреНрд░, рдЯреЗрдмрд▓ рдпрд╛ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ, рддреЛ рдбреЗрд▓реАрдЧреЗрдЯ рдФрд░ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рд╢рдмреНрдж рдбрд░реЗрдВрдЧреЗ рдирд╣реАрдВред рдФрд░ рдпрджрд┐ рдЖрдк рдкреИрдЯрд░реНрди рдХреЗ рдкреНрд░рддрд┐ рдереЛрдбрд╝реЗ рдЬреБрдиреВрдиреА рд╣реИрдВ, рддреЛ рдЖрдк рднреА рд░реЛрдПрдБрдЧреЗ:

- тАЬ рд╡рд╛рд╣! рдкреНрд░реЛрдЯреЛрдХреЙрд▓-рдЖрдзрд╛рд░рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг! "

рдЖрдк рджреЗрдЦрд┐рдпреЗ! рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ? рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдХрд╣рд╛ рдХрд┐ рдпрд╣ рдордЬрд╛рдХрд┐рдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВ рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рдкрдврд╝рддрд╛ рд╣реВрдВ, рддреЛ рдЪрд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред

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

 @objc public protocol SPPermissionDialogDataSource: class { @objc optional var dialogTitle: String { get } @objc optional var dialogSubtitle: String { get } @objc optional var dialogComment: String { get } @objc optional var allowTitle: String { get } @objc optional var allowedTitle: String { get } @objc optional var bottomComment: String { get } @objc optional var showCloseButton: Bool { get } @objc optional func name(for permission: SPPermissionType) -> String? @objc optional func description(for permission: SPPermissionType) -> String? @objc optional func image(for permission: SPPermissionType) -> UIImage? } 

рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд╣рд░ рдХрд┐рд╕реА рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреЗ рдирд╛рдо рдмреЛрд▓ рд░рд╣реЗ рд╣реИрдВред рдЪрд▓реЛ рдЕрд╕реНрдкрд╖реНрдЯ рд▓реЛрдЧреЛрдВ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВ: bottomComment рдФрд░ showCloseButton ред

рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдбрд╛рдпрд▓реЙрдЧ рдмреЙрдХреНрд╕ рдХреЗ рддрд╣рдд рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдкреНрд░реЙрдореНрдкреНрдЯ " рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд╛рдЗрдк " рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:



рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░, showCloseButton , рд╕реНрдХреНрд░реАрди рдХреЗ рдКрдкрд░реА рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рдмрдВрдж рдмрдЯрди рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рддрд╕реНрд╡реАрд░ рднреА рд╣реИ:



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

 func description(for permission: SPPermissionType) -> String? { if permission == .calendar { return "" } lse { return nil } } 

рдпрд╣ рдореБрдЦреНрдп рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ DataSource рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ:

 SPPermission.Dialog.request( with: [.camera, .calendar, .microphone, .notification], on: self, dataSource: self ) 

рдкреНрд░рддрд┐рдирд┐рдзрд┐


рдпрд╣ рдЖрдкрдХреЛ рдХреБрдЫ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЖрдЗрдП рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рджреЗрдЦреЗрдВ:

 @objc public protocol SPPermissionDialogDelegate: class { @objc optional func didHide() @objc optional func didAllow(permission: SPPermissionType) } 

рд╣рдореНрдо, рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ ... рдФрд░ рд╣рд╛рд▓рд╛рдВрдХрд┐, рдФрд░ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП?) рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдмрддрд╛рдиреЗ рд▓рд╛рдпрдХ рд╣реИ рдХрд┐ рдХреМрди рд╕реА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдлрд╝рдВрдХреНрд╢рди рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рдирд╛рдо рдмреЛрд▓ рд░рд╣реЗ рд╣реИрдВред рдореИрдВ рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ - рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдирд╣реАрдВ рднреВрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП:

 SPPermission.Dialog.request( with: [.camera, .calendar, .microphone, .notification], on: self, delegate: self dataSource: self ) 

рдЕрдиреБрдорддрд┐




рдпрджрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕реБрдЭрд╛рд╡ рдпрд╛ рдЖрд▓реЛрдЪрдирд╛рдПрдВ рд╣реИрдВ, рддреЛ рд╕реВрдЪреА рдХреЛ рдлрд┐рд░ рд╕реЗ рднрд░рдирд╛ рд╣реЛрдЧрд╛, рдпрд╣ рдпрд╣рд╛рдВ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ

рдмрди


рдпрд╣ рдПрдХ рдЙрдкрдпреЛрдЧреА рдХрд╛рд░реНрдп рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ:

 func isAllow(_ permission: SPPermissionType) -> Bool 

рдпрд╣ рдЖрдкрдХреЛ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдЕрдиреБрдорддрд┐ рджреА рд╣реИ рдпрд╛ рдирд╣реАрдВред рд╡рдлрд╛рджрд╛рд░реА рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдмрдВрдбрд▓ рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЙрдкрдпреЛрдЧ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред рдФрд░ 3 рд╕реЗ рдЕрдзрд┐рдХ рдкреВрд░реНрд╡ рдирд╣реАрдВ! рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореБрдЭреЗ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдЬрд╣рд╛рдБ рдореБрдЭреЗ рдЕрдзрд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ) рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

 let isAvailableCamera = SPPermission.isAllow(.amera) 

рдЕрдкрдбреЗрдЯ рдХреНрдпреЛрдВ?


рдкреБрд░рд╛рдирд╛ рд╕рдВрд╕реНрдХрд░рдг рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рдерд╛, рдФрд░ рд╢рд╛рдпрдж рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдпрд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рдерд╛:



рджрд░рдЕрд╕рд▓, рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрдХ рд╕рд╛рд▓ рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛ (рдареАрдХ рд╣реИ, рдпрд╣ рдвреЛрдВрдЧ рди рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдиреЗ рдпрд╣ рдирд╣реАрдВ рд╕рдордЭрд╛ рдХрд┐ рдореИрдВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рд▓реЗрдЦрдХ рдерд╛), рд▓реЗрдХрд┐рди рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореБрдЭреЗ рдПрдХ рдкрддреНрд░ рдорд┐рд▓рд╛ рд╣реИ ... рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЗрд╕ рдХрд╣рд╛рдиреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдпрд╣рд╛рдБ рдЧрдВрднреАрд░ рд╡реНрдпрд╡рд╕рд╛рдп рдХрд░ рд░рд╣реЗ рд╣реИрдВ!

рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░


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

рддреЛ рдХрд╣рд╛рдиреА рдХреНрдпрд╛ рд╣реИ?


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

- тАЬ рдкреНрд░рд┐рдп рдорд┐рддреНрд░, рдореИрдВ рдЕрдм рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛, рдореЗрд░реЗ рдкрд╛рд╕ рдЦрд╛рд▓реА рд╕рдордп рдирд╣реАрдВ рд╣реИред рдСрд▓ рдж рдмреЗрд╕реНрдЯ тАЭ

рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рд┐рд░реНрдл рд╕рд╣реА рд▓рд┐рдЦрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдЬрд╝рдмрдЧреЙрд░реНрд╕реНрдХ рдореЗрдВред рдФрд░ рдореИрдВ рднреВрд▓ рдЧрдпрд╛ред рдЦрд╕рдЦрд╕ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рд▓рдЧрднрдЧ рдПрдХ рджрд░реНрдЬрди рджреЗрдЦрд╛ !!! рд╕реНрдкреИрдо рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рдВрджреЗрд╢ред рдЦреИрд░, рд╕рдм рдХреБрдЫ, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреБрдЫ рдкреЛрд░реНрдЯрд▓ рдиреЗ рд╡рд┐рдЪрд▓рди рдХрд┐рдпрд╛ рд╣реИ, рдЕрдм рдореИрдВ рдЙрдирдХреЗ рдореЗрд▓рд┐рдВрдЧ рд╕реЗ рдХреИрд╕реЗ рд╣рдЯрд╛рдКрдВ! рдФрд░ nnnet ... рдЙрд╕реА рдЖрджрдореА рдиреЗ рдореБрдЭреЗ рд▓рд┐рдЦрд╛ рдерд╛, рдХреЗрд╡рд▓ рдЗрд╕ рдмрд╛рд░ рдЧреБрд╕реНрд╕реЗ рдореЗрдВред рдЕрдХреНрд╖рд░реЛрдВ рдореЗрдВ рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореИрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рд▓реЗрдЦрдХ рдирд╣реАрдВ рд╣реВрдВ (рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛ рдирд╣реАрдВ рд╕рдХрддрд╛), рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореЗрд░реЗ рдЬреИрд╕реЗ рд▓реЛрдЧ рд╕рдмрд╕реЗ рднрдпрд╛рдирдХ рд▓реЛрдЧ рд╣реИрдВ (рдФрд░ рд╣рдореЗрдВ рдЧрд┐рдЯрд╣рдм рдкрд░ рдкрдВрдЬреАрдХрд░рдг рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ), рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореБрдЭреЗ рдЕрдкрдиреЗ рдмреЗрдХрд╛рд░ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреИрд╕реЗ рдЪрд╛рд╣рд┐рдПред рдкреИрд╕рд╛? рдкреБрд░рд╛рдиреЗ рдкреЗрдЬ рдкрд░ рдбреЛрдирдЯ рдлреЙрд░реНрдо рднреА рдирд╣реАрдВ рдерд╛ред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдмрд╛рдд рд╕рдордЭ рдореЗрдВ рдЖ рдЧрдИ, рд╡рд╣ рдЖрджрдореА рд╕рд┐рд░реНрдл рдЧреБрд╕реНрд╕реЗ рдореЗрдВ рдерд╛ред

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

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

тАЬ рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╢реБрд░реВ рдХреА рд╣реИ рдФрд░ рдореИрдВ рдкреНрд░рд▓реЗрдЦрди рдХреЛ рд╕рдордЭрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ред рдмрд╛рдп тАЭ

рдореИрдВ рдмрд╣реБрдд рджреЗрд░ рддрдХ рд╣рдВрд╕рддрд╛ рд░рд╣рд╛ред

рд╣рдо рдЦрддреНрдо рдХрд░рддреЗ рд╣реИрдВ


рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╢реИрдХреНрд╖рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЪреМрдХрд╕ рдХреЗ рд▓рд┐рдП рдореИрдВ рд╕рдордп рдХреЗ рд╕рд╛рде рд▓рд┐рдВрдХ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛- рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд╕рд╛рде рдЪреВрдХ (рдореИрдВ рдИ-рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рд╕реЗ рдЕрдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрдВрдбреЗрдВрдЯ рдФрд░ рд░рдВрдЧреЛрдВ рдХреЛ рдЪрд╛рдЯрддрд╛ рд╣реВрдВ) рдФрд░ рдПрдХ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдЬреЛ рдпрд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд рд╕рдм рдХреБрдЫ рджрд┐рдЦрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗред

рдирдИ рд╕реНрд╡рд┐рдлреНрдЯ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╕рдлрд▓ рдкрд▓рд╛рдпрди!

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


All Articles