Swiftyinsta: Π”ΠΎΡ€ΠΎΠ³Π° ΠΊ Β«2.0Β»

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 21 июл. 2019  Β·  8ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: TheM4hd1/SwiftyInsta

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ @ TheM4hd1 😊 спасибо Π·Π° созданиС этой Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ (ΠΈ Siwa , Ρ‡Ρ‚ΠΎ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ впСчатляСт), Π²Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π»ΠΈ ΠΏΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ. И спасибо, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» ΠΌΠ½Π΅ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ ΠΈ ΠΏΠΎΠΌΠΎΡ‡ΡŒ.

Π‘ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ 2.0 ΠΌΠ½Π΅ Π±Ρ‹Π»ΠΎ интСрСсно, ΠΊΠ°ΠΊΠΎΠ²Π° Π±Ρ‹Π»Π° вСликая схСма Π²Π΅Ρ‰Π΅ΠΉ, Π±Ρ‹Π»ΠΈ Π»ΠΈ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π²Π΅Ρ…ΠΈ ΠΈΠ»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π΄ΡƒΠΌΠ°Π»ΠΈ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ я Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя использовал это, Ρƒ мСня Π΅ΡΡ‚ΡŒ нСсколько ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π² Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ:

1) докумСнтация Π² ΠΊΠΎΠ΄Π΅
2) Π±ΠΎΠ»Π΅Π΅ простой ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, ΠΎΡ‚ΠΊΠ°Π· ΠΎΡ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ Singleton ΠΈ всСх .shared , Ρ‡Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ нСсколько ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записСй ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ [я ΠΌΠΎΠ³Ρƒ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ этим сСгодня ΠΈΠ»ΠΈ Π·Π°Π²Ρ‚Ρ€Π°, Ссли всС Π² порядкС] βœ“
3) Π±ΠΎΠ»Π΅Π΅ простой Π²Ρ…ΠΎΠ΄ Π² систСму, оптимизация процСсса Π·Π° счСт создания аксСссуаров ΠΈ сокрытия Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ шаблонного ΠΊΠΎΠ΄Π° Π·Π° private ΠΈΠ»ΠΈ internal βœ“
4) Π²Π΅Ρ‚ΠΊΡƒ development ΠΊΡƒΠ΄Π° ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π½Ρ‹Π΅ _pull request_, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ мастСру ( 2.0 β€” это, бСзусловно, большоС Π΄Π΅Π»ΠΎ 😊) βœ“
5) соглашСния ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ…, исправлСниС userId , pk , userPk ... ΠΈ ΠΈΠΌΠ΅Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΡƒΠ½ΠΈΡ„ΠΎΡ€ΠΌΡ‹ (я знаю, Ρ‡Ρ‚ΠΎ сдСлал это Ρ…ΡƒΠΆΠ΅ с completionHandler ΠΏΡ€ΠΎΡ‚ΠΈΠ² completion , Π½ΠΎ я Ρ‡ΡƒΠ²ΡΡ‚Π²ΡƒΡŽ, Ρ‡Ρ‚ΠΎ UserReference Π΄Π΅Π»Π°Π΅Ρ‚ это Π΄Π°ΠΆΠ΅ Ρ…Π°Ρ…Π°Ρ…Π°), Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ «быстрыми» (с использованиСм ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ Ρ‚. Π΄.) βœ“
6) ~Swift 5.1, ΠΊΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ? πŸ€” МнС каТСтся, Ρ‡Ρ‚ΠΎ шаблон some Protocol ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Β«ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со Π²Ρ…ΠΎΠ΄ΠΎΠΌΒ»~

Волько Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ΄Π΅ΠΈ. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π΄Π°ΠΉΡ‚Π΅ ΠΌΠ½Π΅ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ ΠΈ ΠΊΠ°ΠΊ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΡ‡ΡŒ.
ΠœΠΈΡ€ ✌️

