EasySwift iOS🍏
3.03K subscribers
269 photos
8 videos
394 links
ВсС самоС интСрСсноС Π² ΠΌΠΈΡ€Π΅ iOS Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ πŸ§‘πŸ»β€πŸ’»

ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΈΠ»ΠΈ Π½ΠΎΠ²ΠΎΡΡ‚ΡŒ: @EasySwiftBot

По всСм вопросам ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ @itereznikov
Download Telegram
MVVM + POP для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со слоТным ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ View (ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: UIViewController β€” это View) ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ ViewModel ΠΈ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Π½Π΅Π³ΠΎ.

ViewModel : ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ всСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… для использования View. ViewModel ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² сСбС модСль

МодСль:  модСль Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏ значСния

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ/ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹/Абстракция β€” всС это относится ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΈΠ΄Π΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π·Π°Π΄Π°Ρ‡.

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ Π² Swift Π½Π° самом Π΄Π΅Π»Π΅ Π΄Π°ΡŽΡ‚ большС возмоТностСй, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ для этого ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Protocols позволяСт ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄. НапримСр. Π£ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ для ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… классов, пСрСчислСний ΠΈ Ρ‚. Π΄. ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊ Π½Π΅ΠΌΡƒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π±Π΅Π· создания подкласса.

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅ наслСдованиС. Π›ΠΈΠ±ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ наслСдуСтся ΠΎΡ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ², Π»ΠΈΠ±ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Ρ‚ΡŒ нСсколько ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ², Ρ‡Ρ‚ΠΎ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ мноТСствСнного наслСдования. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° изобраТСниях, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π½ΠΈΠΆΠ΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠœΠ’Π’Πœ ΠΈ ПОП ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅
❀6πŸ‘2πŸ”₯1
Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ собствСнный Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΠΈ Π½ΠΈΠΆΠ½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½Ρ‚ΠΈΡ‚ΡƒΠ»Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ UIHostingConfiguration

Когда Apple прСдставляСт UIHostingConfigurationΠ½Π° WWDC, ΠΎΠ½ΠΈ Π² основном Ρ„ΠΎΠΊΡƒΡΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π° дСмонстрации Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ для создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ячССк для прСдставлСния Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Π­Ρ‚ΠΎ заставляСт мСня Π·Π°Π΄Π°Ρ‚ΡŒΡΡ вопросом, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ собствСнный Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΠΈ Π½ΠΈΠΆΠ½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½Ρ‚ΠΈΡ‚ΡƒΠ»Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„Π°ΠΉΠ»Ρ‹ UIHostingConfiguration.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ это Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ, полСзная ΡˆΡ‚ΡƒΠΊΠ°, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… кСйсах.
❀4
iOS swift β€” setNeedsLayout ΠΏΡ€ΠΎΡ‚ΠΈΠ² layoutIfNeeded ΠΏΡ€ΠΎΡ‚ΠΈΠ² layoutSubviews()

Когда запускаСтся ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ iOS, UIApplication Π² iOS запускаСт основной Ρ†ΠΈΠΊΠ» выполнСния прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСтся Π² основном ΠΏΠΎΡ‚ΠΎΠΊΠ΅. Основной Ρ†ΠΈΠΊΠ» выполнСния ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ события (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, касания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ) ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ обновлСния интСрфСйсов Π½Π° основС прСдставлСний. По ΠΌΠ΅Ρ€Π΅ возникновСния событий, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ касаниС, обновлСния мСстополоТСния, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ°, Ρ†ΠΈΠΊΠ» выполнСния Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ для событий, вызывая ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

β€” setNeedsLayout()
ΠœΠ΅Ρ‚ΠΎΠ΄ setNeedsLayout для UIView сообщаСт систСмС, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΈΠ»Π° ΠΈ пСрСрисовала это прСдставлСниС ΠΈ всС Π΅Π³ΠΎ ΠΏΠΎΠ΄Π²ΠΈΠ΄Ρ‹, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя для Ρ†ΠΈΠΊΠ»Π° обновлСния. Π­Ρ‚ΠΎ асинхронноС дСйствиС, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ ΠΈ возвращаСтся Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя ΠΌΠ°ΠΊΠ΅Ρ‚ ΠΈ пСрСрисовка Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ происходят, ΠΈ Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ этот Ρ†ΠΈΠΊΠ» обновлСния.

