рдЕрд░реЗ @ TheM4hd1 ЁЯШК рдЗрд╕ рдорд╣рд╛рди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж (рдФрд░ Siwa
, рдЬреЛ рдФрд░ рднреА рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рд╣реИ), рдЖрдкрдиреЗ рдЕрдм рддрдХ рдПрдХ рдЕрджреНрднреБрдд рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИред рдФрд░ рдореБрдЭреЗ рд╕рд╛рде рдЯреИрдЧ рдХрд░рдиреЗ рдФрд░ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
2.0
рдХрд░реАрдм рдЖрдиреЗ рдХреЗ рд╕рд╛рде рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдЪреАрдЬреЛрдВ рдХреА рдорд╣рд╛рди рдпреЛрдЬрдирд╛ рдХреНрдпрд╛ рдереА, рдЕрдЧрд░ рдореАрд▓ рдХреЗ рдкрддреНрдерд░ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рдереА рдпрд╛ рд╡рд┐рд╢реЗрд╖ рд╕реБрд╡рд┐рдзрд╛рдПрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рд╕реЛрдЪ рд░рд╣реЗ рдереЗред рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рд╕реБрдЭрд╛рд╡ рд╣реИрдВ рдЬреЛ рдЗрд╕реЗ рдПрдХ рдмрдбрд╝реЗ рдЕрдкрдбреЗрдЯ рдореЗрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:
1) рдЗрди-рдХреЛрдб рдкреНрд░рд▓реЗрдЦрди
2) рдЖрд╕рд╛рди рдЕрдиреБрдорддрд┐ рд╣реИрдВрдбрд▓рд░, рд╕рд┐рдВрдЧрд▓рдЯрди рдореЙрдбрд▓ рдФрд░ рд╕рднреА .shared
рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ рдЦрд╛рддреЗ рдЪрд▓рд╛рдиреЗ рдХреА рдЗрдЬрд╛рдЬрдд рджреЗрддрд╛ рд╣реИ [рдЕрдЧрд░ рдпрд╣ рдареАрдХ рд╣реИ рддреЛ рдореИрдВ рдЖрдЬ рдпрд╛ рдХрд▓ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ]
3) рдЖрд╕рд╛рди рд▓реЙрдЧрд┐рди, рд╕рд╣рд╛рдпрдХ рдЙрдкрдХрд░рдг рдмрдирд╛рдХрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реБрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рдФрд░ рдХреБрдЫ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреЛрдб рдХреЛ private
рдпрд╛ internal
рдХреЗ рдкреАрдЫреЗ рдЫрд┐рдкрд╛рдирд╛
4) рдПрдХ development
рд╢рд╛рдЦрд╛ рдЬрд╣рд╛рдВ рд╣рдо рд╕реНрд╡реАрдХреГрдд _pull request_ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдорд╛рд╕реНрдЯрд░ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рдм рдХреБрдЫ рдмреЗрд╣рддрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ ( 2.0
рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдмрдбрд╝реА рдмрд╛рдд рд╣реИ )
5) рдирд╛рдордХрд░рдг рдкрд░рдВрдкрд░рд╛рдПрдВ, userId
, pk
, userPk
... рдФрд░ рд╡рд░реНрджреА рдкреИрд░рд╛рдореАрдЯрд░ рдирд╛рдореЛрдВ рдХреЛ рдареАрдХ рдХрд░рдирд╛ (рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ completionHandler
рдмрдирд╛рдо completion
рд╕рд╛рде рдмрджрддрд░ рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИ UserReference
рдереЛрдбрд╝реЗ рдЗрд╕реЗ рд╣рд╛рд╣рд╛ рднреА рдмрдирд╛рддрд╛ рд╣реИ), рд╕рд╛рде рд╣реА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ "рд╕реНрд╡рд┐рдлреНрдЯ-рд╡рд╛рдИ" (рдирд╛рдорд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрджрд┐)
6) ~ рд╕реНрд╡рд┐рдлреНрдЯ 5.1, рдХреЛрдИ рднреА? ЁЯдФ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЙрдЧрд┐рди "рд╕рдорд╕реНрдпрд╛рдУрдВ" рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП some Protocol
рдкреИрдЯрд░реНрди рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ ~
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдмрд╕ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ред рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдЖрдкрдХреА рдХреНрдпрд╛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдВ рд╣реИрдВ рдФрд░ рдЖрдк рдХреИрд╕реЗ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╢рд╛рдВрддрд┐ я╕П
рд╣рд╛рдп рд╕реНрдЯреЗрдлрд╛рдиреЛ,
рдореБрдЭреЗ рдЖрдкрдХреА рдорджрдж рдХрд░рдиреЗ рдФрд░ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдХрд╣рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЖрдкрдХреА рднрд╛рдЧреАрджрд╛рд░реА рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдЦреБрд╢ рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рдЕрдЪреНрдЫреА рд╕реБрд╡рд┐рдзрд╛ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрд╕реНрдХрд░рдг 2.0 рдкрд░ рдЬрд╛рдирд╛ ред
рдореИрдВ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ,
рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдЬреИрд╕реА рд╕реБрд╡рд┐рдзрд╛рдПрдБ:
UserReference
рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рд╣реИ рдЬреЛ рдЕрдЪреНрдЫрд╛ рдерд╛редdevelopment
рд╢рд╛рдЦрд╛ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
- рдЖрд╕рд╛рди рдЕрдиреБрдорддрд┐ рд╣реИрдВрдбрд▓рд░, рд╕рд┐рдВрдЧрд▓рдЯрди рдореЙрдбрд▓ рдФрд░ рд╕рднреА
.shared
рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ рдЦрд╛рддреЗ рдЪрд▓рд╛рдиреЗ рдХреА рдЗрдЬрд╛рдЬрдд рджреЗрддрд╛ рд╣реИ [рдЕрдЧрд░ рдпрд╣ рдареАрдХ рд╣реИ рддреЛ рдореИрдВ рдЖрдЬ рдпрд╛ рдХрд▓ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ]
рдореИрдВрдиреЗ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рддрдВрддреНрд░ рдореМрдЬреВрдж рд╣реИ, рдореБрдЭреЗ рдмрд╕ рд╕рднреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдВрдбрд▓рд░ (ЁЯШ▒) рдХреЗ рд▓рд┐рдП рд╣рд░ рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдлрд┐рд░ рдпрд╣ рд╡рд╣реА рдкрд░рд┐рд╡рд░реНрддрди рдХрд░ рд░рд╣рд╛ рд╣реИ Siwa
ред
рдореИрдВрдиреЗ рдЕрдм рддрдХ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рд╣реИ:
APIBuilder
, HttpSettings
рдФрд░ RequestMessageModel
рдЪрд▓реЗ рдЧрдП рд╣реИрдВред рдЕрдм рдЖрдк рд╕реАрдзреЗ APIHandler
рдХреЛ рдХреБрдЫ Settings
рд▓реЗрдХрд░ (рд╡реИрдХрд▓реНрдкрд┐рдХ) delay
, queues
, device
(рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ User-Agent
) рдФрд░ session
( URLSession
) рдкреИрд░рд╛рдореАрдЯрд░ред*Handler
рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдирд╣реАрдВред рдЙрдирдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмрд┐рдВрджреБ рдирд╣реАрдВ рдерд╛ред рдкреНрд░рддреНрдпреЗрдХ *Handler
рдХреЛ рдЕрдм APIHandler
рдЙрджрд╛рд╣рд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ( UserHandler
is .accounts
, FeedHandler
is .feeds
, рдЖрджрд┐ ред), рд╡реЗ рдЖрд▓рд╕реА рдЧреБрдг рд╣реИрдВ рдФрд░ рд╡реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИрдВред рдореИрдВрдиреЗ HttpHelper
рдФрд░ PaginationHelper
(рдЙрд░реНрдл PaginationHandler
рдореЗрдВ 1.*
) рдХреЗ рд▓рд┐рдП рднреА рдРрд╕рд╛ рд╣реА рдХрд┐рдпрд╛ рд╣реИред рдпрд╣ рд╕рднреА рдХреЛрдб рджреЛрд╣рд░рд╛рд╡ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╣рд░ рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ APIHandler
рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдерд╛, рдФрд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рд╡рд┐рднрд┐рдиреНрди рд▓реЙрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХрд╛рдзрд┐рдХ APIHandler
s рдХреЗ рд╕рд╛рде " рдорд▓реНрдЯреАрдЯрд╛рд╕реНрдХрд┐рдВрдЧ "редAPIHandler
рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдПрдХ рдПрдХрд▓ рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: authenticate(with request: Login.Request, completionHandler: escaping (Result<(Login.Response, APIHandler), Error>) -> Void)
, рдЬрд╣рд╛рдВ Login.Request
рдПрдХ enum
рдЬреЛ рдпрд╛ рддреЛ SessionCache
рдЖрдЗрдЯрдо (рдЬреЛ 1.*
SessionCache
), рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ "рд╡рд╛рдкрд╕ рд▓реЙрдЧ рдЗрди" рдХреЗ рд▓рд┐рдП рдФрд░ Siwa
(рднрд╡рд┐рд╖реНрдп рдореЗрдВ), рдпрд╛ LoginWebView
(рдЙрд░реНрдл InstagramLoginWebView
) тАФ рдФрд░ рдпрд╣ рдЕрдм рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рд╕рдЪрдореБрдЪ рдПрдХ рдХреЙрд▓ рдФрд░ рдЖрдкрдХрд╛ рдХрд╛рдо рд╣реЛ рдЧрдпрд╛ред рдпрд╣ Siwa
рдФрд░ SwiftyInsta
рдмреАрдЪ рд╕рднреА рдХреЛрдб рджреЛрд╣рд░рд╛рд╡ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ: рдпрджрд┐ рдЖрдк "рд╣реЗрдбрд▓реЗрд╕" рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ Siwa
рдФрд░ sessionCache
, рдЕрдиреНрдпрдерд╛ _web рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ view_ SwiftyInsta
редpk
рдпрд╛ username
рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╣рд░ рдПрдХ рд╡рд┐рдзрд┐ рдЕрдм рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ UserReference
рдЖрдЗрдЯрдо рд▓реЗрддреА рд╣реИредрдореИрдВ рдХрд▓ рддрдХ рд╕рдм рдХреБрдЫ рдЦрддреНрдо рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдлрд┐рд░ рдореИрдВ рдЗрд╕реЗ рдЖрдЧреЗ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП development
рддрдХ рдмрдврд╝рд╛ рд╕рдХрддрд╛ рд╣реВрдВред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реВрдВ
рдореИрдВ рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдФрд░ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реВрдВред
рдкрд░рд┐рд╡рд░реНрддрди рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рд▓рдЧрддреЗ рд╣реИрдВ, development
рд╢рд╛рдЦрд╛ рднреА рдЬреЛрдбрд╝реА рдЧрдИред
рдореИрдВ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдФрд░ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╕реВрдЪреА рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреИрд╕реЗ рдХрд┐ Logger
рдФрд░ рдЖрджрд┐ред
рдФрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдпрд╣ рдирдИ рд╡рд┐рдзрд┐ рд╕рднреА 3 рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИ?
рдореИрдВрдиреЗ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрди рдХрд░ рд▓рд┐рдП рд╣реИрдВред рдореИрдВ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рдПрдХ _pull рдЕрдиреБрд░реЛрдз_ рджрдмрд╛рдПрдВред
рдФрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдпрд╣ рдирдИ рд╡рд┐рдзрд┐ рд╕рднреА 3 рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИ?
рдЕрднреА рдпрд╣ _web login_ рдФрд░ Siwa
рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ (рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ Siwa
*.shared
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ - рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рд╕рд╣реА now , рдЗрд╕ рдмреАрдЪ, рдЖрдк рдХреЗрд╡рд▓ _web рд▓реЙрдЧрд┐рди_ рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ username
+ password
рдкреНрд░рдорд╛рдгреАрдХрд░рдг SwiftyInsta
рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рдерд╛, tbhред рдФрд░ рдЪреВрдВрдХрд┐ рдЖрдкрдиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП Siwa
рдореЗрдВ рдПрдХ рдЕрджреНрднреБрдд рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдореБрдЦреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реЗ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд┐рд░реНрдл рдореЗрд░реА рд░рд╛рдп рд╣реИ)ред
рдореЗрд░рд╛ рджреГрдврд╝ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ username
+ password
рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЗрд╕реЗ рд╢реБрд░реВ рд╕реЗ рд╣реА рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрд╛рдиреА Siwa
), рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдЬрдЯрд┐рд▓ рдХрд┐рдП рдмрд┐рдирд╛, рдФрд░ рдХреЛрдб рдЖрдзрд╛рд░реЛрдВ рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд┐рдП рдмрд┐рдирд╛ред рдлрд┐рд░ рд╕реЗ, рдмрд╕ рдореЗрд░реА рд░рд╛рдпред
рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рднреА рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
(рдореИрдВрдиреЗ рдЯрд╛рдЗрдкреЛ рдФрд░ рдЧрд▓рддрд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЬрдм рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рджреЗрдЦрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреБрдЫ рддрд░реАрдХреЛрдВ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЕрдЬреАрдм POST
рд╡рд╛рд▓реЗ, рдЕрднреА рднреА рдЗрд░рд╛рджрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдиреНрд╣реЛрдВрдиреЗ 1.*
рдореЗрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ 2.0
рдореЗрдВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред Idk)
@sbertix @canaksoy
рдЕрдзрд┐рдХ рд╡рд┐рдЪрд╛рд░? рдХреЛрдИ рднреА рдЬрд╛рдирдХрд╛рд░реА?
watchOS
, tvOS
рдФрд░ macOS
рдореИрдВ рдорд▓реНрдЯреА рдУрдПрд╕ рд╕рдкреЛрд░реНрдЯ #61 . рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛
рдореИрдВ рдмрд╛рдж рдореЗрдВ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред
- рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓рд╛ рдореАрдбрд┐рдпрд╛ [рд╡реАрдбрд┐рдпреЛ рдпрд╛ рдЫрд╡рд┐]
- рдирд┐рдореНрди рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓рд╛ рдореАрдбрд┐рдпрд╛ [рд╡реАрдбрд┐рдпреЛ рдпрд╛ рдЫрд╡рд┐]
- рдореАрдбрд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЫрд╡рд┐ рдердВрдмрдиреЗрд▓
- рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рдХрд╛рд░реНрдп (рдХреБрд▓ рдкрд╕рдВрдж, рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рдЧрдгрдирд╛, ...)
- рдЖрд╕рд╛рди рддрд░реАрдХреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓реА рд╡рд┐рд▓рдВрдм рд╕реБрд╡рд┐рдзрд╛ (рдЗрд╕реЗ рд░рди-рдЯрд╛рдЗрдо рдореЗрдВ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛, рдпрд╛ рдЗрд╕реЗ рдЪрд╛рд▓реВ-рдмрдВрдж рдХрд░рдирд╛)ред
- рдФрд░ рдЖрджрд┐....
рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ ... рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдБ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдЙрд╕реЗ рдпреБрдХреНрддрд┐рд╕рдВрдЧрдд рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛?
рд╕реАрдзреЗ рдбрд┐рдХреЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ (рдЬреЛ raw
рд╕рдВрдкрддреНрддрд┐ рдХреА рддрд░рд╣ рдмрди рд╕рдХрддреА рд╣реИ) рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рд╕рд╛рдл struct
рдХреНрдпреЛрдВ рдирд╣реАрдВ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкрд╣рд▓реЗ рд╕реЗ рд╕реНрд╡рд░реВрдкрд┐рдд рддрд╛рд░реАрдЦ рдХреЗ рд╕рд╛рде, рд╡рд┐рднрд┐рдиреНрди рдЧреБрдгреЛрдВ рд╡рд╛рд▓реА рдЫрд╡рд┐рдпрд╛рдВ (рдЬреИрд╕реЗ рдЖрдкрдиреЗ рдХрд╣рд╛), рдЖрдВрдХрдбрд╝реЗ рдЙрдирдореЗрдВ рдирд┐рд╣рд┐рдд ... рдЖрджрд┐ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП MediaModel
рдХреЛ рдзрдХреНрдХрд╛ рджреЗрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдХреБрдЫ рдХрд░реАрдм рд▓реМрдЯрдирд╛ ...
public struct MediaModel: Codable {
/// `MediaModelJSON` would be equal to current `MediaModel`.
public let rawResponse: MediaModelJSON
// Accesories
public var pk: Int! { return rawResponse.pk }
public lazy var date: Date! = { return self.rawRespone.takenAt.flatMap { Date(timeIntervalSince1970: $0) }}()
/* etc */
}
рд╣рд╛рдБ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рд╣рдореЗрдВ рд╡реИрд╕реЗ рднреА рдореЙрдбрд▓реЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдореЗрдВ рдХреБрдЫ рдЧреБрдг рдЧрд╛рдпрдм рд╣реИрдВ рдФрд░ рдореЙрдбрд▓ рдмреЗрдХрд╛рд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдмреАрдЪ рдХрдИ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╣реИрдВ рдФрд░ ....
рд╣рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореЙрдбрд▓реЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╡реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдбреЗрдЯрд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВред
swiftlint
рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдирд┐рдпрдореЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?
рдЗрд╕рдХреЗ рд▓рд┐рдП Travis CI
рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреВрд░реЗ рдХреЛрдбрдмреЗрд╕ рдХреЛ рддрджрдиреБрд╕рд╛рд░ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрдореНрд╣реЛред
рддреБрдо рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реЛ? @TheM4hd1