ВсС 8 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ Π‘Ρ‚Π΅Ρ„Π°Π½ΠΎ,
Π― Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ спасибо Π²Π°ΠΌ Π·Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΈ прСдоставлСниС этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ вашСго участия, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ мСня счастливым.
Π­Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ идСя β€” ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π²Π΅Ρ€ΡΠΈΡŽ 2.0 с Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌΠΈ функциями ΠΈ измСнСниями.
Π― Π΄ΡƒΠΌΠ°Π» ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ,
Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅:

  • МСдиа высокого качСства [Π²ΠΈΠ΄Π΅ΠΎ ΠΈΠ»ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅]
  • МСдиа Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ качСства [Π²ΠΈΠ΄Π΅ΠΎ ΠΈΠ»ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅]
  • ΠœΠΈΠ½ΠΈΠ°Ρ‚ΡŽΡ€Π° изобраТСния для ΠΌΠ΅Π΄ΠΈΠ°
  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ статистики (подсчСт ΠΎΠ±Ρ‰Π΅Π³ΠΎ количСства Π»Π°ΠΉΠΊΠΎΠ², ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², ...)
  • Π‘ΠΎΠ»Π΅Π΅ гибкая функция Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ (Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΎ врСмя выполнСния ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅-Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅) Π±ΠΎΠ»Π΅Π΅ простыми способами.
  • ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅....
    Ρ‡Ρ‚ΠΎ экономит ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, это всСго лишь ΠΈΠ΄Π΅ΠΈ.
    ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° растСт, проводя врСмя, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π½ΡƒΠΆΠ½Π° докумСнтация .
    Π½Π°ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ соглашСния ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ…, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ошибок. ΠΈ ΠΌΠ½Π΅ нравится идСя UserReference которая Π±Ρ‹Π»Π° Ρ…ΠΎΡ€ΠΎΡˆΠ°.
    development Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Π²Π΅Ρ‚ΠΊΠ°
    ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΠ³Π»Π°ΡΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ внСсти свой Π²ΠΊΠ»Π°Π΄ ΠΈ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ идСями здСсь, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½ΠΎΠΉ.
    Π•Ρ‰Π΅ Ρ€Π°Π· спасибо.
    Π‘ Π£Π²Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ.
  1. Π±ΠΎΠ»Π΅Π΅ простой ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, ΠΎΡ‚ΠΊΠ°Π· ΠΎΡ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ Singleton ΠΈ всСх .shared , Ρ‡Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ нСсколько ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записСй ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ [я ΠΌΠΎΠ³Ρƒ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ этим сСгодня ΠΈΠ»ΠΈ Π·Π°Π²Ρ‚Ρ€Π°, Ссли всС Π² порядкС]

Π― Π½Π°Ρ‡Π°Π» Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ этим. ЀактичСский ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π³ΠΎΡ‚ΠΎΠ², ΠΌΠ½Π΅ просто Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ для всСх Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² (😱), Π° Π·Π°Ρ‚Π΅ΠΌ всС, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ, это внСсти Ρ‚Π΅ ΠΆΠ΅ измСнСния Π² Siwa .