β€” layoutIfNeeded()
Напротив, ΠΌΠ΅Ρ‚ΠΎΠ΄ layoutIfNeeded - это синхронный Π²Ρ‹Π·ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сообщаСт систСмС, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°ΠΊΠ΅Ρ‚ ΠΈ ΠΏΠ΅Ρ€Π΅Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ прСдставлСниС ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ΄Π²ΠΈΠ΄Ρ‹, ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это Π±Ρ‹Π»ΠΎ сдСлано Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π½Π΅ доТидаясь Ρ†ΠΈΠΊΠ»Π° обновлСния. Когда Π²Ρ‹Π·ΠΎΠ² этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½, ΠΌΠ°ΠΊΠ΅Ρ‚ ΡƒΠΆΠ΅ скоррСктирован ΠΈ нарисован Π½Π° основС всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Ρ‹ Π΄ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

β€” layoutSubviews()
РСализация ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ всС ограничСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ установили для опрСдСлСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ полоТСния Π»ΡŽΠ±Ρ‹Ρ… Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… прСдставлСний.
❀13πŸ‘5
ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΉ Π΄Π΅Π±Π°Π³ Π² Xcode: срСдства ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, ΠΏΡ€ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ часто Π·Π°Π±Ρ‹Π²Π°ΡŽΡ‚

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

По Π΄Π°Π½Π½Ρ‹ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… исслСдований, ΠΌΡ‹ Π² срСднСм Ρ‚Ρ€Π°Ρ‚ΠΈΠΌ Π΄ΠΎ 60% Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ β€” ΠΈ это ΠΈΠΌΠ΅Π½Π½ΠΎ усрСднСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, для ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ, особСнно для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΅Ρ‰Ρ‘ большС. ΠŸΠΎΡΡ‚ ΠΏΡ€ΠΈΠ·Π²Π°Π½ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ это врСмя ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ процСсс ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ эффСктивнСС ΠΈ приятнСС.

ВсСм ΡƒΠ΄Π°Ρ‡Π½ΠΎΠ³ΠΎ Π΄Π΅Π±Π°Π³ΠΈΠ½Π³Π°!
πŸ‘6❀3
Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Π² Swift

Помимо мСста, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ своСго собствСнного Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π°, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π΄Π²Π΅ области Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти β€” ΡΡ‚Π΅ΠΊ (stack) ΠΈ ΠΊΡƒΡ‡Ρƒ (heap).

Π‘Ρ‚Π΅ΠΊ
Stack β€” ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² стСкС, хранятся нСпосрСдствСнно Π² памяти, ΠΈ доступ ΠΊ этой памяти ΠΎΡ‡Π΅Π½ΡŒ быстрый, ΠΈ Π΅Π΅ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ опрСдСляСтся ΠΏΡ€ΠΈ компиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠšΡƒΡ‡Π°
ΠšΡƒΡ‡Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для динамичСского выдСлСния памяти, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ стСка, Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΊΡƒΡ‡Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ трСбуСтся Π½Π°ΠΉΡ‚ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ «оглавлСния». МоТно ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΡƒΡ‡Π° это такая большая многоуровнСвая Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ, слСдуя ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ инструкциям, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС ΠΏΡ€ΠΎ ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ
❀12πŸ‘3
Как ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ вёрстку интСрфСйса ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ UIStackView

UIStackView - автоматичСский, скомпонованный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΈΠ· Π½Π΅Π³ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ стСка ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΡƒ для позиционирования ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° упорядочСнных прСдставлСний. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ стСка Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΈ послСднСС упорядочСнноС прСдставлСниС с Π΅Π³ΠΎ краями вдоль оси стСка. Π’ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΌ стСкС это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π½ΠΈΠΉ ΠΊΡ€Π°ΠΉ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ упорядочСнного прСдставлСния прикрСпляСтся ΠΊ ΠΏΠ΅Ρ€Π΅Π΄Π½Π΅ΠΌΡƒ ΠΊΡ€Π°ΡŽ стСка, Π° Π·Π°Π΄Π½ΠΈΠΉ ΠΊΡ€Π°ΠΉ послСднСго упорядочСнного прСдставлСния прикрСпляСтся ΠΊ Π·Π°Π΄Π½Π΅ΠΌΡƒ ΠΊΡ€Π°ΡŽ стСка. Π’ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… стСках Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΠΈ Π½ΠΈΠΆΠ½ΠΈΠΉ края ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»ΡΡŽΡ‚ΡΡ ΠΊ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌΡƒ ΠΈ Π½ΠΈΠΆΠ½Π΅ΠΌΡƒ краям стСка соотвСтствСнно.

