Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«iOS. ΠŸΡ€ΠΈΠ΅ΠΌΡ‹ программирования». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 161

Автор Π’Π°Π½Π΄Π°Π΄ Нахавандипур

β€’ primaryFields β€” самая ваТная информация ΠΎ вашСм Ρ‚Π°Π»ΠΎΠ½Π΅, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π° Π΅Π³ΠΎ Π»ΠΈΡ†Π΅Π²ΠΎΠΉ сторонС. НапримСр, Ссли ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ посадочном Ρ‚Π°Π»ΠΎΠ½Π΅ Π½Π° самолСт, Ρ‚ΠΎ здСсь Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, Π½ΠΎΠΌΠ΅Ρ€ мСста ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π°Π²ΠΈΠ°ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. Π’ Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ρ‚Π°Π»ΠΎΠ½Π΅ здСсь ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½ΠΎΠΉ Π½Π°Π±ΠΎΡ€ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ;

β€’ secondaryFields β€” второстСпСнная информация, Ρ‚Π°ΠΊΠΆΠ΅ отобраТаСмая Π½Π° Π»ΠΈΡ†Π΅Π²ΠΎΠΉ сторонС Ρ‚Π°Π»ΠΎΠ½Π°. НапримСр, Π² посадочном Ρ‚Π°Π»ΠΎΠ½Π΅ Π½Π° самолСт ΠΊ этой ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ отнСсти врСмя посадки, Π΄Π°Ρ‚Ρƒ посадки ΠΈ Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π΄ΡƒΡˆΠ½ΠΎΠ³ΠΎ судна;

β€’ auxiliaryFields β€” Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ ваТная информация, отобраТаСмая Π½Π° Π»ΠΈΡ†Π΅Π²ΠΎΠΉ сторонС Ρ‚Π°Π»ΠΎΠ½Π°. Π’ посадочном Ρ‚Π°Π»ΠΎΠ½Π΅ Π½Π° самолСт ΠΊ Ρ‚Π°ΠΊΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ отнСсти ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя прибытия;

β€’ backFields β€” информация, отобраТаСмая Π½Π° ΠΎΠ±ΠΎΡ€ΠΎΡ‚Π½ΠΎΠΉ сторонС Ρ‚Π°Π»ΠΎΠ½Π°.


Π’ качСствС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ всС Π²Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ словари, Π° эти словари, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡ΠΈ:

β€’ label β€” надпись-Π½Π°Π·Π²Π°Π½ΠΈΠ΅ поля, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π° Ρ‚Π°Π»ΠΎΠ½Π΅ (с Π»ΠΈΡ†Π΅Π²ΠΎΠΉ ΠΈΠ»ΠΈ ΠΎΠ±ΠΎΡ€ΠΎΡ‚Π½ΠΎΠΉ стороны Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ ΠΊΠ»ΡŽΡ‡Ρƒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ этот ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ);

β€’ key β€” ΠΊΠ»ΡŽΡ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для считывания значСния этого поля;

β€’ value β€” Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этого поля;

β€’ textAlignment β€” ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ надписи Π½Π° Ρ‚Π°Π»ΠΎΠ½Π΅. Для этого поля ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ любоС ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ:

β€’ PKTextAlignmentRight;

β€’ PKTextAlignmentCenter;

β€’ PKTextAlignmentLeft;

β€’ PKTextAlignmentNatural;

β€’ PKTextAlignmentJustified.


Π”Π° ΡƒΠΆ, ΠΌΠ½ΠΎΠ³ΠΎΠ²Π°Ρ‚ΠΎ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ приходится Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ. Но Π½Π΅ Π²ΠΎΠ»Π½ΡƒΠΉΡ‚Π΅ΡΡŒ, со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΊ этому ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ°Π΅ΡˆΡŒ. Π˜Ρ‚Π°ΠΊ, создадим простой Ρ„Π°ΠΉΠ» pass.json. Π‘Π½Π°Ρ‡Π°Π»Π° сформулируСм трСбования, Π° ΠΏΠΎΡ‚ΠΎΠΌ приступим ΠΊ написанию самого Ρ„Π°ΠΉΠ»Π° Ρ‚Π°Π»ΠΎΠ½Π°. Как Ρ€Π°Π· ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Ρ‚Ρƒ Ρ‚Π΅ΠΎΡ€ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ΡƒΡ‡ΠΈΠ»ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅. Π”Π°Π»Π΅Π΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π° ΡΡƒΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°.