Π§Ρ‚ΠΎ я сдСлал Π΄ΠΎ сих ΠΏΠΎΡ€:

  • APIBuilder , HttpSettings ΠΈ RequestMessageModel исчСзли. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ создаСтС экзСмпляр APIHandler Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Settings Π±Π΅Ρ€ΡƒΡ‚ (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ) delay , queues , device (автоматичСски обновляя User-Agent ) ΠΈ session ( URLSession ).
  • НСт большС ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² *Handler . Π’ Π½ΠΈΡ… Π½Π΅ Π±Ρ‹Π»ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ смысла. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ *Handler Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½ Ρ‡Π΅Ρ€Π΅Π· экзСмпляр APIHandler ( UserHandler β€” это .accounts , FeedHandler β€” это .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 просмотр_ Π² SwiftyInsta .
  • ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ Π»ΠΈΠ±ΠΎ _user_ pk Π»ΠΈΠ±ΠΎ username Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ вмСсто этого ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ элСмСнт UserReference .

Π― Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒ всС ΠΊ Π·Π°Π²Ρ‚Ρ€Π°ΡˆΠ½Π΅ΠΌΡƒ дню, Π° Π·Π°Ρ‚Π΅ΠΌ я смогу довСсти Π΅Π³ΠΎ Π΄ΠΎ development для дальнСйшСго тСстирования. Π― Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π²Π·Π²ΠΎΠ»Π½ΠΎΠ²Π°Π½ πŸ’ͺ
Π― с Π½Π΅Ρ‚Π΅Ρ€ΠΏΠ΅Π½ΠΈΠ΅ΠΌ ΠΆΠ΄Ρƒ Π²Π°ΡˆΠΈΡ… мыслСй ΠΈ ΠΌΠ½Π΅Π½ΠΈΠΉ.

ИзмСнСния каТутся ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌΠΈ, Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​вСтка development .
Π― Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ Π½Π°Π΄ списком Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ инструмСнтов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Logger ΠΈ Ρ‚. Π΄.
А Ρ‡Ρ‚ΠΎ касаСтся Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, этот Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ всС 3 Π²ΠΈΠ΄Π° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ?

  1. Π’Ρ…ΠΎΠ΄ Π² частный API
  2. Π’Π΅Π±-Π»ΠΎΠ³ΠΈΠ½
  3. Π‘ΠΈΠ²Π°

Π― Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ» со всСми измСнСниями Π²Ρ‹ΡˆΠ΅. Π― Ρ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΡŽ Π΅Π³ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽ _pull request_.

А Ρ‡Ρ‚ΠΎ касаСтся Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, этот Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ всС 3 Π²ΠΈΠ΄Π° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ?

ΠŸΡ€ΡΠΌΠΎ сСйчас ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ _Π²Π΅Π±-Π»ΠΎΠ³ΠΈΠ½_ ΠΈ Siwa (тСорСтичСски, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Siwa ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ *.shared , поэтому Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ, Π½ΠΎ я ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ скорСС, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ сСйчас , Ρ‚Π΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ _web login_). Π― Ρ‡ΡƒΠ²ΡΡ‚Π²ΡƒΡŽ, Ρ‡Ρ‚ΠΎ аутСнтификация username + password прСдоставлСнная с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ SwiftyInsta Π½Π΅ соотвСтствуСт Π½ΠΎΠΌΠΈΠ½Π°Π»Ρƒ, tbh. И ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π»ΠΈ ΠΏΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ для Π½Π΅Π³ΠΎ Π² Siwa , я Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‡ΡƒΠ²ΡΡ‚Π²ΡƒΡŽ, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· основной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ (Π½ΠΎ это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅).
Π― Ρ‚Π²Π΅Ρ€Π΄ΠΎ Π²Π΅Ρ€ΡŽ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ username + password Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это с самого Π½Π°Ρ‡Π°Π»Π° (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Siwa ), Π½Π΅ услоТняя всС ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΈ Π½Π΅ дублируя основы ΠΊΠΎΠ΄Π°. ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅.
Π‘ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ успСхом Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ снова 😊

(Π― пытался ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ ΠΈ ошибки, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΌΠ΅Ρ‡Π°Π» ΠΈΡ…, Π½ΠΎ ΠΌΠ½Π΅ каТСтся, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, странныС POST β€” ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΎΡΡŒ. Они Π½Π΅ сработали Π² 1.* Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ Π½Π΅ Π² 2.0 . Π˜Π”Πš)

@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

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ

Π‘ΠΌΠ΅ΠΆΠ½Ρ‹Π΅ вопросы

sbertix picture sbertix  Β·  27ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

reefer picture reefer  Β·  18ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

biox86 picture biox86  Β·  12ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

rmelnik7777 picture rmelnik7777  Β·  19ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

trentona picture trentona  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