Π Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ UIStackView с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ - ΠΌΠΎΠΆΠ½ΠΎ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅.
πŸ‘7πŸ”₯3❀1πŸ‘1
Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ ΠΏΡ€ΠΎΡ‚ΠΈΠ² Классов

1. Π’ массив Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΊΠ»Π°ΡΡ‚ΡŒ структуры.

2 .Если хочСтся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив ΠΈΠ· классов, Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Array, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ContiguousArray прСдоставляСт прСимущСства Ρ€Π΅Π΄ΠΊΠΎ, ΠΈ ΠΎΠ½ΠΈ Π½Π΅ сильно высоки.

3. Inline оптимизация ускоряСт Ρ€Π°Π±ΠΎΡ‚Ρƒ, Π½Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ Π΅Ρ‘.

4. Доступ ΠΊ элСмСнтам Array всСгда быстрСС, Ρ‡Π΅ΠΌ доступ ΠΊ элСмСнтам ContiguousArray.

5. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ всСгда быстрСС классов (Ссли ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Whole module optimization ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡƒΡŽ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ).

6. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Π΅Π³ΠΎ свойства, начиная с Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ, структуры быстрСС классов.

7. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ значСния Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π½Π°ΠΏΠΈΡΠ°Π½ΡƒΡŽ для Generic ΠΈ Protocol, Generic Π±ΡƒΠ΄Π΅Ρ‚ быстрСС.

8. ΠŸΡ€ΠΈ наслСдовании классов
ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄Π΅Π³Ρ€Π°Π΄ΠΈΡ€ΡƒΠ΅Ρ‚.

9. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ с ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΎΠΉ final Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Ρ‡Π½Ρ‹Ρ….

10. Если функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠΌ нСсколько ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ быстро Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Ссли Π² Π½Ρ‘ΠΌ хранится всСго ΠΎΠ΄Π½ΠΎ свойство, ΠΈ сильно Π΄Π΅Π³Ρ€Π°Π΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ большСго количСства свойств.

Π‘Ρ‚Π°Ρ‚ΡŒΡ:
❀12πŸ‘5
Как ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ UISlider Π² Swift

Данная ΡΡ‚Π°Ρ‚ΡŒΡ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° Π΄Π²Π΅ части: пСрвая ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ваш слайдСр Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΠΌΡΡ ΠΎΡ‚ Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½ΠΎΠ³ΠΎ слайдСра, ΠΊΠΎΡΡ‚Π°ΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ. Вторая Ρ‡Π°ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ значСния.

CΡ‚Π°Ρ‚ΡŒΡ ΠΏΡ€ΠΎ кастомный UISlider
πŸ”₯5πŸ‘2❀1
Π§Ρ‚ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅ΠΌΡƒ iOS Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ?

Π―Π·Ρ‹ΠΊ Swift прост, понятСн ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ ΠΊΠ°ΠΊ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ, Ρ‚Π°ΠΊ ΠΈ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌ программистам. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, Π²Π°ΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ эта ΠΊΠ½ΠΈΠ³Π°, ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ. ВсС Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ программирования ΠΈ основы синтаксиса ΠΎΠ±ΡŠΡΡΠ½ΡΡŽΡ‚ΡΡ доступным языком, поэтому Ссли Π²Ρ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Ρ€Π°Π½ΡŒΡˆΠ΅ Π½Π΅ занимались Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ, Ρ‚ΠΎ эта ΠΊΠ½ΠΈΠ³Π° – ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ старт. ВСория чСрСдуСтся с практичСскими ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΈ ΠΊΠΎΠ΄ΠΎΠΌ – Ρ‚Π°ΠΊ Π²Ρ‹ сразу смоТСтС ΡΠ²ΡΠ·Π°Ρ‚ΡŒ абстрактныС понятия с Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ситуациями. Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Π»Π°Π²Π΅ вас ΠΆΠ΄ΡƒΡ‚ тСсты ΠΈ домашниС задания, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π».

#ΠΊΠ½ΠΈΠ³Π°
πŸ‘28❀1
Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ UIScrollView

Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ UIScrollView, ΠΊΠ°ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΠ΅, баунс, spring animation ΠΈ rubber band effect ΠΈ ΠΊΠ°ΠΊ, примСняя эти знания для собствСнных UI-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ СстСствСнной Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ ΠΈ ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²ΠΎΠ³ΠΎ интСрфСйса Π² прилоТСниях.
πŸ”₯8πŸ‘5πŸ‘3❀1
β€˜Factory Method’ Pattern in Swift

Π¨Π°Π±Π»ΠΎΠ½ Β«Π€Π°Π±Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄Β» β€” это творчСский шаблон проСктирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ абстрагируСт процСсс создания экзСмпляров. Π¨Π°Π±Π»ΠΎΠ½ создания ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚, ΠΊΡ‚ΠΎ создаСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ Ρ‡Ρ‚ΠΎ/ΠΊΠ°ΠΊ/ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ создаСтся.

Π­Ρ‚ΠΎΡ‚ шаблон слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. Π˜Ρ… экзСмпляры ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ слоТными ΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ вычислСний для ΠΈΡ… создания. Π¨Π°Π±Π»ΠΎΠ½ Β«Π€Π°Π±Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄Β» инкапсулируСт ΠΈΡ… экзСмпляры, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΈΡ… созданиС Π² Ρ€Π°Π·Π½Ρ‹Ρ… мСстах

Π­Ρ‚ΠΎΡ‚ шаблон слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π»ΠΎΠ³ΠΈΠΊΠ° создания ΠΈ созданиС экзСмпляров Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ. ΠšΠ»ΠΈΠ΅Π½Ρ‚ тСсно связан с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, Ссли Π΅Π³ΠΎ Ρ‚ΠΈΠΏ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π΅Π³ΠΎ классС. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΈ инстанцированиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² подкласс, ΠΌΡ‹ Π·Π°Ρ‰ΠΈΡ‰Π°Π΅ΠΌ ΠΊΠΎΠ΄ ΠΎΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ API. Если ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ классу ΠΈ Π΅Π³ΠΎ API Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π½Π° клиСнтский ΠΊΠΎΠ΄ Π½Π΅ Π²Π»ΠΈΡΡŽΡ‚ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΠΌΡƒ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹. РСализуя интСрфСйс, Ρ„Π°Π±Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ†ΠΈΡŽ, Π° Π½Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ, поэтому ΠΌΡ‹ Π·Π°Ρ‰ΠΈΡ‰Π°Π΅ΠΌ ΠΊΠΎΠ΄ ΠΎΡ‚ Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.
πŸ‘5❀4πŸ”₯3😁1🀯1
Π‘ΠΎΠ»ΡŒΡˆΠΎΠΉ источник ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎ UI Π² UIKit.

ΠœΡ‹ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ UI ΠΊΠ°ΠΊ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ, Π½ΠΎ вСдь UI – это User Interface. Π’Π°ΠΊ Π²ΠΎΡ‚, интСрфСйс – это Ρ‚ΠΎ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‡Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ взаимодСйствуСт с нашим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π’ случаС с графичСским интСрфСйсом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΅Π³ΠΎ Π²ΠΈΠ΄ΠΈΡ‚ ΠΈ воспринимаСт ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Однако ΠΎΠ½ Π½Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ…ΠΎΡ‡Π΅Ρ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π½ΠΈΠΌ, ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ интСрфСйсы: тачскрин, ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ ΠΈΠ»ΠΈ ΠΌΡ‹ΡˆΠΊΡƒ. Π”Π°, это Ρ‚ΠΎΠΆΠ΅ интСрфСйсы. И UIKit ΠΊΠ°ΠΊ Ρ€Π°Π· Ρ‚Π°ΠΊΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½Π΅ Π·Π° графичСский интСрфСйс, Π° Π·Π° распознаваниС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ТСстов ΠΈ ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅, Π²Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚Π΅ свои знания ΠΏΡ€ΠΎ Core Graphics & Metal, Responder Chain, UIView ΠΈ CALayer, frame/bounds, Content, Coordinate System, Visual Effects, Shadow, Mask, Scale.
πŸ‘9πŸ”₯4❀1
Как устроСн счСтчик ссылок Π² Swift

Π’ процСссС выполнСния прилоТСния Π² памяти создаСтся мноТСство ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². И Ссли ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ Π½Π΅ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ лишниС, Ρ‚ΠΎΠ³Π΄Π° ΠΏΠ°ΠΌΡΡ‚ΡŒ закончится. Π§Ρ‚ΠΎΠ±Ρ‹ этого ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ, Π½ΡƒΠΆΠ΅Π½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ освобоТдСния памяти. Π“Π»Π°Π²Π½Ρ‹ΠΉ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ – это отслСТиваниС достиТимости ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΅ΡΡ‚ΡŒ ссылки, Ρ‚ΠΎ ΠΎΠ½ считаСтся достиТимым. А ΠΏΠΎΠΊΠ° Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ…ΠΎΡ‚ΡŒ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ссылаСтся – Π·Π½Π°Ρ‡ΠΈΡ‚ Π΅Π³ΠΎ нСльзя ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΈΠ· памяти. И ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠΏΠ°Π΄Π΅Ρ‚ послСдняя ссылка, Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ уничтоТаСтся ΠΈ освобоТдаСтся занятая ΠΈΠΌ ΠΏΠ°ΠΌΡΡ‚ΡŒ.

Для отслСТивания доступности ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½ΡƒΠΆΠ΅Π½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ отслСТивания Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ссылок. Π’ Swift этот Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° автоматичСского подсчСта ссылок. Automatic Reference Counter, ΠΈΠ»ΠΈ сокращСнно ARC – появился Π΅Ρ‰Π΅ со Π²Ρ€Π΅ΠΌΠ΅Π½ Objective-C. Π’ Π΅Π³ΠΎ основС счСтчик ссылок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΅ΡΡ‚ΡŒ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса.

Π‘ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΆΠ΅ ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΎ ARC, Π²ΠΈΠ΄Ρ‹ ссылок, side table, ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅
πŸ‘12❀2πŸ”₯1
ПишСм свой сСтСвой слой Π½Π° Swift: ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄

БСйчас практичСски 100% ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΡΠ΅Ρ‚ΡŒΡŽ, поэтому вопрос ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ использования сСтСвого слоя встаСт ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ. Π•ΡΡ‚ΡŒ Π΄Π²Π° основных ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, это Π»ΠΈΠ±ΠΎ использованиС сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Π»ΠΈΠ±ΠΎ собствСнная рСализация сСтСвого слоя. Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ расматриваСтся ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, рСализуСтся сСтСвой слой с использованиСм всСх послСдних возмоТностСй языка, примСняя ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ ΠΈ пСрСчислСния. Π­Ρ‚ΠΎ избавляСт ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΎΡ‚ Π»ΠΈΡˆΠ½ΠΈΡ… зависимостСй Π² Π²ΠΈΠ΄Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Π’Π΅, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‚ΡŒ Ρ€Π°Π· Π²ΠΈΠ΄Π΅Π» Moya, сразу ΡƒΠ·Π½Π°ΡŽΡ‚ мноТСство схоТих Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ использовании, Ρ‚Π°ΠΊ ΠΎΠ½ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ, Π½Π΅ трогая Moya ΠΈ Alamofire.

Π‘Ρ‚Π°Ρ‚ΡŒΡ для просмотра
πŸ”₯12πŸ‘5❀2
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Custom BottomSheet

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ происходит рСализация создания кастомного BottomSheet c Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ распознования ТСстов, ограничСния двиТСния ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ касания.
πŸ‘5❀3πŸ”₯3
iOS Run Loop: Π§Ρ‚ΠΎ? Когда? Π—Π°Ρ‡Π΅ΠΌ?

Run Loop (Ρ†ΠΈΠΊΠ» исполнСния) являСтся ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ события (events) бСсконСчно Π² любоС врСмя.

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΡ‚ΠΎΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π±Ρ‹Π²Π°Ρ‚ΡŒ Π² Ρ†ΠΈΠΊΠ»Π΅ β€œΠΏΡ€ΠΈΠ΅ΠΌ сообщСния -> ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ -> ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° -> спячка Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ сообщСния -> ΠΏΡ€ΠΈΠ΅ΠΌ сообщСния” Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° этого Ρ†ΠΈΠΊΠ»Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π±Ρ‹Π»ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ сообщСниС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ), послС Ρ‡Π΅Π³ΠΎ функция Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΎΠΌ.

Когда слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» исполнСния?
Cocoa прСдоставляСт ΠΊΠΎΠ΄ для запуска основного Ρ†ΠΈΠΊΠ»Π° (main loop) ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ автоматичСского запуска Ρ†ΠΈΠΊΠ»Π° исполнСния. ΠœΠ΅Ρ‚ΠΎΠ΄ запуска UIApplication Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ IOS (ΠΈΠ»ΠΈ NSApplication Π² Mac OS X) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ этапа запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Он запустит основной Ρ†ΠΈΠΊΠ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ Π΅Π΅ запуск.

Для Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΆΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π²Π°ΠΌ самим Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ
ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Π½ΡƒΠΆΠ½Ρ‹ Π»ΠΈ ΠΈΠΌ Ρ†ΠΈΠΊΠ»Ρ‹ исполнСния. Если Π½ΡƒΠΆΠ½Ρ‹, Ρ‚ΠΎ Π²Π°ΠΌ придСтся Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈΡ… ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²Π°ΠΌ Π½Π΅ рСкомСндуСтся Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» исполнСния для ΠΏΠΎΡ‚ΠΎΠΊΠ° Π½ΠΈ ΠΏΡ€ΠΈ ΠΊΠ°ΠΊΠΈΡ… ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π°Ρ…. НапримСр, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ, Π²Π°ΠΌ слСдуСт ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ запуска Ρ†ΠΈΠΊΠ»Π° исполнСния. Запуск Ρ†ΠΈΠΊΠ»Π° исполнСния ΠΎΠΏΡ€Π°Π²Π΄Π°Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ.

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½Ρ‹Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΏΡ€ΠΎ Run Loop: ΡΡ‚Π°Ρ‚ΡŒΡ, ΡΡ‚Π°Ρ‚ΡŒΡ
❀6πŸ”₯3πŸ‘2
ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ основы Auto Layout

Auto Layout β€” это ΡΠΈΡΡ‚Π΅ΠΌΠ° вСрстки. ΠŸΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ ΡƒΠ³Π»ΡƒΠ±ΠΈΡ‚ΡŒΡΡ Π² Π½Π΅Ρ‘, ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ вСрсткС Π²ΠΎΠΎΠ±Ρ‰Π΅. Π—Π°Ρ‚Π΅ΠΌ займСмся Auto Layout β€” разбСрСмся ΠΊΠ°ΠΊΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΎΠ½ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΈ ΠΊΠ°ΠΊ это Π΄Π΅Π»Π°Π΅Ρ‚. Рассмотрим ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Π² ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Auto Layout Π² iOS, ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π²Ρ‹Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€Π°ΠΊΡ‚ичСскиС совСты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ с Π½ΠΈΠΌ.

Auto Layout ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ. БистСмы Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ Π·Π½Π°ΠΊΠΎΠΌΡ‹ Π½Π°ΠΌ Π΅Ρ‰Π΅ со ΡˆΠΊΠΎΠ»Ρ‹ β€” ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ Ρ„ΠΈΠ³ΡƒΡ€Π½ΠΎΠΉ скобкой, Π° ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ β€” ΡƒΠΆΠ΅ Π±Π΅Π·. Π’Π°ΠΊΠΆΠ΅ Ρƒ ΡΠΈΡΡ‚Π΅ΠΌ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ Π΅ΡΡ‚ΡŒ сущности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Auto Layout β€” ограничСния. ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ прямой Π»ΠΈΠ½ΠΈΠ΅ΠΉ.

БистСма Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ особСнна Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°Π΄ Π½Π΅ΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° масса ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ: складываниС строк, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡ… Π½Π° ΠΊΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ ΠΈ Ρ‚.Π΄. Π­Ρ‚ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΌΠΈ прСобразованиями, ΠΈ Ρ ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ систСма приводится ΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅.

ΠŸΡ€Π΅Π»Π΅ΡΡ‚ΡŒ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΡ‹. Π­Ρ‚ΠΎ ΠΏΠΎΠ΄Π²ΠΎΠ΄ΠΈΡ‚ нас ΠΊ ΠΈΠ½Ρ‚СрСсной ΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ Ρ‚ΠΎΠ½ΠΊΠΎΠΉ ΠΈΠ΄Π΅Π΅, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ начинаСтся вся соврСмСнная вСрстка.
Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚ΡƒΡ‚
πŸ‘13πŸ”₯5❀3
ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ iOS 14

ОписаниС книги
Если Π²Ρ‹ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с основами Swift, Xcode ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Cocoa, эта ΠΊΠ½ΠΈΠ³Π° прСдоставляСт структурированноС объяснСниС всСх основных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠΈΡ€Π° iOS-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Благодаря Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΌΡƒ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΎΠΌΡƒ количСству ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΊΠΎΠ΄Π° Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ прСдставлСния, ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ прСдставлСний ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ iOS.

1. Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅, упорядочивайтС, рисуйтС, Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΈ Π°Π½ΠΈΠΌΠΈΡ€ΡƒΠΉΡ‚Π΅ Π²ΠΈΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΡŽΡ‚ Π½Π° прикосновСниС

2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ прСдставлСния для управлСния нСсколькими экранами интСрфСйса

3. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ классы интСрфСйса для прСдставлСний ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ, прСдставлСний Ρ‚Π°Π±Π»ΠΈΡ†, прСдставлСний ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, тСкста, Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΎΠΊΠΎΠ½, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… прСдставлСний, Π²Π΅Π±-прСдставлСний ΠΈ элСмСнтов управлСния.

4. ΠŸΠΎΠ³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ΡΡŒ Π² Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ для Π·Π²ΡƒΠΊΠ°, Π²ΠΈΠ΄Π΅ΠΎ, ΠΊΠ°Ρ€Ρ‚ ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ²
Доступ ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ: ΠΌΡƒΠ·Ρ‹ΠΊΠ°, Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ, ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ ΠΈ ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ€ΡŒ

5. Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ„Π°ΠΉΠ»Ρ‹, сСти ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΈ.
πŸ‘28πŸ”₯9❀4
ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡ ΠΆΠΈΠ·Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π’ контСкстС ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… языков ΠΈΠ»ΠΈ языков с ООП β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° роТдаСтся, ΠΊΠΎΠ³Π΄Π° появляСтся ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ/класс. Π—Π°Ρ‚Π΅ΠΌ, послС этапа написания Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° пСрСдаСтся компилятору. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ обСспСчиваСт Ρ‚.Π½. compile-time β€” врСмя компиляции. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния процСсса компиляции ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ компилят (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ нСпосрСдствСнный Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ нашСго исходного ΠΊΠΎΠ΄Π°). Π’ΠΎ врСмя компиляции наш исходный ΠΊΠΎΠ΄ влияСт Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ компилятора ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Π·Π°ΠΊΠΎΠ½Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½Ρ‹ Π² ΠΊΠΎΠ΄Π΅ компилятора.

ПослС получСния компилята, Π½Π°Π΄ Π½ΠΈΠΌ, сразу ΠΈΠ»ΠΈ ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ исполнСн процСсс связывания. Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ - load - time.

Запуск ΠΈ дальнСйшая Ρ€Π°Π±ΠΎΡ‚Π°. НаиболСС извСстныС ΡˆΠΈΡ€ΠΎΠΊΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ΅ этапы. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½Ρ‹ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (init-time) ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ исполнСния (run-time). Π’ сущности, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ этого этапа ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΈ являСтся ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ нСпосрСдствСнной Ρ†Π΅Π»ΡŒΡŽ написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π²Π°ΠΆΠ½Ρ‹ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΆΠΈΠ·Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ являСтся посмСртноС врСмя (death-time), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅, Π²ΠΎΠΏΡ€Π΅ΠΊΠΈ распространСнным прСдставлСниям Ρ‚ΠΎΠΆΠ΅ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.
πŸ‘10πŸ”₯3❀2
iOS Нотификации. Подписка ΠΈ рассылка

Нотификации Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈΠ·-Π·Π° событий Π² самом ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρƒ) ΠΈΠ»ΠΈ ΠΏΠΎ ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΡŽ с сСрвСра. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Π° Π²Ρ‚ΠΎΡ€Ρ‹Π΅ – ΠΏΡƒΡˆ-нотификациями.

ΠŸΡƒΡˆ-Π½ΠΎΡ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‡Π΅Ρ€Π΅Π· APNs (Apple Push Notification service). Для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ сообщСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½ΡƒΠΆΠ½ΠΎ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ запрос ΠΊ сСрвСру APNs. Π­Ρ‚ΠΎ дСлаСтся Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ способами.

Π§Π΅Ρ€Π΅Π· token соСдинСниС.
Π§Π΅Ρ€Π΅Π· соСдинСниС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сСртификата.


Π‘Ρ‚Π°Ρ‚ΡŒΡ с практичСским ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΊΠ°ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Π²ΠΈΠ΄Ρ‹ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ.
πŸ‘14❀4πŸ”₯2