β€’ Π‘ΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΉ Ρ‚Π°Π»ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΆΠ΅Π»Π΅Π·Π½ΠΎΠ΄ΠΎΡ€ΠΎΠΆΠ½ΠΎΠΌΡƒ Π±ΠΈΠ»Π΅Ρ‚Ρƒ.

β€’ ΠŸΠΎΠ΅Π·Π΄ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ· английского Π³ΠΎΡ€ΠΎΠ΄Π° Π₯ΠΎΡƒΠ² Π² 7:37. Бостав ΠΎΡ‚Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 2.

β€’ ΠŸΠΎΠ΅Π·Π΄ ΠΏΡ€ΠΈΠ±Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π²ΠΎΠΊΠ·Π°Π» Π›ΠΎΠ½Π΄ΠΎΠ½-Π‘Ρ€ΠΈΠ΄ΠΆ Π² Π›ΠΎΠ½Π΄ΠΎΠ½Π΅ Π² 8:41 (ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 13).

β€’ Π‘ΠΈΠ»Π΅Ρ‚ прСдоставляСт ΠΏΡ€Π°Π²ΠΎ ΠΏΡ€ΠΎΠ΅Π·Π΄Π° Π² ΠΏΠΎΠ΅Π·Π΄Π°Ρ… ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½Π½ΠΎΠΉ Π½Π°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Β«Πžβ€™Π Π΅ΠΉΠ»ΠΈ Рэйлуэйз».


Но ΠΏΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ Π΄Π΅Π»Ρƒ, Π½Π°ΠΌ потрСбуСтся ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ массив locations ΠΈΠ· Ρ„Π°ΠΉΠ»Π° pass.json. Π­Ρ‚ΠΎΡ‚ ΠΊΠ»ΡŽΡ‡ являСтся массивом, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎ Π΄Π²Π° ΠΊΠ»ΡŽΡ‡Π°. Π§ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅ ΠΌΡ‹ ΠΈΡ… рассмотрим. Но самая интСрСсная Ρ‡Π΅Ρ€Ρ‚Π° этого ΠΊΠ»ΡŽΡ‡Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π³Π΅ΠΎΠ»ΠΎΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ создаваСмом Π²Π°ΠΌΠΈ Ρ‚Π°Π»ΠΎΠ½Π΅. Когда Ρ‚Π°Π»ΠΎΠ½ импортируСтся Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Passbook Π½Π° вашСм устройствС с iOS, опСрационная систСма Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ вашСм Ρ‚Π°Π»ΠΎΠ½Π΅. Π’ частности, Π±ΡƒΠ΄Π΅Ρ‚ сообщСно, Ρ‡Ρ‚ΠΎ Ρ‚Π°Π»ΠΎΠ½ дСйствитСлСн Π² Ρ‚ΠΎΠΌ мСстС, Π³Π΄Π΅ сСйчас находится ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅: ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π±ΠΈΠ»Π΅Ρ‚ Π½Π° ΠΏΠΎΠ΅Π·Π΄ всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ (ΠΊΠ°ΠΊ пассаТир) ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΡƒΡ€Π½ΠΈΠΊΠ΅Ρ‚Ρƒ Π½Π° станции Π₯ΠΎΡƒΠ² (станция отправлСния). Π˜Ρ‚Π°ΠΊ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π² элСктронном Ρ‚Π°Π»ΠΎΠ½Π΅ мСстополоТСниС станции отправлСния (ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ locations), Ρ‡Ρ‚ΠΎΠ±Ρ‹ iOS автоматичСски Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ»Π° Ρ‚Π°Π»ΠΎΠ½ Π½Π° экран, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΡ€ΠΈΠ±ΡƒΠ΄Π΅Ρ‚ Π½Π° ΡΡ‚Π°Π½Ρ†ΠΈΡŽ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ для ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ станции, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ, ΠΊΠΎΠ³Π΄Π° Π²Π΅Ρ‡Π΅Ρ€ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΅Π·ΠΆΠ°Ρ‚ΡŒ с Π²ΠΎΠΊΠ·Π°Π»Π° Π›ΠΎΠ½Π΄ΠΎΠ½-Π‘Ρ€ΠΈΠ΄ΠΆ Π² Π₯ΠΎΡƒΠ², станциСй отправлСния станСт Π›ΠΎΠ½Π΄ΠΎΠ½. Если Π²Ρ‹ Π΄Π²ΠΈΠΆΠ΅Ρ‚Π΅ΡΡŒ ΠΈΠ· Ρ‚ΠΎΡ‡ΠΊΠΈ A Π² Ρ‚ΠΎΡ‡ΠΊΡƒ B, Ρ‚ΠΎ B β€” ΠΏΡƒΠ½ΠΊΡ‚ назначСния. Когда Π²Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚Π΅ΡΡŒ, B становится Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ отправлСния, Π° A β€” Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ назначСния. Π˜Ρ‚Π°ΠΊ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π² массивС locations мСстополоТСниС Ρ‚ΠΎΡ‡Π΅ΠΊ A ΠΈ B, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π»ΡŽΠ±Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π°ΠΆΠ½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ Π½Π° Ρ‚ΠΎΠΌ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π΅, Π³Π΄Π΅ дСйствуСт ваш Ρ‚Π°Π»ΠΎΠ½. Π’ΠΎΡ‚ ΠΊΠ»ΡŽΡ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² состав любого массива с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ мСстополоТСнии:

β€’ longitude β€” Π΄ΠΎΠ»Π³ΠΎΡ‚Π° гСографичСской Ρ‚ΠΎΡ‡ΠΊΠΈ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° double. НС Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ Π΅Π³ΠΎ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ;

β€’ latitude β€” ΡˆΠΈΡ€ΠΎΡ‚Π° гСографичСской Ρ‚ΠΎΡ‡ΠΊΠΈ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° double. НС Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ Π΅Π³ΠΎ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ.

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅

Π Π°Π·Π΄Π΅Π»Ρ‹ 19.0 ΠΈ 19.2.

19.3. ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ для Ρ‚Π°Π»ΠΎΠ½ΠΎΠ²

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

НСобходимо Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ вашСго Ρ‚Π°Π»ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π΅Ρ€ΠΆΠ°Π½ΠΎ Π² стилистикС ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. Для этого Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ΄Π°Ρ‚ΡŒ Ρ‚Π°Π»ΠΎΠ½Ρƒ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Π΅ Ρ‡Π΅Ρ€Ρ‚Ρ‹ Π»ΠΈΠ±ΠΎ ΡΠ½Π°Π±Π΄ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΡƒΠ·Π½Π°Π²Π°Π΅ΠΌΡ‹ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

РСшСниС

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„ΠΎΠ½, ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏΡ‹ ΠΈ Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΈΡ… Π² ваш Ρ‚Π°Π»ΠΎΠ½, снабТСнный Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ подписью.

ΠžΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅

На Ρ‚Π°Π»ΠΎΠ½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ изобраТСния:

β€’ Ρ„ΠΎΠ½ (background.png, [email protected] ΠΈ [email protected]) β€” Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Ρ‚Π°Π»ΠΎΠ½Π΅. НС Π½Π° всСх Ρ‚Π°Π»ΠΎΠ½Π°Ρ… Π΅ΡΡ‚ΡŒ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Π΅ изобраТСния;

 Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏ (logo.png ΠΈ [email protected]) β€” Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ Ρ‚Π°Π»ΠΎΠ½Π°. Зависит ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° Ρ‚Π°Π»ΠΎΠ½Π°;

 ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° (icon.png ΠΈ [email protected]) β€” ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для Ρ‚Π°Π»ΠΎΠ½Π°. НС Ρƒ всСх Ρ‚Π°Π»ΠΎΠ½ΠΎΠ² Π΅ΡΡ‚ΡŒ ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ создании ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌ для Ρ‚Π°Π»ΠΎΠ½ΠΎΠ²;

 ΠΌΠΈΠ½ΠΈΠ°Ρ‚ΡŽΡ€Π° (thumbnail.png ΠΈ [email protected]) β€” ΠΌΠΈΠ½ΠΈΠ°Ρ‚ΡŽΡ€Π°-ярлык, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ Ρ‚Π°Π»ΠΎΠ½Ρƒ. Π‘ΡƒΠ΄Π΅Ρ‚ Π²ΠΈΠ΄Π½Π°, ΠΊΠΎΠ³Π΄Π° Ρ‚Π°Π»ΠΎΠ½Ρ‹ слоТСны Β«Π² стопку».


Как понятно ΠΈΠ· Π½Π°Π·Π²Π°Π½ΠΈΠΉ, всС эти изобраТСния ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π² Π΄Π²ΡƒΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°Ρ…: для ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ΠΈ для сСтчатого дисплСя (Retina). Apple Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ строгого соблюдСния этого ΠΏΡ€Π°Π²ΠΈΠ»Π°, Π½ΠΎ Ρ€Π°Π·Π²Π΅ ΠΌΡ‹, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, Π½Π΅ Ρ†Π΅Π½ΠΈΠΌ Π½Π°ΡˆΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ²? Π‘Π΅Ρ‚Ρ‡Π°Ρ‚Ρ‹Π΅ дисплСи сСгодня Ρ‚Π°ΠΊ популярны, Ρ‡Ρ‚ΠΎ становятся ΠΎΠ±Ρ‰Π΅ΠΏΡ€ΠΈΠ·Π½Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½Ρ‹ΠΌ стандартом. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, поТалуйста, Π½Π΅ Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ сСтчатыС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с высоким Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ.

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ выяснили, ΠΊΠ°ΠΊΠΎΠ²Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ этих ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π― ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сСтчатыС изобраТСния (Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅, просто Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅ всС значСния ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅ ΠΈ ΡˆΠΈΡ€ΠΈΠ½Π΅ Π½Π° 2):

β€’  [email protected] β€” 640 пиксСлов Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ 960 пиксСлов Π² высоту;

β€’  [email protected] β€” 640 пиксСлов Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ 1136 пиксСлов Π² высоту, для iPhone 5;

β€’  [email protected] β€” 60 пиксСлов Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ 60 пиксСлов Π² высоту;

β€’  [email protected] β€” 58 пиксСлов Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ 29 пиксСлов Π² высоту;

β€’  [email protected] β€” 200 пиксСлов Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ 200 пиксСлов Π² высоту.


Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ я создал всС изобраТСния максимально простым ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. На рис. 19.13 ΠΎΠ½ΠΈ всС ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ холстС.


Рис. 19.13. ВсС изобраТСния с Ρ‚Π°Π»ΠΎΠ½Π° Π½Π° ΠΎΠ΄Π½ΠΎΠΌ холстС

Рисунок сдСлан для наглядности ΠΈ просто ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, сколько ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ трСбуСтся ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚Π°Π»ΠΎΠ½Π°. НС Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ всС эти элСмСнты располоТСны Π½Π° ΠΎΠ΄Π½ΠΎΠΌ холстС.

ВсС изобраТСния Π³ΠΎΡ‚ΠΎΠ²Ρ‹. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ ΠΈΡ… Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Π³Π΄Π΅ ΡƒΠΆΠ΅ находится Ρ„Π°ΠΉΠ» pass.json. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ этапу Ρ€Π°Π±ΠΎΡ‚Ρ‹ β€” создаСм Ρ„Π°ΠΉΠ» описания (манифСста).

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅

Π Π°Π·Π΄Π΅Π» 19.2.

19.4. ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Ρ‚Π°Π»ΠΎΠ½ΠΎΠ² ΠΊ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Π½ΠΈΡŽ

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

ВрСбуСтся ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚Π°Π»ΠΎΠ½Ρ‹ ΠΊ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Π½ΠΈΡŽ. Π­Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ этап, Π±Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ подписываниС Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

РСшСниС

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» manifest.json Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Π³Π΄Π΅ находятся Ρ„Π°ΠΉΠ» pass.json ΠΈ изобраТСния для Ρ‚Π°Π»ΠΎΠ½Π°. Π€Π°ΠΉΠ» описания Π±ΡƒΠ΄Π΅Ρ‚ написан Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON. Π•Π³ΠΎ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ β€” это ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ. ΠšΠ»ΡŽΡ‡Π°ΠΌΠΈ Π² этом словарС ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² (ΠΈΠΌΠ΅Π½Π° всСх ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ плюс имя Ρ„Π°ΠΉΠ»Π° pass.json). Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° прСдставляСт собой SHA1-Ρ…Π΅Ρˆ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π°.

ΠžΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅

ΠŸΡ€ΠΎΡΡ‚ΠΎ создайтС Ρ„Π°ΠΉΠ» manifest.json с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ для всСх ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π° значСния ΠΏΠΎΠΊΠ° ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ пустыми. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ вашСго Ρ„Π°ΠΉΠ»Π° manifest.json Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:


{

Β«background.pngΒ»: "",

Β« [email protected]Β»: "",

Β« [email protected]Β»: "",

Β«icon.pngΒ»: "",

Β« [email protected]Β»: "",

Β«logo.pngΒ»: "",

Β« [email protected]Β»: "",

Β«pass.jsonΒ»: "",

Β«thumbnail.pngΒ»: "",

Β« [email protected]Β»: ""

}


А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ начинаСтся самоС интСрСсноС. НуТно Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ SHA1-Ρ…Π΅ΡˆΠΈ всСх этих Ρ„Π°ΠΉΠ»ΠΎΠ². Π£Ρ‡Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹ нашли ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² Ρ„Π°ΠΉΠ»Π΅ pass.json ΠΈ исправили Π΅Π΅) потрСбуСтся Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ SHA1-Ρ…Π΅Ρˆ ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этого Ρ…Π΅ΡˆΠ° Π² Ρ„Π°ΠΉΠ»Π΅ manifest.json. Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ SHA1-Ρ…Π΅ΡˆΠ° для любого Ρ„Π°ΠΉΠ»Π° Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС OS X, просто Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги.

1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΎΠΊΠ½ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π³Π΄Π΅ находится Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ„Π°ΠΉΠ» (для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° cd).

2. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π² ΠΎΠΊΠ½Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ openssl. Π’ качСствС Π΅Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° сообщитС sha1, Π² качСствС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ β€” имя Ρ„Π°ΠΉΠ»Π°.

НапримСр, Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ с ΠΌΠΎΠΈΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ pass. Π’ этот ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ я помСстил ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ» pass.json, полупустой Ρ„Π°ΠΉΠ» manifest.json, Π° Ρ‚Π°ΠΊΠΆΠ΅ всС изобраТСния для Ρ‚Π°Π»ΠΎΠ½Π° (Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏ ΠΈ Ρ‚. Π΄.). Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² ΠΎΠΊΠ½Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° я Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°ΡŽ значСния SHA1-Ρ…Π΅ΡˆΠ΅ΠΉ для всСх этих Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π·Π°ΠΏΠΈΡˆΡƒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ значСния Π² Ρ„Π°ΠΉΠ» описания. Π˜Ρ‚Π°ΠΊ, Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ листинга ΠΈΠ΄Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π° openssl, Π° всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ строки β€” это значСния Ρ…Π΅ΡˆΠ΅ΠΉ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π² качСствС Π²Ρ‹Π²ΠΎΠ΄Π°: